【问题标题】:Multiple explanatory variables using GAM in R?在 R 中使用 GAM 的多个解释变量?
【发布时间】:2019-06-12 03:02:47
【问题描述】:

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

假设我有解释变量 a 到 z,我想要一个预测方程

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

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

任何建议将不胜感激!

【问题讨论】:

  • 如果您要这样做(如果您不想输入它们,则必须有很多变量),那么它建议您也应该使用select = TRUE gam() 打电话,知道这样做的含义是什么。
  • 另外,我希望您有 很多 数据,因为向模型中添加 26 个平滑将需要估计阶数 ~240 个系数,并选择 26 个平滑参数,再加上 26 个来自select = TRUE的额外惩罚。

标签: r gam


【解决方案1】:

据我所知,没有一个相当的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
)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-11
    • 1970-01-01
    • 2021-04-03
    • 2023-01-31
    • 1970-01-01
    相关资源
    最近更新 更多