# pdsoft.cv: Tuning parameter selection and computation for the positive... In PDSCE: Positive Definite Sparse Covariance Estimators

 pdsoft.cv R Documentation

## Tuning parameter selection and computation for the positive definite and sparse covariance matrix estimator

### Description

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

### Usage

```pdsoft.cv(x, lam.vec = NULL, standard = TRUE,
init = c("diag", "soft", "dense"), tau = 1e-04,
nsplits = 10, n.tr = NULL, tolin = 1e-08, tolout = 1e-08,
maxitin = 10000, maxitout = 1000, quiet = TRUE)
```

### Arguments

 `x` A data matrix with n rows and p columns. The rows are assumed to be a realization of n independent copies of a p-variate random vector. `lam.vec` An optional vector of candidate lasso-type penalty tuning parameter values. The default for `standard=TRUE` is `seq(from=0, to=1, by=0.05)` and the default for `standard=FALSE` is `seq(from=0, to=m, length.out=20)`, where `m` is the maximum magnitude of the off-diagonal entries in `s`. Both of these default choices are far from excellent and are time consuming, particularly for values close to zero. The user should consider refining this set by increasing its resolution in a narrower range. `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`. `init` The type of initialization used for the estimate computed at the maximum element in `lam.vec`. Subsequent initializations use the final iterates for `sigma` and `omega` at the previous value in `lam.vec`. The default option `init="diag"` uses diagonal starting values. The second option `init="soft"` uses a positive definite version of the soft thresholded covariance or correlation estimate, depending on `standard`. The third option `init="dense"` uses the closed-form solution when `lam=0`. `tau` The logarithmic barrier parameter. The default is `tau=1e-4`, which works well when `standard=TRUE` with the default choices for the convergence tolerances. `nsplits` The number of random splits to use for the tuning parameter selection. `n.tr` Optional number of cases to use in the training set. The default is the nearest integer to n(1-1/\log(n)). The value must be in \{3, …, n-2\}. `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.

### Value

A list with

 `sigma` covariance estimate at the selected tuning parameter `omega` inverse covariance estimate at the selected tuning parameter `best.lam` the selected value of the tuning parameter `cv.err` a vector of the validation errors, one for each element in `lam.vec` `lam.vec` the vector of candidate tuning parameter values `n.tr` the number of cases used for the training set

### Note

It is always the case that `omega` is positive definite. If `tolin` and `tolout` are too large, or `maxitin` and `maxitout` are too small, then `sigma` may be indefinite.

### References

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

`pdsoft`

### 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)
output=pdsoft.cv(x=x)
plot(output\$lam.vec, output\$cv.err)
output\$best.lam
output\$sigma
```

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