View source: R/ridgePmultitTandCo.R
ridgePmultiT | R Documentation |
Function that evaluates the ridge estimator of the inverse covariance matrix with multi-target shrinkage.
ridgePmultiT(S, lambda, targetList)
S |
Sample covariance |
lambda |
A |
targetList |
A list of semi-positive definite target matrices towards which the precision matrix is potentially shrunken. |
This function generalizes the ridgeP
-function in the sense that multiple shrinkage targets can be provided in the estimation of the precision matrix of a zero-mean multivariate normal distribution. Hence, it assumes that the data stem from \mathcal{N}(\mathbf{0}_p, \boldsymbol{\Omega}^{-1})
. The estimator maximizes the following penalized loglikelihood:
\log( | \boldsymbol{\Omega} |) - \mbox{tr} ( \boldsymbol{\Omega} \mathbf{S} ) - \sum\nolimits_{g=1}^G \lambda_g \| \boldsymbol{\Omega} - \mathbf{T}_g \|_F^2,
where \mathbf{S}
the sample covariance matrix, \{ \lambda_g \}_{g=1}^G
the penalty parameters of each target matrix, and the \{ \mathbf{T}_g \}_{g=1}^G
the precision matrix' shrinkage targets. For more details see van Wieringen et al. (2020).
The function returns a regularized inverse covariance matrix
.
W.N. van Wieringen.
van Wieringen, W.N., Stam, K.A., Peeters, C.F.W., van de Wiel, M.A. (2020), "Updating of the Gaussian graphical model through targeted penalized estimation", Journal of Multivariate Analysis, 178, Article 104621.
ridgeP
.
# set dimension and sample size
p <- 10
n <- 10
# specify vector of penalty parameters
lambda <- c(2, 1)
# generate precision matrix
T1 <- matrix(0.7, p, p)
diag(T1) <- 1
T2 <- diag(rep(2, p))
# generate precision matrix
Omega <- matrix(0.4, p, p)
diag(Omega) <- 2
Sigma <- solve(Omega)
# data
Y <- mvtnorm::rmvnorm(n, mean=rep(0,p), sigma=Sigma)
S <- cov(Y)
# unpenalized diagonal estimate
Phat <- ridgePmultiT(S, lambda, list(T1=T1, T2=T2))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.