Learn R Programming

huge (version 1.0.1)

huge: High-dimensional undirected graph estimation in one-step mode

Description

The main function for high-dimensional undirected graph estimation. It allows the user to load huge.NPN(), huge.GECT(), huge.MBGEL(), huge.glassoM() sequentially as a pipeline to analyze data.

Usage

huge(L, lambda = NULL, nlambda = NULL, lambda.min.ratio = NULL, NPN = FALSE, NPN.func = "shrinkage", NPN.thresh = NULL, method = "MBGEL", 
scr = NULL, scr.num = NULL, cov.glasso = FALSE, sym = "or", verbose = TRUE)

Arguments

L
There are two options for input L: (1) An n by d data matrix L representing n observations in d dimensions. (2) A list L containing L$data as an
lambda
A sequence of decresing positive numbers to control the regularization in Meinshausen & Buhlmann Graph Estimation via Lasso (MBGEL) and Graphical Lasso (GLASSO), or the thresholding in Graph Estimation via Correlation Thresholding (GECT). Typical usage is
nlambda
The number of regularization/thresholding paramters. The default value is 30 if method = "GECT" and 10 if method = "MBGEL" or method = "GLASSO".
lambda.min.ratio
If method = "MBGEL" or method = "GLASSO", it is the smallest value for lambda, as a fraction of the uppperbound (MAX) of the regularization/thresholding parameter which makes all estimates equal to
NPN
If NPN = TRUE, the nonparanormal transformation is applied to the input data L or L$data. The default value is FALSE.
NPN.func
The transformation function used in the NonparaNormal(NPN) transformation. If NPN.func = "truncation", the truncated ECDF is applied. If NPN.func = "shrinkage", the shrunken ECDF is applied. The default value is "shrinkage"
NPN.thresh
The truncation threshold used in NPN transformation, ONLY applicable when NPN.func = "truncation". The default value is 1/(4*(n^0.25)*sqrt(pi*log(n))).
method
Graph estimation methods with 3 options: "MBGEL", "GECT" and "GLASSO". The defaulty value is "MBGEL".
scr
If scr = TRUE, the Graph Sure Screening(GSS) is applied to preselect the neighborhood before MBGEL. The default value is TRUE for n and FALSE for n>=d. ONLY applicable when method =
scr.num
The neighborhood size after the GSS (the number of remaining neighbors per node). ONLY applicable when scr = TRUE. The default value is n-1. An alternative value is n/log(n). ONLY applicable when scr = TRUE
cov.glasso
If cov.glasso = TRUE, the outpu will inlcude a path of estimated covariance matrices. ONLY applicable when method = "GLASSO". Since the estimated covariance matrices are generally not sparse, please use it with care, or it may ta
sym
Symmetrize the 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"
verbose
If verbose = FALSE, tracing information printing is disabled. The default value is TRUE.

Value

  • An object with S3 class "huge" is returned:
  • dataThe n by d data matrix from the input
  • thetaThe true graph structure from the input. ONLY applicable when the input list L contains L$theta as the true graph structure.
  • ind.matThe scr.num by k matrix with each column correspondsing to a variable in ind.group and contains the indices of the remaining neighbors after the GSS. ONLY applicable when scr = TRUE and approx = FALSE
  • lambdaThe sequence of regularization parameters used in MBGEL or thresholding parameters in GECT.
  • symThe sym from the input. ONLY applicable when method = "MBGEL".
  • NPNThe NPN from the input.
  • scrThe scr from the input. ONLY applicable when method = "MBGEL".
  • pathA list of k by k adjacency matrices of estimated graphs as a graph path corresponding to lambda.
  • sparsityThe sparsity levels of the graph path.
  • wiA list of d by d precision matrices as an alternative graph path (numerical path) corresponding to lambda. ONLY applicable when {method = "GLASSO"}
  • wA list of d by d estimated covariance matrices corresponding to lambda. ONLY applicable when cov.glasso = TRUE and {method = "GLASSO"}
  • methodThe method used in the graph estimation stage.
  • rssA k by nlambda matrix. Each row is corresponding to a variable in ind.group and contains all RSS's (Residual Sum of Squares) along the lasso solution path. ONLY applicable when method = "MBGEL".
  • dfIf method = "MBGEL", it is a k by nlambda matrix. Each row corresponds to a variable in ind.group and contains the number of nonzero coefficients along the lasso solution path. If method = "GLASSO", it is a nlambda dimensional vector containing the number of nonzero coefficients along the graph path wi.
  • loglikA nlambda dimensional vector containing the likelihood scores along the graph path (wi). ONLY applicable when method = "GLASSO"

Details

It provides a general framework for high-dimensional undirected graph estimation. It integrates data preprocessing (Gaussianization), neighborhood screening, graph estimation, and model selection techniques into a pipeline. In preprocessing stage, the NonparaNormal(NPN) transformation is applied to help relax the normality assumption. In the graph estimation stage, the graph structure is estimated by the Meinshausen & Buhlmann Graph Estimation via Lasso (MBGEL) by default and it can be further accelerated by the Graph SURE Screening (GSS) subroutine which preselects the graph neighborhood of each variable. In the case d >> n, the computation is memory optimized and is targeted on larger-scale problems (with d>10000). We also provide two alternative approaches for the graph estimation stage:(1) Graph Estimation via Correlation Thresholding (GECT) which is highly efficient and (2) A slightly modified Graphical Lasso (GLASSO) procedure in which the memory usage is optimized using sparse matrix output.

References

1.Tuo Zhao and Han Liu. HUGE: A Package for High-dimensional Undirected Graph Estimation. Technical Report, Carnegie Mellon University, 2010 2.Han Liu, John Lafferty and Larry Wasserman. The Nonparanormal: Semiparametric Estimation of High Dimensional Undirected Graphs. Journal of Machine Learning Research (JMLR), 2009 3.Jianqing Fan and Jinchi Lv. Sure independence screening for ultra-high dimensional feature space (with discussion). Journal of Royal Statistical Society B, 2008. 4.Jerome Friedman, Trevor Hastie and Rob Tibshirani. Regularization Paths for Generalized Linear Models via Coordinate Descent. Journal of Statistical Software, 2008. 5.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. 6.Jerome Friedman, Trevor Hastie and Robert Tibshirani. Sparse inverse covariance estimation with the lasso. Biostatistics, 2007. 7.Nicolai Meinshausen and Peter Buhlmann. High-dimensional Graphs and Variable Selection with the Lasso. The Annals of Statistics, 2006.

See Also

huge.generator, huge.NPN, huge.GECT, huge.MBGEL, huge.glassoM, huge.select, huge.plot, huge.roc, lasso.stars and huge-package.

Examples

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

#graph path estimation with input as a list
out1 = huge(L)
summary(out1)
plot(out1)
plot(out1, align = TRUE)
huge.plot(out1$path[[3]])
plot(out1$lambda,out1$sparsity)

#graph path estimation using the GECT
out2 = huge(L$data,method = "GECT")
summary(out2)
plot(out2)

#graph path estimation using the GLASSO
out3 = huge(L, method = "GLASSO")
summary(out3)
plot(out3)

Run the code above in your browser using DataLab