Learn R Programming

covKCD (version 0.1)

covCSE: Empirical Bayes core shrinkage covariance estimator

Description

Estimate a covariance matrix by adaptively shrinking the core.

Usage

covCSE(data, n = NULL, p1 = NULL, p2 = NULL, tol = 1e-08)

Value

a covariance matrix of the same dimension as S. The attribute w of S gives the shrinkage weight on the Kronecker covariance of S.

Arguments

data

either a numeric n*p1*p2 array consisting of n data matrices each of dimension p1*p2, or a p1*p2 covariance matrix of data of this type. If the latter, the values of n, p1 and p2 must be specified.

n

the sample size.

p1

the row dimension of the data matrices.

p2

the column dimension of the data matrices.

tol

the convergence tolerance of the iterative algorithm.

Author

Peter Hoff

Examples

Run this code
p1<-4 ; p2<-3 ; n<-20

# create a matrix Y with separable covariance
Sig1<-rWishart(1,p1,diag(p1))[,,1] 
Sig2<-rWishart(1,p2,diag(p2))[,,1] 

Y<-array(rnorm(n*p1*p2),dim=c(n,p1,p2))  
Y<-aperm( apply(Y,c(1,3),function(y){ msqrt(Sig1)%*%y } ),c(2,1,3)) 
Y<-aperm( apply(Y,c(1,2),function(y){ msqrt(Sig2)%*%y } ),c(2,3,1)) 

# covariance 
S<-mcov(Y) 
covCSE(S,n,p1,p2)  

# now an unstructured covariance
S<-rWishart(1,p1*p2,diag(p1*p2))[,,1] 
covCSE(S,n,p1,p2) 

Run the code above in your browser using DataLab