Learn R Programming

RidgeFusion (version 1.0-3)

RidgeFused: Ridged Fused Inverse Covariance Matrix Estimation

Description

Calculates the ridge fusion precision estimator for multiple classes

Usage

RidgeFused(S,lambda1,lambda2,nc,tol=10^(-7), maxiter=1e3,warm.start=NULL,scale=FALSE)

Arguments

S
A list of length J that contains the sample covariance estimators of each class
lambda1
Ridge tuning parameter, must be greater than or equal to 0
lambda2
Ridge Fusion tuning parameter, must be greater than or equal to 0
nc
A vector of length J that contains the sample size of each class
tol
Convergence tolerance for blockwise coordinate descent algorithm
maxiter
The number of iterations the algorithm will run if convergence tolerance is not met
warm.start
If NULL no warm start is used. If initialized with a list of positive definite inverse covariance matrix estimates of length J, will use them as initialization for the algorithm.
scale
If FALSE scale invariant method is used

Value

An object of class RidgeFusion, basically a list including elements
Omega
a list where each element is the inverse covariance matrix estimate for the corresponding element of S
Ridge
lambda1
FusedRidge
lambda2
iter
Number of iterations until convergence

Examples

Run this code
## Creating a toy example with 5 variables
library(mvtnorm)
set.seed(526)
p=5
    Sig1=matrix(0,p,p)
	for(j in 1:p){
		for(i in j:p){          
            Sig1[j,i]=.7^abs(i-j)
            Sig1[i,j]=Sig1[j,i]
            
		}
	}
    Sig2=diag(c(rep(2,p-5),rep(1,5)),p,p)
X1=rmvnorm(100,rep(2*log(p)/p,p),Sig1)
Y=rmvnorm(100,,Sig2)
## Creating a list to use as S
S=list(0,0)	
S[[1]]=(99/100)*cov(X1)
S[[2]]=(99/100)*cov(Y)

## Creating the vector of sample sizes
nc2=c(100,100)

## Running RidgeFused scale invariant method for tuning parameters lambda1=1 ,lambda2=2
A=RidgeFused(S,1,2,nc2,scale=TRUE)
A
names(A)

Run the code above in your browser using DataLab