Package 'lorec'

Title: LOw Rand and sparsE Covariance matrix estimation
Description: Estimate covariance matrices that contain low rank and sparse components
Authors: Xi (Rossi) LUO
Maintainer: Xi (Rossi) LUO <[email protected]>
License: GPL-2
Version: 0.6.1
Built: 2024-11-11 04:28:58 UTC
Source: https://github.com/cran/lorec

Help Index


LOw Rank and sparsE Covariance estimation

Description

Estimate covariance matrices that contain low rank and sparse components

Usage

lorec(Sig, L, S, lambda, delta,  thr=1.0e-4, maxit=1e4)

Arguments

Sig

Covariance matrix:p by p matrix (symmetric)

L

Initializing the low rank component. Default diag(Sig).

S

Initializing the sparse component. Default diag(Sig).

lambda

(Non-negative) regularization parameter (scalar) for the low rank component, L, via the nuclear norm penalty.

delta

(Non-negative) regularization parameter (scalar) for the sparse component, S, via the L1 penalty. The diagonal of S is not penalized.

thr

Threshold for convergence. Iterations stop when the relative Frobenius norm change of consecutive updates is less than the threshold. Default is 1e-4.

maxit

Maximum number of iterations. Default 10,000.

Details

Estimate a low rank plus sparse covariance matrix using a composite penalty, nuclear norm plus L1 norm (lasso). This covariance structure can be verified in many classical models, such as factor and random effect models. The algorithm is based on Nesterov's method, suitable for large-scale problems with low memory costs. It achieves the optimal global convergence rate of smooth problems under the black-box model.

Value

A list with components

L

Estimated low rank component

S

Estimated sparse component

References

Xi Luo (2011). High Dimensional Low Rank and Sparse Covariance Matrix Estimation via Convex Minimization. Technical Report, Department of Biostatistics and Center of Statistical Sciences, Brown University. arXiv: 1111.1133.

Examples

set.seed(100)
Sig <- matrix(0.8, 4,4) + diag(0.2,4)
x<-matrix(rnorm(50*20),ncol=4)
s<- var(x)
a<-lorec(s, lambda=.01, delta=0.01)