交互多元回归

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)