Learn R Programming

CovTools (version 0.5.4)

CovEst.hardPD: Covariance Estimation via Hard Thresholding under Positive-Definiteness Constraint

Description

Sparse covariance estimation does not necessarily guarantee positive definiteness of an estimated covariance matrix. Fan et al. (2013) proposed to solve this issue by taking an iterative procedure to take an incremental decrease of threshold value until positive definiteness is preserved.

Usage

CovEst.hardPD(X)

Arguments

X

an \((n\times p)\) matrix where each row is an observation.

Value

a named list containing:

S

a \((p\times p)\) covariance matrix estimate.

optC

an optimal threshold value \(C_{min}\) that guarantees positive definiteness after thresholding.

References

fan_large_2013CovTools

Examples

Run this code
# NOT RUN {
## generate data from multivariate normal with Identity covariance.
pdim <- 5
data <- matrix(rnorm(10*pdim), ncol=pdim)

## apply 4 different schemes
out1 <- CovEst.hard(data, thr=0.1)  # threshold value 0.1
out2 <- CovEst.hard(data, thr=1)    # threshold value 1
out3 <- CovEst.hard(data, thr=10)   # threshold value 10
out4 <- CovEst.hardPD(data) # automatic threshold checking

## visualize 4 estimated matrices
mmessage <- paste("hardPD::optimal thr=",sprintf("%.2f",out4$optC),sep="")
gcol     <- gray((0:100)/100)
opar <- par(no.readonly=TRUE)
par(mfrow=c(2,2), pty="s")
image(out1$S[,pdim:1], col=gcol, main="thr=0.1")
image(out2$S[,pdim:1], col=gcol, main="thr=1")
image(out3$S[,pdim:1], col=gcol, main="thr=10")
image(out4$S[,pdim:1], col=gcol, main=mmessage)
par(opar)

# }

Run the code above in your browser using DataLab