Title: | High-Dimensional Undirected Graph Estimation |
---|---|
Description: | Provides a general framework for high-dimensional undirected graph estimation. It integrates data preprocessing, 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 Meinshausen-Buhlmann graph estimation or the graphical lasso, and both methods can be further accelerated by the lossy screening rule preselecting the neighborhood of each variable by correlation thresholding. We target on high-dimensional data analysis usually d >> n, and the computation is memory-optimized using the sparse matrix output. We also provide a computationally efficient approach, correlation thresholding graph estimation. Three regularization/thresholding parameter selection methods are included in this package: (1)stability approach for regularization selection (2) rotation information criterion (3) extended Bayesian information criterion which is only available for the graphical lasso. |
Authors: | Haoming Jiang, Xinyu Fei, Han Liu, Kathryn Roeder, John Lafferty, Larry Wasserman, Xingguo Li, and Tuo Zhao |
Maintainer: | Haoming Jiang <[email protected]> |
License: | GPL-2 |
Version: | 1.3.5 |
Built: | 2024-11-02 06:34:26 UTC |
Source: | CRAN |
A package for high-dimensional undirected graph estimation
Package: | huge |
Type: | Package |
Version: | 1.2.7 |
Date: | 2015-09-14 |
License: | GPL-2 |
LazyLoad: | yes |
The package "huge" provides 8 main functions:
(1) the data generator creates random samples from multivariate normal distributions with different graph structures. Please refer to huge.generator
.
(2) the nonparanormal (npn) transformation helps relax the normality assumption. Please refer to huge.npn
.
(3) The correlation thresholding graph estimation. Please refer to huge
.
(4) The Meinshausen-Buhlmann graph estimation. Please refer to huge
.
(5) The graphical Lasso algorithm using lossless screening rule. Please refer and huge
.
**Both (4) and (5) can be further accelerated by the lossy screening rule preselecting the neighborhood of each node via thresholding sample correlation.
(6) The model selection using the stability approach to regularization selection. Please refer to huge.select
.
(7) The model selection using the rotation information criterion. Please refer to huge.select
.
(8) The model selection using the extended Bayesian information criterion. Please refer to huge.select
.
Tuo Zhao, Han Liu, Haoming Jiang, Kathryn Roeder, John Lafferty, and Larry Wasserman
Maintainers: Haoming Jiang<[email protected]>;
1. T. Zhao and H. Liu. The huge Package for High-dimensional Undirected Graph Estimation in R. Journal of Machine Learning Research, 2012
2. H. Liu, F. Han, M. Yuan, J. Lafferty and L. Wasserman. High Dimensional Semiparametric Gaussian Copula Graphical Models. Annals of Statistics,2012
3. D. Witten and J. Friedman. New insights and faster computations for the graphical lasso. Journal of Computational and Graphical Statistics, to appear, 2011.
4. Han Liu, Kathryn Roeder and Larry Wasserman. Stability Approach to Regularization Selection (StARS) for High Dimensional Graphical Models. Advances in Neural Information Processing Systems, 2010.
5. R. Foygel and M. Drton. Extended bayesian information criteria for gaussian graphical models. Advances in Neural Information Processing Systems, 2010.
6. H. Liu, J. Lafferty and L. Wasserman. The Nonparanormal: Semiparametric Estimation of High Dimensional Undirected Graphs. Journal of Machine Learning Research, 2009
7. J. Fan and J. Lv. Sure independence screening for ultra-high dimensional feature space (with discussion). Journal of Royal Statistical Society B, 2008.
8. O. Banerjee, L. E. Ghaoui, A. d'Aspremont: Model Selection Through Sparse Maximum Likelihood Estimation for Multivariate Gaussian or Binary Data. Journal of Machine Learning Research, 2008.
9. J. Friedman, T. Hastie and R. Tibshirani. Regularization Paths for Generalized Linear Models via Coordinate Descent. Journal of Statistical Software, 2008.
10. J. Friedman, T. Hastie and R. Tibshirani. Sparse inverse covariance estimation with the lasso, Biostatistics, 2007.
11. N. Meinshausen and P. Buhlmann. High-dimensional Graphs and Variable Selection with the Lasso. The Annals of Statistics, 2006.
huge.generator
, huge.npn
, huge
, huge.plot
and huge.roc
The main function for high-dimensional undirected graph estimation. Three graph estimation methods, including (1) Meinshausen-Buhlmann graph estimation (mb
) (2) graphical lasso (glasso
) (3) correlation thresholding graph estimation (ct
) and (4) tuning-insensitive graph estimation (tiger
), are available for data analysis.
huge( x, lambda = NULL, nlambda = NULL, lambda.min.ratio = NULL, method = "mb", scr = NULL, scr.num = NULL, cov.output = FALSE, sym = "or", verbose = TRUE )
huge( x, lambda = NULL, nlambda = NULL, lambda.min.ratio = NULL, method = "mb", scr = NULL, scr.num = NULL, cov.output = FALSE, sym = "or", verbose = TRUE )
x |
There are 2 options: (1) |
lambda |
A sequence of decreasing positive numbers to control the regularization when |
nlambda |
The number of regularization/thresholding parameters. The default value is |
lambda.min.ratio |
If |
method |
Graph estimation methods with 4 options: |
scr |
If |
scr.num |
The neighborhood size after the lossy screening rule (the number of remaining neighbors per node). ONLY applicable when |
cov.output |
If |
sym |
Symmetrize the output graphs. If |
verbose |
If |
The graph structure is estimated by Meinshausen-Buhlmann graph estimation or the graphical lasso, and both methods can be further accelerated via the lossy screening rule by preselecting the neighborhood of each variable by correlation thresholding. We target on high-dimensional data analysis usually d >> n, and the computation is memory-optimized using the sparse matrix output. We also provide a highly computationally efficient approaches correlation thresholding graph estimation.
An object with S3 class "huge"
is returned:
data |
The |
cov.input |
An indicator of the sample covariance. |
ind.mat |
The |
lambda |
The sequence of regularization parameters used in mb or thresholding parameters in ct. |
sym |
The |
scr |
The |
path |
A list of |
sparsity |
The sparsity levels of the graph path. |
icov |
A list of |
cov |
A list of |
method |
The method used in the graph estimation stage. |
df |
If |
loglik |
A |
This function ONLY estimates the graph path. For more information about the optimal graph selection, please refer to huge.select
.
huge.generator
, huge.select
, huge.plot
, huge.roc
, and huge-package
.
#generate data L = huge.generator(n = 50, d = 12, graph = "hub", g = 4) #graph path estimation using mb out1 = huge(L$data) out1 plot(out1) #Not aligned plot(out1, align = TRUE) #Aligned huge.plot(out1$path[[3]]) #graph path estimation using the sample covariance matrix as the input. #out1 = huge(cor(L$data), method = "glasso") #out1 #plot(out1) #Not aligned #plot(out1, align = TRUE) #Aligned #huge.plot(out1$path[[3]]) #graph path estimation using ct #out2 = huge(L$data,method = "ct") #out2 #plot(out2) #graph path estimation using glasso #out3 = huge(L$data, method = "glasso") #out3 #plot(out3) #graph path estimation using tiger #out4 = huge(L$data, method = "tiger") #out4 #plot(out4)
#generate data L = huge.generator(n = 50, d = 12, graph = "hub", g = 4) #graph path estimation using mb out1 = huge(L$data) out1 plot(out1) #Not aligned plot(out1, align = TRUE) #Aligned huge.plot(out1$path[[3]]) #graph path estimation using the sample covariance matrix as the input. #out1 = huge(cor(L$data), method = "glasso") #out1 #plot(out1) #Not aligned #plot(out1, align = TRUE) #Aligned #huge.plot(out1$path[[3]]) #graph path estimation using ct #out2 = huge(L$data,method = "ct") #out2 #plot(out2) #graph path estimation using glasso #out3 = huge(L$data, method = "glasso") #out3 #plot(out3) #graph path estimation using tiger #out4 = huge(L$data, method = "tiger") #out4 #plot(out4)
See more details in huge
huge.ct( x, nlambda = NULL, lambda.min.ratio = NULL, lambda = NULL, verbose = TRUE )
huge.ct( x, nlambda = NULL, lambda.min.ratio = NULL, lambda = NULL, verbose = TRUE )
x |
There are 2 options: (1) |
nlambda |
The number of regularization/thresholding parameters. The default value is |
lambda.min.ratio |
If |
lambda |
A sequence of decreasing positive numbers to control the regularization when |
verbose |
If |
huge
, and huge-package
.
Implements the data generation from multivariate normal distributions with different graph structures, including "random"
, "hub"
, "cluster"
, "band"
and "scale-free"
.
huge.generator( n = 200, d = 50, graph = "random", v = NULL, u = NULL, g = NULL, prob = NULL, vis = FALSE, verbose = TRUE )
huge.generator( n = 200, d = 50, graph = "random", v = NULL, u = NULL, g = NULL, prob = NULL, vis = FALSE, verbose = TRUE )
n |
The number of observations (sample size). The default value is |
d |
The number of variables (dimension). The default value is |
graph |
The graph structure with 4 options: |
v |
The off-diagonal elements of the precision matrix, controlling the magnitude of partial correlations with |
u |
A positive number being added to the diagonal elements of the precision matrix, to control the magnitude of partial correlations. The default value is |
g |
For |
prob |
For |
vis |
Visualize the adjacency matrix of the true graph structure, the graph pattern, the covariance matrix and the empirical covariance matrix. The default value is |
verbose |
If |
Given the adjacency matrix theta
, the graph patterns are generated as below:
(I) "random"
: Each pair of off-diagonal elements are randomly set theta[i,j]=theta[j,i]=1
for i!=j
with probability prob
, and 0
other wise. It results in about d*(d-1)*prob/2
edges in the graph.
(II)"hub"
:The row/columns are evenly partitioned into g
disjoint groups. Each group is associated with a "center" row i
in that group. Each pair of off-diagonal elements are set theta[i,j]=theta[j,i]=1
for i!=j
if j
also belongs to the same group as i
and 0
otherwise. It results in d - g
edges in the graph.
(III)"cluster"
:The row/columns are evenly partitioned into g
disjoint groups. Each pair of off-diagonal elements are set theta[i,j]=theta[j,i]=1
for i!=j
with the probability prob
if both i
and j
belong to the same group, and 0
other wise. It results in about g*(d/g)*(d/g-1)*prob/2
edges in the graph.
(IV)"band"
: The off-diagonal elements are set to be theta[i,j]=1
if 1<=|i-j|<=g
and 0
other wise. It results in (2d-1-g)*g/2
edges in the graph.
(V) "scale-free"
: The graph is generated using B-A algorithm. The initial graph has two connected nodes and each new node is connected to only one node in the existing graph with the probability proportional to the degree of the each node in the existing graph. It results in d
edges in the graph.
The adjacency matrix theta
has all diagonal elements equal to 0
. To obtain a positive definite precision matrix, the smallest eigenvalue of theta*v
(denoted by e
) is computed. Then we set the precision matrix equal to theta*v+(|e|+0.1+u)I
. The covariance matrix is then computed to generate multivariate normal data.
An object with S3 class "sim" is returned:
data |
The |
sigma |
The covariance matrix for the generated data |
omega |
The precision matrix for the generated data |
sigmahat |
The empirical covariance matrix for the generated data |
theta |
The adjacency matrix of true graph structure (in sparse matrix representation) for the generated data |
huge
and huge-package
## band graph with bandwidth 3 L = huge.generator(graph = "band", g = 3) plot(L) ## random sparse graph L = huge.generator(vis = TRUE) ## random dense graph L = huge.generator(prob = 0.5, vis = TRUE) ## hub graph with 6 hubs L = huge.generator(graph = "hub", g = 6, vis = TRUE) ## hub graph with 8 clusters L = huge.generator(graph = "cluster", g = 8, vis = TRUE) ## scale-free graphs L = huge.generator(graph="scale-free", vis = TRUE)
## band graph with bandwidth 3 L = huge.generator(graph = "band", g = 3) plot(L) ## random sparse graph L = huge.generator(vis = TRUE) ## random dense graph L = huge.generator(prob = 0.5, vis = TRUE) ## hub graph with 6 hubs L = huge.generator(graph = "hub", g = 6, vis = TRUE) ## hub graph with 8 clusters L = huge.generator(graph = "cluster", g = 8, vis = TRUE) ## scale-free graphs L = huge.generator(graph="scale-free", vis = TRUE)
See more details in huge
huge.glasso( x, lambda = NULL, lambda.min.ratio = NULL, nlambda = NULL, scr = NULL, cov.output = FALSE, verbose = TRUE )
huge.glasso( x, lambda = NULL, lambda.min.ratio = NULL, nlambda = NULL, scr = NULL, cov.output = FALSE, verbose = TRUE )
x |
There are 2 options: (1) |
lambda |
A sequence of decreasing positive numbers to control the regularization when |
lambda.min.ratio |
If |
nlambda |
The number of regularization/thresholding parameters. The default value is |
scr |
If |
cov.output |
If |
verbose |
If |
huge
, and huge-package
.
Implements the inference for high dimensional graphical models, including Gaussian and Nonparanormal graphical models We consider the problems of testing the presence of a single edge and the hypothesis is that the edge is absent.
huge.inference(data, T, adj, alpha = 0.05, type = "Gaussian", method = "score")
huge.inference(data, T, adj, alpha = 0.05, type = "Gaussian", method = "score")
data |
The input |
T |
The estimated inverse of correlation matrix of the data. |
adj |
The adjacency matrix corresponding to the graph. |
alpha |
The significance level of hypothesis.The default value is |
type |
The type of input data. There are 2 options: |
method |
When using nonparanormal graphical model. Test method with 2 options: |
For Nonparanormal graphical model we provide Score test method and Wald Test. However it is really slow for inferencing on Nonparanormal model, especially for large data.
An object is returned:
data |
The |
p |
The |
error |
The type I error of hypothesis at alpha significance level. |
1.Q Gu, Y Cao, Y Ning, H Liu. Local and global inference for high dimensional nonparanormal graphical models.
2.J Jankova, S Van De Geer. Confidence intervals for high-dimensional inverse covariance estimation. Electronic Journal of Statistics, 2015.
huge
, and huge-package
.
#generate data L = huge.generator(n = 50, d = 12, graph = "hub", g = 4) #graph path estimation using glasso est = huge(L$data, method = "glasso") #inference of Gaussian graphical model at 0.05 significance level T = tail(est$icov, 1)[[1]] out1 = huge.inference(L$data, T, L$theta) #inference of Nonparanormal graphical model using score test at 0.05 significance level T = tail(est$icov, 1)[[1]] out2 = huge.inference(L$data, T, L$theta, type = "Nonparanormal") #inference of Nonparanormal graphical model using wald test at 0.05 significance level T = tail(est$icov, 1)[[1]] out3 = huge.inference(L$data, T, L$theta, type = "Nonparanormal", method = "wald") #inference of Nonparanormal graphical model using wald test at 0.1 significance level T = tail(est$icov, 1)[[1]] out4 = huge.inference(L$data, T, L$theta, 0.1, type = "Nonparanormal", method = "wald")
#generate data L = huge.generator(n = 50, d = 12, graph = "hub", g = 4) #graph path estimation using glasso est = huge(L$data, method = "glasso") #inference of Gaussian graphical model at 0.05 significance level T = tail(est$icov, 1)[[1]] out1 = huge.inference(L$data, T, L$theta) #inference of Nonparanormal graphical model using score test at 0.05 significance level T = tail(est$icov, 1)[[1]] out2 = huge.inference(L$data, T, L$theta, type = "Nonparanormal") #inference of Nonparanormal graphical model using wald test at 0.05 significance level T = tail(est$icov, 1)[[1]] out3 = huge.inference(L$data, T, L$theta, type = "Nonparanormal", method = "wald") #inference of Nonparanormal graphical model using wald test at 0.1 significance level T = tail(est$icov, 1)[[1]] out4 = huge.inference(L$data, T, L$theta, 0.1, type = "Nonparanormal", method = "wald")
See more details in huge
huge.mb( x, lambda = NULL, nlambda = NULL, lambda.min.ratio = NULL, scr = NULL, scr.num = NULL, idx.mat = NULL, sym = "or", verbose = TRUE )
huge.mb( x, lambda = NULL, nlambda = NULL, lambda.min.ratio = NULL, scr = NULL, scr.num = NULL, idx.mat = NULL, sym = "or", verbose = TRUE )
x |
There are 2 options: (1) |
lambda |
A sequence of decreasing positive numbers to control the regularization when |
nlambda |
The number of regularization/thresholding parameters. The default value is |
lambda.min.ratio |
If |
scr |
If |
scr.num |
The neighborhood size after the lossy screening rule (the number of remaining neighbors per node). ONLY applicable when |
idx.mat |
Index matrix for screening. |
sym |
Symmetrize the output graphs. If |
verbose |
If |
huge
, and huge-package
.
Implements the Gausianization to help relax the assumption of normality.
huge.npn(x, npn.func = "shrinkage", npn.thresh = NULL, verbose = TRUE)
huge.npn(x, npn.func = "shrinkage", npn.thresh = NULL, verbose = TRUE)
x |
The |
npn.func |
The transformation function used in the npn transformation. If |
npn.thresh |
The truncation threshold used in nonparanormal transformation, ONLY applicable when |
verbose |
If |
The nonparanormal extends Gaussian graphical models to semiparametric Gaussian copula models.Motivated by sparse additive models, the nonparanormal method estimates the Gaussian copula by marginally transforming the variables using smooth functions.Computationally, the estimation of a nonparanormal transformation is very efficient and only requires one pass of the data matrix.
data |
A |
huge
and huge-package
.
# generate nonparanormal data L = huge.generator(graph = "cluster", g = 5) L$data = L$data^5 # transform the data using the shrunken ECDF Q = huge.npn(L$data) # transform the non-Gaussian data using the truncated ECDF Q = huge.npn(L$data, npn.func = "truncation") # transform the non-Gaussian data using the truncated ECDF Q = huge.npn(L$data, npn.func = "skeptic")
# generate nonparanormal data L = huge.generator(graph = "cluster", g = 5) L$data = L$data^5 # transform the data using the shrunken ECDF Q = huge.npn(L$data) # transform the non-Gaussian data using the truncated ECDF Q = huge.npn(L$data, npn.func = "truncation") # transform the non-Gaussian data using the truncated ECDF Q = huge.npn(L$data, npn.func = "skeptic")
Implements the graph visualization using adjacency matrix. It can automatic organize 2D embedding layout.
huge.plot( G, epsflag = FALSE, graph.name = "default", cur.num = 1, location = NULL )
huge.plot( G, epsflag = FALSE, graph.name = "default", cur.num = 1, location = NULL )
G |
The adjacency matrix corresponding to the graph. |
epsflag |
If |
graph.name |
The name of the output eps files. The default value is "default". |
cur.num |
The number of plots saved as eps files. Only applicale when |
location |
Target directory. The default value is the current working directory. |
The user can change cur.num
to plot several figures and select the best one. The implementation is based on the popular package "igraph".
huge
and huge-package
.
## visualize the hub graph L = huge.generator(graph = "hub") huge.plot(L$theta) ## visualize the band graph L = huge.generator(graph = "band",g=5) huge.plot(L$theta) ## visualize the cluster graph L = huge.generator(graph = "cluster") huge.plot(L$theta) ## plot 5 graphs and save the plots as eps files in the tempdir() huge.plot(L$theta, epsflag = TRUE, cur.num = 5, location = tempdir())
## visualize the hub graph L = huge.generator(graph = "hub") huge.plot(L$theta) ## visualize the band graph L = huge.generator(graph = "band",g=5) huge.plot(L$theta) ## visualize the cluster graph L = huge.generator(graph = "cluster") huge.plot(L$theta) ## plot 5 graphs and save the plots as eps files in the tempdir() huge.plot(L$theta, epsflag = TRUE, cur.num = 5, location = tempdir())
Draws ROC curve for a graph path according to the true graph structure.
huge.roc(path, theta, verbose = TRUE)
huge.roc(path, theta, verbose = TRUE)
path |
A graph path. |
theta |
The true graph structure. |
verbose |
If |
To avoid the horizontal oscillation, false positive rates is automatically sorted in the ascent order and true positive rates also follow the same order.
An object with S3 class "roc" is returned:
F1 |
The F1 scores along the graph path. |
tp |
The true positive rates along the graph path |
fp |
The false positive rates along the graph paths |
AUC |
Area under the ROC curve |
For a lasso regression, the number of nonzero coefficients is at most n-1
. If d>>n
, even when regularization parameter is very small, the estimated graph may still be sparse. In this case, the AUC may not be a good choice to evaluate the performance.
huge
and huge-package
.
#generate data L = huge.generator(d = 200, graph = "cluster", prob = 0.3) out1 = huge(L$data) #draw ROC curve Z1 = huge.roc(out1$path,L$theta) #Maximum F1 score max(Z1$F1)
#generate data L = huge.generator(d = 200, graph = "cluster", prob = 0.3) out1 = huge(L$data) #draw ROC curve Z1 = huge.roc(out1$path,L$theta) #Maximum F1 score max(Z1$F1)
Implements the regularization parameter selection for high dimensional undirected graph estimation. The optional approaches are rotation information criterion (ric), stability approach to regularization selection (stars) and extended Bayesian information criterion (ebic).
huge.select( est, criterion = NULL, ebic.gamma = 0.5, stars.thresh = 0.1, stars.subsample.ratio = NULL, rep.num = 20, verbose = TRUE )
huge.select( est, criterion = NULL, ebic.gamma = 0.5, stars.thresh = 0.1, stars.subsample.ratio = NULL, rep.num = 20, verbose = TRUE )
est |
An object with S3 class |
criterion |
Model selection criterion. |
ebic.gamma |
The tuning parameter for ebic. The default value is 0.5. Only applicable when |
stars.thresh |
The variability threshold in stars. The default value is |
stars.subsample.ratio |
The subsampling ratio. The default value is |
rep.num |
The number of subsamplings when |
verbose |
If |
Stability approach to regularization selection (stars) is a natural way to select optimal regularization parameter for all three estimation methods. It selects the optimal graph by variability of subsamplings and tends to overselect edges in Gaussian graphical models. Besides selecting the regularization parameters, stars can also provide an additional estimated graph by merging the corresponding subsampled graphs using the frequency counts. The subsampling procedure in stars may NOT be very efficient, we also provide the recent developed highly efficient, rotation information criterion approach (ric). Instead of tuning over a grid by cross-validation or subsampling, we directly estimate the optimal regularization parameter based on random Rotations. However, ric usually has very good empirical performances but suffers from underselections sometimes. Therefore, we suggest if user are sensitive of false negative rates, they should either consider increasing r.num
or applying the stars to model selection. Extended Bayesian information criterion (ebic) is another competitive approach, but the ebic.gamma
can only be tuned by experience.
An object with S3 class "select" is returned:
refit |
The optimal graph selected from the graph path |
opt.icov |
The optimal precision matrix from the path only applicable when |
opt.cov |
The optimal covariance matrix from the path only applicable when |
merge |
The graph path estimated by merging the subsampling paths. Only applicable when the input |
variability |
The variability along the subsampling paths. Only applicable when the input |
ebic.scores |
Extended BIC scores for regularization parameter selection. Only applicable when |
opt.index |
The index of the selected regularization parameter. NOT applicable when the input |
opt.lambda |
The selected regularization/thresholding parameter. |
opt.sparsity |
The sparsity level of |
and anything else included in the input est
The model selection is NOT available when the data input is the sample covariance matrix.
huge
and huge-package
.
#generate data L = huge.generator(d = 20, graph="hub") out.mb = huge(L$data) out.ct = huge(L$data, method = "ct") out.glasso = huge(L$data, method = "glasso") #model selection using ric out.select = huge.select(out.mb) plot(out.select) #model selection using stars #out.select = huge.select(out.ct, criterion = "stars", stars.thresh = 0.05,rep.num=10) #plot(out.select) #model selection using ebic out.select = huge.select(out.glasso,criterion = "ebic") plot(out.select)
#generate data L = huge.generator(d = 20, graph="hub") out.mb = huge(L$data) out.ct = huge(L$data, method = "ct") out.glasso = huge(L$data, method = "glasso") #model selection using ric out.select = huge.select(out.mb) plot(out.select) #model selection using stars #out.select = huge.select(out.ct, criterion = "stars", stars.thresh = 0.05,rep.num=10) #plot(out.select) #model selection using ebic out.select = huge.select(out.glasso,criterion = "ebic") plot(out.select)
See more details in huge
huge.tiger( x, lambda = NULL, nlambda = NULL, lambda.min.ratio = NULL, sym = "or", verbose = TRUE )
huge.tiger( x, lambda = NULL, nlambda = NULL, lambda.min.ratio = NULL, sym = "or", verbose = TRUE )
x |
There are 2 options: (1) |
lambda |
A sequence of decreasing positive numbers to control the regularization when |
nlambda |
The number of regularization/thresholding parameters. The default value is |
lambda.min.ratio |
If |
sym |
Symmetrize the output graphs. If |
verbose |
If |
huge
, and huge-package
.
Plot sparsity level information and 3 typical sparse graphs from the graph path.
## S3 method for class 'huge' plot(x, align = FALSE, ...)
## S3 method for class 'huge' plot(x, align = FALSE, ...)
x |
An object with S3 class |
align |
If |
... |
System reserved (No specific usage) |
Plot the ROC curve for an object with S3 class "roc"
.
## S3 method for class 'roc' plot(x, ...)
## S3 method for class 'roc' plot(x, ...)
x |
An object with S3 class |
... |
System reserved (No specific usage) |
Plot the optimal graph by model selection.
## S3 method for class 'select' plot(x, ...)
## S3 method for class 'select' plot(x, ...)
x |
An object with S3 class |
... |
System reserved (No specific usage) |
Visualize the covariance matrix, the empirical covariance matrix, the adjacency matrix and the graph pattern of the true graph structure.
## S3 method for class 'sim' plot(x, ...)
## S3 method for class 'sim' plot(x, ...)
x |
An object with S3 class |
... |
System reserved (No specific usage) |
huge.generator
and huge
Print the information about the model usage, the graph path length, graph dimension, sparsity level.
## S3 method for class 'huge' print(x, ...)
## S3 method for class 'huge' print(x, ...)
x |
An object with S3 class |
... |
System reserved (No specific usage) |
Print the information about true positive rates, false positive rates, the area under curve and maximum F1 score.
## S3 method for class 'roc' print(x, ...)
## S3 method for class 'roc' print(x, ...)
x |
An object with S3 class |
... |
System reserved (No specific usage) |
Print the information about the model usage, graph dimension, model selection criterion, sparsity level of the optimal graph.
## S3 method for class 'select' print(x, ...)
## S3 method for class 'select' print(x, ...)
x |
An object with S3 class |
... |
System reserved (No specific usage) |
Print the information about the sample size, the dimension, the pattern and sparsity of the true graph structure.
## S3 method for class 'sim' print(x, ...)
## S3 method for class 'sim' print(x, ...)
x |
An object with S3 class |
... |
System reserved (No specific usage) |
This data set consists of stock price and company information.
data(stockdata)
data(stockdata)
The format is a list containing contains two matrices. 1. data - 1258x452, represents the 452 stocks' close prices for 1258 trading days. 2. info - 452x3: The 1st column: the query symbol for each company. The 2nd column: the category for each company. The 3rd column: the full name of each company.
This data set can be used to perform high-dimensional graph estimation to analyze the relationships between S&P 500 companies.
It was publicly available at finance.yahoo, which is now out of date
data(stockdata) image(stockdata$data) stockdata$info
data(stockdata) image(stockdata$data) stockdata$info