| Title: | Hierarchical Partitioning of Adjusted R2 and Explained Deviance for Generalized Additive Models |
|---|---|
| Description: | Conducts hierarchical partitioning to calculate individual contributions of each predictor towards adjusted R2 and explained deviance for generalized additive models based on output of 'gam()' and 'bam()' in 'mgcv' package, applying the algorithm in this paper: Lai(2024) <doi:10.1016/j.pld.2024.06.002>. |
| Authors: | Jiangshan Lai [aut, cre] (ORCID: <https://orcid.org/0000-0002-0279-8816>), Jing Tang [aut] |
| Maintainer: | Jiangshan Lai <[email protected]> |
| License: | GPL |
| Version: | 0.0-5 |
| Built: | 2026-05-22 18:51:21 UTC |
| Source: | https://github.com/cran/gam.hp |
Hierarchical Partitioning of Adjusted R2 and Explained Deviance for Generalized Additive Models
gam.hp(mod, iv = NULL, type = "dev", commonality = FALSE)gam.hp(mod, iv = NULL, type = "dev", commonality = FALSE)
mod |
Fitted "gam" model objects. |
iv |
optional The relative importance of predictor groups will be assessed. The input for iv should be a list, where each element contains the names of variables belonging to a specific group. These variable names must correspond to the predictor variables defined in the model (mod). |
type |
The type of R-square of gam, either "dev" or "adjR2", in which "dev" is explained deviance and "adjR2" is adjusted R-square, the default is "dev". |
commonality |
Logical; If TRUE, the result of commonality analysis (2^N-1 fractions for N predictors) is shown, the default is FALSE. |
This function conducts hierarchical partitioning to calculate the individual contributions of each predictor towards total adjusted R2 and explained deviance for Generalized Additive Models. The adjusted R2 and explained deviance are is the output of summary.gam()in mgcv package.
dev |
The R2 for the full model. |
hierarchical.partitioning |
A matrix containing individual effects and percentage of individual effects towards total adjusted R2 and explained deviance for each predictor. |
Jiangshan Lai [email protected]
Lai J.,Tang J., Li T., Zhang A.,Mao L.(2024)Evaluating the relative importance of predictors in Generalized Additive Models using the gam.hp R package.Plant Diversity,46(4):542-546<DOI:10.1016/j.pld.2024.06.002>
Lai J.,Zhu W., Cui D.,Mao L.(2023)Extension of the glmm.hp package to Zero-Inflated generalized linear mixed models and multiple regression.Journal of Plant Ecology,16(6):rtad038<DOI:10.1093/jpe/rtad038>
Lai J.,Zou Y., Zhang S.,Zhang X.,Mao L.(2022)glmm.hp: an R package for computing individual effect of predictors in generalized linear mixed models.Journal of Plant Ecology,15(6):1302-1307<DOI:10.1093/jpe/rtac096>
Lai J.,Zou Y., Zhang J.,Peres-Neto P.(2022) Generalizing hierarchical and variation partitioning in multiple regression and canonical analyses using the rdacca.hp R package.Methods in Ecology and Evolution,13(4):782-788<DOI:10.1111/2041-210X.13800>
Chevan, A. & Sutherland, M. (1991). Hierarchical partitioning. American Statistician, 45, 90-96. doi:10.1080/00031305.1991.10475776
Nimon, K., Oswald, F.L. & Roberts, J.K. (2013). Yhat: Interpreting regression effects. R package version 2.0.0.
library(mgcv) mod1 <- gam(Sepal.Length ~ s(Petal.Length) + s(Petal.Width) + Sepal.Width,data = iris) summary(mod1) gam.hp(mod1) gam.hp(mod1,type="adjR2") gam.hp(mod1,commonality=TRUE) iv <- list(env1=c("s(Petal.Length)","s(Petal.Width)"),env2="Sepal.Width") gam.hp(mod1,iv,type="adjR2") gam.hp(mod1,iv,commonality=TRUE)library(mgcv) mod1 <- gam(Sepal.Length ~ s(Petal.Length) + s(Petal.Width) + Sepal.Width,data = iris) summary(mod1) gam.hp(mod1) gam.hp(mod1,type="adjR2") gam.hp(mod1,commonality=TRUE) iv <- list(env1=c("s(Petal.Length)","s(Petal.Width)"),env2="Sepal.Width") gam.hp(mod1,iv,type="adjR2") gam.hp(mod1,iv,commonality=TRUE)
Permutation Test of Hierarchical Partitioning for GAM Analysis
permu.gamhp(mod = NULL, iv = NULL, type = "dev", permutations = 10)permu.gamhp(mod = NULL, iv = NULL, type = "dev", permutations = 10)
mod |
gam model generated by mgcv::gam() |
iv |
optional The relative importance of predictor groups will be assessed. The input for iv should be a list, where each element contains the names of variables belonging to a specific group. These variable names must correspond to the predictor variables defined in the model (mod). |
type |
The type of total explained variation, either "dev" or "adjR2", in which "dev" is deviance explained and "adjR2" is adjusted R-square, the default is "adjR2". |
permutations |
An integer; Number of permutations for computing p value of individual contribution for the randomized dataset. |
This function is a permutation test of hierarchical partitioning for gam analysis. It returns a matrix of I values (the individual contribution towards total explained variation) for all values from permutations randomizations. For each permutation, the values in each variable (i.e each column of iv) are randomized independently, and gam.hp is run on the randomized iv. As well as the randomized I matrix, the function returns a summary table listing the observed I values, the p value of I for the randomized dataset.
a data.frame containing a summary table listing the observed individual contribution, the p value of individual contribution for the randomized dataset
Jiangshan Lai [email protected]
library(mgcv) mod1 <- gam(Sepal.Length ~ s(Petal.Length) + s(Petal.Width) + Sepal.Width,data = iris) permu.gamhp(mod=mod1,type="dev",permutations=10) iv <- list(env1=c("s(Petal.Length)","s(Petal.Width)"),env2="Sepal.Width") permu.gamhp(mod=mod1,iv,type="dev",permutations=10)library(mgcv) mod1 <- gam(Sepal.Length ~ s(Petal.Length) + s(Petal.Width) + Sepal.Width,data = iris) permu.gamhp(mod=mod1,type="dev",permutations=10) iv <- list(env1=c("s(Petal.Length)","s(Petal.Width)"),env2="Sepal.Width") permu.gamhp(mod=mod1,iv,type="dev",permutations=10)
gam.hp objectPlot for a gam.hp object
## S3 method for class 'gamhp' plot(x, plot.perc = FALSE, ...)## S3 method for class 'gamhp' plot(x, plot.perc = FALSE, ...)
x |
A |
plot.perc |
Logical;if TRUE, the bar plot (based on ggplot2 package) of the percentage to individual effects of variables towards total explained variation, the default is FALSE to show plot with original individual effects. |
... |
unused |
a ggplot object
Jiangshan Lai [email protected]
library(mgcv) mod1 <- gam(Sepal.Length ~ s(Petal.Length) + s(Petal.Width) + Sepal.Width,data = iris) plot(gam.hp(mod1))library(mgcv) mod1 <- gam(Sepal.Length ~ s(Petal.Length) + s(Petal.Width) + Sepal.Width,data = iris) plot(gam.hp(mod1))