如何在R中的线性模型中包含所有可能的双向交互项?

Bor*_*ris 8 r

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

鉴于此模型:

lm(a~b+c+d)
Run Code Online (Sandbox Code Playgroud)

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

avi*_*seR 12

您可以编写以下内容:

lm(a ~ (b + c + d)^2)
Run Code Online (Sandbox Code Playgroud)

这就形成了双向交互的所有组合之间b,cd

例如:

lm(mpg ~ (cyl+disp+hp)^2, data = mtcars)
Run Code Online (Sandbox Code Playgroud)

得到:

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
Run Code Online (Sandbox Code Playgroud)

  • 更简单:`lm(a~. ^ 2)` (8认同)
  • @tobiasegli_te如果有列_________'t_想要'a`倒退,请不要. (2认同)
  • `lm(a ~ .^2)` 可以工作,但有点危险,因为它将除 y 之外的所有变量添加到 RHS 中。我不鼓励学生的作品中出现这种魔法。这样很容易得到杂散的预测结果。检查你的型号! (2认同)