higlasso {higlasso} | R Documentation |
Hierarchical Integrative Group LASSO
Description
HiGLASSO is a regularization based selection method designed to detect non-linear interactions between variables, particularly exposures in environmental health studies.
Usage
higlasso(
Y,
X,
Z,
method = c("aenet", "gglasso"),
lambda1 = NULL,
lambda2 = NULL,
nlambda1 = 10,
nlambda2 = 10,
lambda.min.ratio = 0.05,
sigma = 1,
degree = 2,
maxit = 5000,
tol = 1e-05
)
Arguments
Y |
A length n numeric response vector |
X |
A n x p numeric matrix of covariates to basis expand |
Z |
A n x m numeric matrix of non basis expanded and non regularized covariates |
method |
Type of initialization to use. Possible choices are |
lambda1 |
A numeric vector of main effect penalties on which to tune
By default, |
lambda2 |
A numeric vector of interaction effects penalties on which to
tune. By default, |
nlambda1 |
The number of lambda1 values to generate. Default is 10,
minimum is 2. If |
nlambda2 |
The number of lambda2 values to generate. Default is 10,
minimum is 2. If |
lambda.min.ratio |
Ratio that calculates min lambda from max lambda. Ignored if 'lambda1' or 'lambda2' is non NULL. Default is 0.05 |
sigma |
Scale parameter for integrative weights. Technically a third tuning parameter but defaults to 1 for computational tractability |
degree |
Degree of |
maxit |
Maximum number of iterations. Default is 5000 |
tol |
Tolerance for convergence. Default is 1e-5 |
Details
There are a few things to keep in mind when using higlasso
higlasso
uses the strong heredity principle. That is,X_1
andX_2
must included as main effects before the interactionX_1 X_2
can be included.While
higlasso
uses integrative weights to help with estimation,higlasso
is more of a selection method. As a result,higlasso
does not output coefficient estimates, only which variables are selected.Simulation studies suggest that
higlasso
is a very conservative method when it comes to selecting interactions. That is,higlasso
has a low false positive rate and the identification of a nonlinear interaction is a good indicator that further investigation is worthwhile.higlasso
can be slow, so it may may be beneficial to tweak some of its settings (for example,nlambda1
andnlambda2
) to get a handle on how long the method will take before running the full model.
Value
An object of type "higlasso" with 4 elements:
- lambda
An
nlambda1 x nlambda2 x 2
array containing each pair(lambda1, lambda2)
pair.- selected
An
nlambda1 x nlambda2 x ncol(X)
array containing higlasso's selections for each lambda pair.- df
The number of nonzero selections for each lambda pair.
- call
The call that generated the output.
Author(s)
Alexander Rix
References
A Hierarchical Integrative Group LASSO (HiGLASSO) Framework for Analyzing Environmental Mixtures. Jonathan Boss, Alexander Rix, Yin-Hsiu Chen, Naveen N. Narisetty, Zhenke Wu, Kelly K. Ferguson, Thomas F. McElrath, John D. Meeker, Bhramar Mukherjee. 2020. arXiv:2003.12844
Examples
library(higlasso)
X <- as.matrix(higlasso.df[, paste0("V", 1:7)])
Y <- higlasso.df$Y
Z <- matrix(1, nrow(X))
# This can take a bit of time
higlasso.fit <- higlasso(Y, X, Z)