R mtcars 数据集 - 自动和手动传输模式下 MPG 的线性回归

机器算法验证 r 回归 假设检验 线性模型
2022-04-01 04:39:22

我正在查看 mtcars 数据集并探索 MPG 和传输模式(自动/手动)之间的关系。我决定将以下线性模型与以下 R 代码中指定的回归量一起使用:

> data(mtcars)
> fit <- lm(mpg ~ I(wt - mean(wt)) + I(qsec - mean(qsec)) + factor(am), data = mtcars)
> round(summary(fit)$coeff, 4)
                     Estimate Std. Error t value Pr(>|t|)
(Intercept)           18.8979     0.7194 26.2707   0.0000
I(wt - mean(wt))      -3.9165     0.7112 -5.5069   0.0000
I(qsec - mean(qsec))   1.2259     0.2887  4.2467   0.0002
factor(am)1            2.9358     1.4109  2.0808   0.0467

综上所述,斜率系数“factor(am)1”的 P 值低于 0.05,因此我们拒绝原假设并推断手动变速箱汽车的 MPG 值高于手动变速箱汽车。

但是,我也尝试探索没有截距项的等效线性模型,如下面的 R 代码:

> fit2 <- lm(mpg ~ I(wt - mean(wt)) + I(qsec - mean(qsec)) + factor(am)-1, data=mtcars)
> round(summary(fit2)$coeff, 4)
                     Estimate Std. Error t value Pr(>|t|)
I(wt - mean(wt))      -3.9165     0.7112 -5.5069    0e+00
I(qsec - mean(qsec))   1.2259     0.2887  4.2467    2e-04
factor(am)0           18.8979     0.7194 26.2707    0e+00
factor(am)1           21.8338     0.9438 23.1344    0e+00
> confint(fit2)
                          2.5 %    97.5 %
I(wt - mean(wt))     -5.3733342 -2.459673
I(qsec - mean(qsec))  0.6345732  1.817199
factor(am)0          17.4244109 20.371471
factor(am)1          19.9005360 23.767021

从构建的 95% 置信区间来看,具有平均 wt 和 qsec 的汽车(自动变速器)具有 MPG 区间 [17.4244, 20.3714],而具有平均 wt 和 qsec 的汽车(手动变速器)具有 MPG 区间 [19.9005。23.7670]。

两个置信区间重叠,我们未能拒绝零假设,即汽车(自动变速箱)的 MPG 性能和汽车(手动变速箱)的 MPG 性能在统计上没有差异。

我使用了两个等效的线性模型,它们给了我不同的结论。你能告诉我我在这里可能错过了什么吗?

2个回答

模型是等效的。这里的误解是,重叠的置信区间并不意味着您“未能拒绝零假设”。您不比较置信区间的上限/下限,就这样结束了。Thomas 的评论将1链接到了一个很好的一般解释,尽管它并不直接适用于回归设置2中发生的事情。

保罗已经链接到如何lm计算 t 统计量的解释,并且该测试是该系数对零的测试(例如β3=0β4=0)。但是你想测试β3β4=0.

执行此测试将获得与fit1- 有相当多的R包进行此类测试的等效结果 - 以下用途car

> library(car)
> linearHypothesis(fit2, "factor(am)0 = factor(am)1")
Linear hypothesis test

Hypothesis:
factor(am)0 - factor(am)1 = 0

Model 1: restricted model
Model 2: mpg ~ I(wt - mean(wt)) + I(qsec - mean(qsec)) + factor(am) - 
    1

  Res.Df    RSS Df Sum of Sq      F  Pr(>F)  
1     29 195.46                              
2     28 169.29  1    26.178 4.3298 0.04672 *
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

作为参考,这种类型的测试(以及更通用的版本)被称为绝对愚蠢的不同名称,具体取决于软件、书籍和领域。(一般线性假设、线性对比、最小二乘均值差、回归 Wald 检验等……),如果您想查找理论以及如何进行手动计算。


1 imgur mirror of contents
2这是因为估计的系数和它们的标准误差不是独立的,所以你在运行测试时必须考虑到这一点。如果我们只是运行一个直接的 t 检验(在这种情况下,这是理论简化的结果)而不考虑给定值会导致错误:

> delta = fit2$coefficients[4]-fit2$coefficients[3]
> deltstat = delta / sqrt(stderr[4]^2 + stderr[3]^2)
> delpval = 2*pt(deltstat, df=df.residual(fit2), lower.tail = FALSE)
> delpval
 0.01968865 

在这些线性模型中,原假设实际上是没有影响,即系数等于零。因此,在输出summary(lm())的结论是自动和手动变速器之间没有显着差异。这与您的第二个模型中置信区间重叠的观察结果一致。也可以看看

解释 R 的 lm() 输出