This is the repository for the manuscript Spike-and-Slab Generalized Additive Models and Scalable Algorithms for High-Dimensional Data. The repository is set up using the R workflow package targets
, and can be reproduced easily via targets
syntax.
- Install the necessary workflow packages
targets
andrenv
if you don't already have - Open the R console and call
renv::restore()
to install the required R packages. Please give permission to install the necessary packages. This will mirror the version of packages used in the creation of the manuscript exactly. - call the
targets::tar_make()
function to run the pipeline; for exampletargets::tar_make("manu")
to create the manuscript, andtargets::tar_make("manu_app")
to create the supporting information.
-
The raw/unaggregated the simulation results can be accessed here. The simulation computation was conducted separately on a high-performance super computer, and hence not included in the current workflow. You can find the code to replicate the simulation process in the folder
Simulation\Code
and the instruction to deploy the simulation on a cluster with the Slurm scheduling system via the repoboyiguo1/ Tutorial-Sim_Cluster_Composer
. -
The two datasets used for real data analyses are included in the repo for reproducibility purpose (placed in the folder
Real_Data
). The owner of this repository does not own the datasets, and suggest readers to check out the datasets on Dryad and Zendo- Emory Cardiovascular Biobank: https://datadryad.org/stash/dataset/doi:10.5061/dryad.866t1g1mt
- Weight Loss Maintenance Cohort: https://zenodo.org/record/4767969
-
The
sparseGAM
package (v1.0.99) included in therenv
environment differs from the current CRAN version (v1.0 as on Oct. 22, 2021). The difference being the cross-validation functioncv.SBGAM
will return prevalid response for out-of-sample statistics calculation.- To root down the difference, check out
cv.SSGL.output
in the functioncv.SSGL
- The modified version (v1.0.99) is located at
renv\local\sparseGAM_1.0.99.tar.gz
- To root down the difference, check out
-
For Windows users with limited choices of compilers, there might be packages needs compilation from source, e.g.
xfun
package. In this case, I encourage you to install the binary version of the package locally and userenv::hydrate()
beforerenv::restore()
to cache the necessary packages from your library.renv::hydrate() renv::restore()