CovEst.adaptive {CovTools} | R Documentation |
Covariance Estimation via Adaptive Thresholding
Description
Cai and Liu (2011) proposed an adaptive variant of Bickel and Levina (2008) - CovEst.hard
. The idea of adaptive thresholding is
to apply thresholding technique on correlation matrix in that it becomes adaptive in terms of each variable.
Usage
CovEst.adaptive(X, thr = 0.5, nCV = 10, parallel = FALSE)
Arguments
X |
an |
thr |
user-defined threshold value. If it is a vector of regularization values, it automatically selects one that minimizes cross validation risk. |
nCV |
the number of repetitions for 2-fold random cross validations for each threshold value. |
parallel |
a logical; |
Value
a named list containing:
- S
a
(p\times p)
covariance matrix estimate.- CV
a dataframe containing vector of tested threshold values(
thr
) and corresponding cross validation scores(CVscore
).
References
Cai T, Liu W (2011). “Adaptive Thresholding for Sparse Covariance Matrix Estimation.” Journal of the American Statistical Association, 106(494), 672–684. ISSN 0162-1459, 1537-274X.
Examples
## generate data from multivariate normal with Identity covariance.
pdim <- 5
data <- matrix(rnorm(10*pdim), ncol=pdim)
## apply 4 different schemes
# mthr is a vector of regularization parameters to be tested
mthr <- seq(from=0.01,to=0.99,length.out=10)
out1 <- CovEst.adaptive(data, thr=0.1) # threshold value 0.1
out2 <- CovEst.adaptive(data, thr=0.5) # threshold value 0.5
out3 <- CovEst.adaptive(data, thr=0.1) # threshold value 0.9
out4 <- CovEst.adaptive(data, thr=mthr) # automatic threshold checking
## visualize 4 estimated matrices
opar <- par(no.readonly=TRUE)
par(mfrow=c(2,2), pty="s")
image(out1$S[,pdim:1], col=gray((0:100)/100), main="thr=0.1")
image(out2$S[,pdim:1], col=gray((0:100)/100), main="thr=0.5")
image(out3$S[,pdim:1], col=gray((0:100)/100), main="thr=0.9")
image(out4$S[,pdim:1], col=gray((0:100)/100), main="automatic")
par(opar)