【发布时间】:2021-07-17 16:26:50
【问题描述】:
是否有一种简单的方法可以在 R 中的模型中包含所有可能的双向交互?
鉴于此模型:
lm(a~b+c+d)
如果 bc 是主效应 b 和 c 的交互项,将使用什么语法使模型包括 b、c、d、bc、bd 和 cd 作为解释变量。
【问题讨论】:
-
请注意,当存在您不希望响应变量回归的列时,重复的问题并未解决如何编写双向交互。我的回答解决了这种情况。
标签: r
是否有一种简单的方法可以在 R 中的模型中包含所有可能的双向交互?
鉴于此模型:
lm(a~b+c+d)
如果 bc 是主效应 b 和 c 的交互项,将使用什么语法使模型包括 b、c、d、bc、bd 和 cd 作为解释变量。
【问题讨论】:
标签: r
你可以这样写:
lm(a ~ (b + c + d)^2)
这会创建b、c 和 d 之间双向交互的所有组合
例如:
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)
a回归的列,则不会。
lm(a ~ .^2) 有效,但有点危险,因为它将除 y 之外的所有变量添加到 RHS。我不鼓励在学生的工作中使用这种魔法。以这种方式很容易得到杂散的预测器。检查你的模型!