Use predict in an lme4 style on gam/bam objects from mgcv.
predict_gamm( model, newdata, re_form = NULL, se = FALSE, include = NULL, exclude = NULL, keep_prediction_data = FALSE, ... )
| model | A gam class model from the |
|---|---|
| newdata | Data on which to predict on. Empty by default. |
| re_form |
|
| se | Logical. Include standard errors or not. Default is FALSE. |
| include | Which random effects to include in prediction. See
|
| exclude | Which random effects to exclude in prediction. See
|
| keep_prediction_data | Keep the model frame or newdata that was used in the prediction in final output? Default is FALSE. |
| ... | Other arguments for |
A data frame of predictions and possibly standard errors.
This is a wrapper for predict.gam. The goal is to
have similar functionality with predict function in lme4, which makes it
easy to drop all random effects or include specific ones. Some of this
functionality is not yet available for class bam.
library(lme4) library(mgcv) lmer_model <- lmer(Reaction ~ Days + (Days || Subject), data = sleepstudy) ga_model <- gam(Reaction ~ Days + s(Subject, bs = "re") + s(Days, Subject, bs = "re"), data = sleepstudy, method = "REML" ) head( data.frame( lmer = predict(lmer_model), gam = predict_gamm(ga_model) ) )#> lmer prediction #> 1 252.9178 252.9178 #> 2 272.7086 272.7086 #> 3 292.4993 292.4994 #> 4 312.2901 312.2901 #> 5 332.0809 332.0809 #> 6 351.8717 351.8717head( cbind( lmer = predict(lmer_model, re.form = NA), gam1 = predict_gamm(ga_model, re_form = NA), gam2 = predict_gamm(ga_model, exclude = c("s(Subject)", "s(Days,Subject)") ) ) )#> lmer prediction prediction #> 1 251.4051 251.4051 251.4051 #> 2 261.8724 261.8724 261.8724 #> 3 272.3397 272.3397 272.3397 #> 4 282.8070 282.8070 282.8070 #> 5 293.2742 293.2742 293.2742 #> 6 303.7415 303.7415 303.7415#> prediction se #> 1 252.9178 12.410220 #> 2 272.7086 10.660891 #> 3 292.4994 9.191224 #> 4 312.2901 8.153871 #> 5 332.0809 7.724998 #> 6 351.8717 8.003034