【问题标题】:How to include all possible two-way interaction terms in a linear model in R?如何在 R 的线性模型中包含所有可能的双向交互项?
【发布时间】:2021-07-17 16:26:50
【问题描述】:

是否有一种简单的方法可以在 R 中的模型中包含所有可能的双向交互?

鉴于此模型:

lm(a~b+c+d)

如果 bc 是主效应 b 和 c 的交互项,将使用什么语法使模型包括 b、c、d、bc、bd 和 cd 作为解释变量。

【问题讨论】:

标签: r


【解决方案1】:

你可以这样写:

lm(a ~ (b + c + d)^2)

这会创建bcd 之间双向交互的所有组合

例如:

lm(mpg ~ (cyl+disp+hp)^2, data = mtcars)

给予:

Call:
lm(formula = mpg ~ (cyl + disp + hp)^2, data = mtcars)

Coefficients:
(Intercept)          cyl         disp           hp     cyl:disp       cyl:hp      disp:hp  
  5.601e+01   -4.427e+00   -1.184e-01   -1.142e-01    1.439e-02    1.556e-02   -8.567e-05

【讨论】:

  • 更简单:lm(a ~ .^2)
  • @tobiasegli_te 如果有您希望a回归的列,则不会。
  • @tobiasegli_te 评论本身应该是一个答案。这是因为一旦有人弄清楚 avid_user 答案,下一个问题就是如何为所有变量执行此操作。删除我们不需要回归的变量很容易。这根本不是什么大问题
  • lm(a ~ .^2) 有效,但有点危险,因为它将除 y 之外的所有变量添加到 RHS。我不鼓励在学生的工作中使用这种魔法。以这种方式很容易得到杂散的预测器。检查你的模型!
猜你喜欢
  • 2020-02-14
  • 1970-01-01
  • 2014-09-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-10
  • 1970-01-01
相关资源
最近更新 更多