我对R还是很陌生,我正在尝试使用mgcv::gam
函数为数据建模,但是它具有很多解释变量。我知道,使用常规的线性回归模型,您可以只使用.
来解释变量,但是GAM是否也适用?还是有另一种将所有变量都包含在数据集中的简便方法?
假设我有a
至z
的解释变量,并且我想要一个预测方程
y ~ s(a) + s(b) + ... + s(z)
有没有更简单的方法来表示这一点?
任何建议将不胜感激!
答案 0 :(得分:0)
据我所知,还没有一个y ~ .
涵盖这一点。但是,假设您要使用所有变量。然后,您可以使用paste
和公式来执行相同的任务。假设您正在使用mtcars
数据框,并且您的y
变量是mpg
。
然后提供以下服务:
mgcv::gam(
as.formula(
paste0(
"mpg ~ s(",
setdiff(names(mtcars), "mpg") %>% paste0(collapse = ") + s("),
")"
)
),
data = mtcars
)
所以重点是collapse
参数,并加上括号。在您的应用程序中,将是
mgcv::gam(
as.formula(paste0("y ~ s(", letters %>% paste0(collapse = ") + s("), ")")),
data = df
)