Environmental health studies are increasingly measuring multiple pollutants to characterize the joint health effects attributable to exposure mixtures. However, the underlying dose-response relationship between toxicants and health outcomes of interest may be highly nonlinear, with possible nonlinear interaction effects. Hierarchical integrative group least absolute shrinkage and selection operator (HiGLASSO) is a general framework to identify noteworthy nonlinear main and interaction effects in the presence of group structures among a set of exposures.
The R package higlasso
contains an efficient Rcpp implementation of HiGLASSO and provides a cross validated variant, cv.higlasso
to assist in proper interaction detection. That being said, HiGLASSO is a time intensive algorithm and hence there is a limit to how many variables can used at once. higlasso
is suitable to use on medium sized environmental health datasets.
higlasso
can be installed from CRAN
install.packages("higlasso")
higlasso
can also be installed via Github using devtools
# install.packages("devtools")
devtools::install_github("umich-cphds/higlasso")
You’ll need a working C++11 compiler, which can obtained by installing Xcode on MacOS, and RTools on Windows. The Github version may have bug fixes or new features than the CRAN version doesn’t have, so it may be a good idea to take a look.
higlasso
comes with an example data.frame, higlasso.df
that is based off the first simulation case in the paper. It contains a numeric response and 10 covariates, X1 - X10.
library(higlasso)
set.seed(48109)
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, so we run the example with nondefault
# parameters to speed up the process
fit <- cv.higlasso(Y, X, Z)
print(fit)
#> 'cv.higlaso' fit:
#> Average cross validation error for each (lambda1, lambda2)
#> l2.1 l2.2 l2.3 l2.4 l2.5 l2.6 l2.7
#> l1.1 4.082960 3.433696 3.3894279 3.3493152 3.1864447 3.2557620 3.6921640
#> l1.2 2.934149 2.338762 1.8294917 2.5367949 2.3129504 1.7265008 1.3032390
#> l1.3 2.754044 1.998532 0.9702082 0.8358925 0.6997379 0.5598430 0.4786981
#> l1.4 2.722624 2.094625 0.9310171 0.7921443 0.6703553 0.4669093 0.4609298
#> l1.5 2.658753 2.082758 0.8265055 0.7242707 0.6314249 0.4681145 0.5041253
#> l1.6 2.644620 1.909301 0.8089151 0.7194744 0.6187322 0.4195757 0.4787553
#> l1.7 2.634554 1.899968 0.7808180 0.7146310 0.5770872 0.3831540 0.4738286
#> l1.8 2.623803 1.889389 0.7743647 0.6596754 0.5735138 0.3800307 0.4633401
#> l1.9 2.318330 1.884189 0.7665965 0.6561495 0.5189762 0.3774452 0.4529258
#> l1.10 2.320976 1.893472 0.8011604 0.6665445 0.5205078 0.3782318 0.4530359
#> l2.8 l2.9 l2.10
#> l1.1 3.6991445 3.7638172 3.7836256
#> l1.2 1.3862495 1.0415185 1.3832693
#> l1.3 0.6501100 0.2887670 0.1850158
#> l1.4 0.5321343 0.2642623 0.3332567
#> l1.5 0.5007745 0.2572069 0.2118808
#> l1.6 0.5058540 0.2374856 0.1557606
#> l1.7 0.4822058 0.3237550 0.1471226
#> l1.8 0.3677665 0.3241634 0.2673381
#> l1.9 0.3179627 0.2877593 0.1558612
#> l1.10 0.3366168 0.3158216 0.1465605
#> Lambda min:
#> 0.0550981 0.05613532
#> Lambda 1 SE:
#> 0.2086278 0.05613532
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
If you would like to report a bug in the code, ask questions, or send requests/suggestions e-mail Jonathan Boss at [email protected]
or Alexander Rix at [email protected]
.