在R中使用GAM的多个解释变量

时间:2019-06-12 03:02:47

标签: r gam

我对R还是很陌生,我正在尝试使用mgcv::gam函数为数据建模,但是它具有很多解释变量。我知道,使用常规的线性回归模型,您可以只使用.来解释变量,但是GAM是否也适用?还是有另一种将所有变量都包含在数据集中的简便方法?

假设我有az的解释变量,并且我想要一个预测方程

y ~ s(a) + s(b) + ... + s(z)

有没有更简单的方法来表示这一点?

任何建议将不胜感激!

1 个答案:

答案 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
)