Learn R Programming

flare (version 0.9.9)

flare.tiger: Tuning Insensitive Graph Estimation and Regression

Description

The function "tiger" estimates sparse precision matrix in high dimensions. We adopt two estimation procedures based on column by column regression scheme: (1) Tuning-Insensitive Graph Estimation and Regression (tiger); (2) The Constrained L1 Minimization for Sparse Precision Matrix Estimation using either L1 penalty (clime) or adaptive penalty (aclime). For TIGER, we adopt the monotone fast iterative soft-thresholding algorithm (MFISTA). For CLIME and ACLIME, we adopt the alternating direction method of multipliers (ADMM) combined with the linearization and efficient coordinate descent algorithm. The computation is memory-optimized using the sparse matrix output.

Usage

flare.tiger(data, lambda = NULL, nlambda = NULL, lambda.min.ratio = NULL, 
      rho = NULL, method = "slasso", sym = "or", shrink=NULL,
      prec = 1e-4, mu = 0.01, max.ite = 1e4, wmat = NULL, standardize = FALSE,
      correlation = FALSE, perturb = TRUE, verbose = TRUE)

Arguments

data
There are 2 options for "clime": (1) data is an n by d data matrix (2) a d by d sample covariance matrix. The program automatically identifies the input matrix by checking the s
lambda
A sequence of decresing positive numbers to control the regularization. Typical usage is to leave the input lambda = NULL and have the program compute its own lambda sequence based on nlambda and lambda.min.rat
nlambda
The number of values used in lambda. Default value is 5.
lambda.min.ratio
The smallest value for lambda, as a fraction of the uppperbound (MAX) of the regularization parameter. The program can automatically generate lambda as a sequence of length = nlambda starting from
rho
Penalty parameter used in the optimization algorithm for clime. The default value is $\sqrt{d}$.
method
TIGER is applied if method = "slasso", CLIME is applied if method="clime", and adaptive CLIME is applied if method = "aclime". Default value is "slasso".
sym
Symmetrization of output graphs. If sym = "and", the edge between node i and node j is selected ONLY when both node i and node j are selected as neighbors for each other. If sym = "or"
shrink
Shrinkage of regularization parameter based on precision of estimation. The default value is 1.5 if method = "clime" and the default value is 0 if method="slasso" or method = "aclime".
prec
Stopping criterion. The default value is 1e-4.
mu
The smoothing parameter. The default value is 0.01.
max.ite
The iteration limit. The default value is 1e4.
wmat
Weight matrix for adaptive CLIME. Only applicable when method = "aclime".
standardize
All varaibles are standardized to have mean zero and standard deviation one if standardize = TRUE. The default value is FALSE.
correlation
Correlation matrix is used as the input of Sigma for method = "clime" if correlation = TRUE. The default value is FALSE.
perturb
The diagonal of Sigma is added by a positive value to guarantee that Sigma is positive definite if perturb = TRUE. User can specify a numeric value for perturbe. The default value is TRUE.
verbose
Tracing information printing is disabled if verbose = FALSE. The default value is TRUE.

Value

  • An object with S3 class "tiger" is returned:
  • dataThe n by d data matrix or d by d sample covariance matrix from the input.
  • cov.inputAn indicator of the sample covariance.
  • lambdaThe sequence of regularization parameters lambda used in the program.
  • nlambdaThe number of values used in lambda.
  • icovA list of d by d precision matrices corresponding to regularization parameters.
  • symThe sym from the input.
  • methodThe method from the input.
  • pathA list of d by d adjacency matrices of estimated graphs as a graph path corresponding to lambda.
  • sparsityThe sparsity levels of the graph path.
  • iteIf method = "clime", it is a list of two matrices where ite[[1]] is the number of external iterations and ite[[2]] is the number of internal iterations with the entry of (i,j) as the number of iteration of i-th column and j-th lambda. If method="slasso", it is a matrix of iteration with the entry of (i,j) as the number of iteration of i-th column and j-th lambda.
  • dfIt is a d by nlambda matrix. Each row contains the number of nonzero coefficients along the lasso solution path.
  • standardizeThe standardize from the input.
  • correlationThe correlation from the input.
  • perturbThe perturb from the input.
  • verboseThe verbose from the input.

Details

CLIME solves the following minimization problem $$\min || \Omega ||_1 \quad \textrm{s.t. } || S \Omega - I ||_\infty \le \lambda,$$ where $||\cdot||_1$ and $||\cdot||_\infty$ are element-wise 1-norm and $\infty$-norm respectively.

Adaptive CLIME solves the following minimization problem $$\min || W \circ \Omega ||_1 \quad \textrm{s.t. } | S \Omega - I | \le \lambda W,$$ where $\circ$ denotes the Hadamard product, and $A_{d \times d} \leq B_{d \times d}$ denotes the set of entrywise inequalities $a_{jk}

TIGER solves the following minimization problem $$\min \frac{1}{n}||X-XB||_{2,1} + \lambda ||B||_1 \quad \textrm{s.t. } B_{jj} = 0,$$ where $||\cdot||_{1}$ and $||\cdot||_{2,1}$ are element-wise 1-norm and $L_{2,1}$-norm respectively.

References

1. T. Cai, W. Liu and X. Luo. A constrained L1 minimization approach to sparse precision matrix estimation. Journal of the American Statistical Association, 2011. 2. H. Liu, L. Wang. TIGER: A tuning-insensitive approach for optimally estimating large undirected graphs. Technical Report, 2012. 3. B. He and X. Yuan. On non-ergodic convergence rate of Douglas-Rachford alternating direction method of multipliers. Technical Report, 2012. 4. A. Beck and M. Teboulle. Fast gradient-based algorithms for constrained total variation image denoising and deblurring problems. IEEE Transactions on Image Processing, 2009.

See Also

flare-package, flare.tiger.generator, flare.tiger.select, flare.plot, flare.tiger.roc, plot.tiger, plot.select, plot.roc, plot.sim, print.tiger, print.select, print.roc and print.sim.

Examples

Run this code
## generating data
n = 100
d = 100
D = flare.tiger.generator(n=n,d=d,graph="hub",g=10)
plot(D)

## sparse precision matrix estimation with method "clime"
out1 = flare.tiger(D$data, method = "clime")
plot(out1)
flare.plot(out1$path[[4]])

## sparse precision matrix estimation with method "slasso"
out2 = flare.tiger(D$data, method = "slasso")
plot(out2)
flare.plot(out2$path[[4]])

## sparse precision matrix estimation with method "aclime"
out3 = flare.tiger(D$data, lambda=seq(0.25, 0.1, length.out=5), 
             method = "aclime", wmat=1/(abs(D$omega)+1/n))
plot(out3)
flare.plot(out3$path[[5]])

Run the code above in your browser using DataLab