gal*_*fia 5 interaction r linear-regression
我遇到了一些令人困惑的话题,涉及带有解释变量的多元回归语法及其相互作用。DataCamp 的解释让我想到:
lm(formula = y ~ r + r:s , data)
...是相同的:
lm(formula = y ~ r + s + r:s , data)
这是不正确的。我发现后者实际上与缩短版本相同:
lm(formula = y ~ r * s , data)
但前者肯定不同。
它们之间到底有什么区别——也就是说,第一个模型显示了什么而后两个模型则没有显示什么?
谢谢。
Sha*_*and 10
这是一个微妙的差异,但确实存在差异。可以轻松可视化差异的一种方法是使用命令summary。我将使用该iris数据集,因为它已经在 R 中。首先,一个简单的线性回归:
# Simple regression:
summary(lm(formula = Sepal.Width ~ Sepal.Length,
data = iris))
Run Code Online (Sandbox Code Playgroud)
这将仅显示因变量 Sepal.Width 上的一个自变量 Sepal.Length:
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 3.41895 0.25356 13.48 <2e-16 ***
Sepal.Length -0.06188 0.04297 -1.44 0.152
Run Code Online (Sandbox Code Playgroud)
对于仅包含输入的下一个方程*:
# Interaction and main effects:
summary(lm(formula = Sepal.Width ~ Sepal.Length*Petal.Length,
data = iris))
Run Code Online (Sandbox Code Playgroud)
它为我们提供了每个自变量/预测变量的主要影响,同时也为我们提供了两者之间的相互作用。您现在可以看到它们全部列在系数下:
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1.51011 0.64336 2.347 0.020257 *
Sepal.Length 0.46940 0.12954 3.624 0.000400 ***
Petal.Length -0.42907 0.11832 -3.626 0.000397 ***
Sepal.Length:Petal.Length 0.01795 0.02186 0.821 0.413063
Run Code Online (Sandbox Code Playgroud)
对于:输入,它只为我们提供交互,没有其他任何内容:
# Only interaction:
summary(lm(formula = Sepal.Width ~ Sepal.Length:Petal.Length,
data = iris))
Run Code Online (Sandbox Code Playgroud)
您可以在下面看到:
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 3.31473 0.06852 48.375 < 2e-16 ***
Sepal.Length:Petal.Length -0.01108 0.00257 -4.312 2.93e-05 ***
Run Code Online (Sandbox Code Playgroud)
最后,如果您要输入交互并手动添加主效果,您只需:再次使用输入,然后使用+添加主效果:
# Only interaction and one main effect:
summary(lm(formula = Sepal.Width ~ Sepal.Length + Sepal.Length:Petal.Length,
data = iris))
Run Code Online (Sandbox Code Playgroud)
如下所示:
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.299034 0.422673 -0.707 0.48
Sepal.Length 0.807410 0.093603 8.626 9.44e-15 ***
Sepal.Length:Petal.Length -0.058626 0.005899 -9.939 < 2e-16 ***
Run Code Online (Sandbox Code Playgroud)
+请注意,当我对 using和now执行相同的调用时*,它仍然只给出交互和主要效果,而没有指定。
summary(lm(formula = Sepal.Width ~ Sepal.Length + Sepal.Length*Petal.Length,
data = iris))
Run Code Online (Sandbox Code Playgroud)
从某种意义上说,它实际上忽略了加号:
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1.51011 0.64336 2.347 0.020257 *
Sepal.Length 0.46940 0.12954 3.624 0.000400 ***
Petal.Length -0.42907 0.11832 -3.626 0.000397 ***
Sepal.Length:Petal.Length 0.01795 0.02186 0.821 0.413063
Run Code Online (Sandbox Code Playgroud)