--- title: "Hierarchical Integrative Group LASSO" author: "Alexander Rix" output: rmarkdown::html_vignette vignette: > %\VignetteIndexEntry{Hierarchical Integrative Group LASSO} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} --- ```{r, include = FALSE} knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) ``` ## Introduction 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. ## Installation `higlasso` can be installed from CRAN ```{r, eval = F} install.packages("higlasso") ``` `higlasso` can also be installed via Github using `devtools` ```{r, eval = F} # 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. ## Example `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. ```{r, eval = T} 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) ``` ## 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 ##Contact information If you would like to report a bug in the code, ask questions, or send requests/suggestions e-mail Jonathan Boss at `bossjona@umich.edu` or Alexander Rix at `alexrix@umich.edu`.