higlasso: Hierarchical Integrative Group LASSO

Description Usage Arguments Details Value Author(s) References Examples

View source: R/higlasso.R

Description

HiGLASSO is a regularization based selection method designed to detect non-linear interactions between variables, particularly exposures in environmental health studies.

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
higlasso(
  Y,
  X,
  Z,
  method = c("aenet", "gglasso"),
  lambda1 = NULL,
  lambda2 = NULL,
  nlambda1 = 10,
  nlambda2 = 10,
  lambda.min.ratio = 0.05,
  sigma = 1,
  basis.function = splines::bs,
  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 gglasso for group LASSO and aenet for adaptive elastic net. Default is aenet

lambda1

A numeric vector of main effect penalties on which to tune By default, lambda1 = NULL and higlasso generates a length nlambda1 sequence of lambda1s based off of the data and min.lambda.ratio

lambda2

A numeric vector of interaction effects penalties on which to tune. By default, lambda2 = NULL and generates a sequence (length nlambda2) of lambda2s based off of the data and min.lambda.ratio

nlambda1

The number of lambda1 values to generate. Default is 10, minimum is 2. If lambda1 != NULL, this parameter is ignored

nlambda2

The number of lambda2 values to generate. Default is 10, minimum is 2. If lambda2 != NULL, this parameter is ignored

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 bs, from the 'splines' package

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

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

 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)

umich-cphds/higlasso documentation built on Nov. 13, 2020, 1:49 a.m.