Learn R Programming

huge (version 1.0.1)

huge.glassoM: High-dimensional undirected graph estimation via Graphical Lasso

Description

Estimates a graph path of sparse precision matrices using a sequence of regularization parameters.

Usage

huge.glassoM(x, lambda = NULL, lambda.min.ratio = NULL, nlambda = NULL, cov.glasso = FALSE, verbose = TRUE)

Arguments

x
The n by d data matrix representing n observations in d dimensions.
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 regularization paramters. The default value is 10.
lambda.min.ratio
The smallest value for lambda, as a fraction of the uppperbound (MAX) of the regularization/thresholding parameter which makes all estimates equal to 0. The program can automatically generate lambda as a
cov.glasso
If cov.glasso = TRUE, the outpu will inlcude a path of estimated covariance matrices. Since the estimated covariance matrices are generally not sparse, please use it with care, or it may take much memory under high-dimensional setting. The de
verbose
If verbose = FALSE, tracing information printing is disabled. The default value is TRUE.

Value

  • An object with S3 class "glassoM" is returned:
  • pathA list of k by k adjacency matrices of estimated graphs (in sparse matrix representation) as a solution path (graph path) corresponding to lambda.
  • wiA list of d by d estimated precision matrices (in sparse matrix representation) as an alternative graph path (numerical path) corresponding to lambda.
  • wA list of d by d estimated covariance matrices corresponding to lambda. ONLY applicable when cov.glasso = TRUE
  • lambdaThe sequence of regularization parameters used in the GLASSO.
  • sparsityThe sparsity levels of the graph path (graph path).
  • loglikA nlambda dimensional vector containing the likelihood scores along the graph path (wi).
  • dfA nlambda dimensional vector containing the number of nonzero coefficients along the graph path (wi).

Details

The graphical lasso is a well-known computational efficient algorithm to estimate the sparse precision matrix: $$log(det(Omega)) + Tr(S*Omega) + \lambda |Omega|_1$$ The implementation of this function is based on the popular package "glasso". Our huge.glassoM() is actually a modified version of Friedman's glassopath() in a memory efficient manner. Since in most case we are usually only interested in sparse results, instead of using a regular array, we store the graph path in a list with each element corresponding to an estimated precision matrix or graph in sparse matrix representation. This slightly change can help to reduce the memory usage in the high dimensional case. We also follow Dr. Friedman's warm start procedure and make this function computational efficient and stable.

References

1.Tuo Zhao and Han Liu. HUGE: A Package for High-dimensional Undirected Graph Estimation. Technical Report, Carnegie Mellon University, 2010 2.Jerome Friedman, Trevor Hastie and Robert Tibshirani. Sparse inverse covariance estimation with the lasso. Biostatistics, 2007. 6.Onureena Banerjee, Laurent El Ghaoui, Alexandre d'Aspremont: Model Selection Through Sparse Maximum Likelihood Estimation for Multivariate Gaussian or Binary Data. Journal of Machine Learning Research (JMLR), 2008.

See Also

huge, glasso, glassopath and huge-package.

Examples

Run this code
#generate data
L = huge.generator(n = 200, d = 100, graph = "hub")

#graph graph path estimation
out1 = huge.glassoM(L$data)
summary(out1)
plot(out1)

#Graph graph path estimation with specified nlambda and lambda.min.ratio
out3 = huge(L, method = "GLASSO", nlambda = 8, lambda.min.ratio = 0.2)
summary(out3)
plot(out3)

Run the code above in your browser using DataLab