有没有办法在 R 中自动选择 GAM 的变量,类似于步骤?我已经阅读了step.gam和的文档selection.gam,但我还没有看到有效代码的答案。此外,我尝试过method= "REML"和select = TRUE,但都没有从模型中删除无关紧要的变量。
我的理论是我可以创建一个步骤模型,然后使用这些变量来创建 GAM,但这在计算上似乎并不高效。
例子:
library(mgcv)
set.seed(0)
dat <- data.frame(rsp = rnorm(100, 0, 1),
pred1 = rnorm(100, 10, 1),
pred2 = rnorm(100, 0, 1),
pred3 = rnorm(100, 0, 1),
pred4 = rnorm(100, 0, 1))
model <- gam(rsp ~ s(pred1) + s(pred2) + s(pred3) + s(pred4),
data = dat, method = "REML", select = TRUE)
summary(model)
#Family: gaussian
#Link function: identity
#Formula:
#rsp ~ s(pred1) + s(pred2) …Run Code Online (Sandbox Code Playgroud) 我正在使用具有许多NA值的数据框.虽然我能够创建一个线性模型,但由于缺少值和缺少指标列,我随后无法将模型的拟合值与原始数据对齐.
这是一个可重复的例子:
library(MASS)
dat <- Aids2
# Add NA's
dat[floor(runif(100, min = 1, max = nrow(dat))),3] <- NA
# Create a model
model <- lm(death ~ diag + age, data = dat)
# Different Values
length(fitted.values(model))
# 2745
nrow(dat)
# 2843
Run Code Online (Sandbox Code Playgroud)