pdsoft: A permutation invariant positive definite and sparse...

View source: R/pdsoft.R

pdsoftR Documentation

A permutation invariant positive definite and sparse covariance matrix estimate

Description

Computes the sparse and positive definite covariance matrix estimator proposed by Rothman (2012).

Usage

pdsoft(s, lam, tau = 1e-04, init = c("soft", "diag", "dense", "user"), 
       s0 = NULL, i0 = NULL, standard = TRUE, tolin = 1e-08, 
       tolout = 1e-08, maxitin = 10000, maxitout = 1000, quiet = TRUE)

Arguments

s

A realization of the p by p sample covariance matrix. More generally, any symmetric p by p matrix with positive diagonal entries.

lam

The tuning parameter λ on the penalty λ ∑_{i\neq j} |σ_{ij}|. Could be either a scalar or a p by p symmetric matrix with an irrelevant diagonal. When a matrix is used, the penalty has the form ∑_{i\neq j} λ_{ij} |σ_{ij}|.

tau

The logarithmic barrier parameter. The default is tau=1e-4, which works well when standard=TRUE.

init

The type of initialization. The default option init="soft" uses a positive definite version of the soft thresholded covariance or correlation estimate, depending on standard. The second option init="diag" uses diagonal starting values. The third option init="dense" uses the closed-form solution when lam=0. The fourth option init="user" allows the user to specify the starting point (one must then specify s0 and i0, ensuring that i0 is positive definite).

s0

Optional user supplied starting point for Σ^{(0)}; see Rothman (2012)

i0

Optional user supplied starting point for Ω^{(0)}; see Rothman (2012)

standard

Logical: standard=TRUE first computes the observed sample correlation matrix from s, then computes the sparse correlation matrix estimate, and finally rescales to return the sparse covariance matrix estimate. The strongly recommended default is standard=TRUE.

tolin

Convergence tolerance for the inner loop of the algorithm that solves the lasso regression.

tolout

Convergence tolerance for the outer loop of the algorithm.

maxitin

Maximum number of inner-loop iterations allowed

maxitout

Maximum number of outer-loop iterations allowed

quiet

Logical: quiet=TRUE suppresses the printing of progress updates.

Details

See Rothman (2012) for the objective function and more information.

Value

A list with

sigma

covariance estimate

omega

inverse covariance estimate

theta

correlation matrix estimate, will be NULL if standard=FALSE

theta.inv

inverse correlation matrix estimate, will be NULL if standard=FALSE

Note

So long as s is symmetric with positive diagonal entries and init is not set to "user" (or init is set to "user" and i0 as a positive definite matrix), then omega is positive definite. If tolin and tolout are too large, or maxitin and maxitout are too small, then sigma may be indefinite.

Author(s)

Adam J. Rothman

References

Rothman, A. J. (2012). Positive definite estimators of large covariance matrices. Biometrika 99(3): 733-740

See Also

pdsoft.cv

Examples

set.seed(1)
n=50
p=20
true.cov=diag(p)
true.cov[cbind(1:(p-1), 2:p)]=0.4
true.cov[cbind(2:p, 1:(p-1))]=0.4
eo=eigen(true.cov, symmetric=TRUE)
z=matrix(rnorm(n*p), nrow=n, ncol=p)
x=z%*% tcrossprod(eo$vec*rep(eo$val^(0.5), each=p),eo$vec)
s=cov(x)*(n-1)/n
output=pdsoft(s=s, lam=0.3)
output$sigma

PDSCE documentation built on June 23, 2022, 9:12 a.m.