Description Usage Arguments Details Value Author(s) References Examples
HiGLASSO is a regularization based selection method designed to detect non-linear interactions between variables, particularly exposures in environmental health studies.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
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 |
basis.function |
Function that performs a basis expansion on each
variable. The default is |
maxit |
Maximum number of iterations. Default is 5000 |
tol |
Tolerance for convergence. Default is 1e-5 |
There are a few things to keep in mind when using higlasso
higlasso
uses the strong heredity principle. That is,
X_1
and X_2
must included as main effects before the
interaction X_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
and
nlambda2
) to get a handle on how long the method will take
before running the full model.
An object of type "higlasso" with 4 elements:
An nlambda1 x nlambda2 x 2
array containing each
pair (lambda1, lambda2)
pair.
An nlambda1 x nlambda2 x ncol(X)
array containing
higlasso's selections for each lambda pair.
The number of nonzero selections for each lambda pair.
The call that generated the output.
Alexander Rix
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
1 2 3 4 5 6 7 8 9 10 11 12 13 | 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)
You can specify alternate basis expansions by changing 'basis.function'
bf = function(x) splines::bs(x, df = 4)
higlasso.fit <- higlasso(Y, X, Z, basis.function = bf)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.