向模型添加更多项的固有风险是自变量的共线性。如前所述,线性回归假设自变量是相互独立的。
正如你所描述的,一个使用wt
和cyl
看起来像这样的模型
library(rms)
library(broom)
fit0 <- lm(mpg ~ wt + cyl, data = mtcars)
tidy(fit0)
term estimate std.error statistic p.value
1 (Intercept) 39.686261 1.7149840 23.140893 3.043182e-20
2 wt -3.190972 0.7569065 -4.215808 2.220200e-04
3 cyl -1.507795 0.4146883 -3.635972 1.064282e-03
以及添加的模型am
fit1 <- lm(mpg ~ wt + cyl + am, data = mtcars)
tidy(fit1)
term estimate std.error statistic p.value
1 (Intercept) 39.4179334 2.6414573 14.9227979 7.424998e-15
2 wt -3.1251422 0.9108827 -3.4308942 1.885894e-03
3 cyl -1.5102457 0.4222792 -3.5764148 1.291605e-03
4 am 0.1764932 1.3044515 0.1353007 8.933421e-01
比较,cyl
变量的系数从-1.507变为-1.510;变化不大。标准误从 0.414 变为 0.422;变化不大。虽然 p 值确实变大了,但并不是很多。
您展示的实际改变了一些东西的模型还包括hp
. 让我们看看这个模型:
fit2 <- lm(mpg ~ wt + cyl + am + hp, data = mtcars)
tidy(fit2)
term estimate std.error statistic p.value
1 (Intercept) 36.14653575 3.10478079 11.642218 4.944804e-12
2 wt -2.60648071 0.91983749 -2.833632 8.603218e-03
3 cyl -0.74515702 0.58278741 -1.278609 2.119166e-01
4 am 1.47804771 1.44114927 1.025603 3.141799e-01
5 hp -0.02495106 0.01364614 -1.828433 7.855337e-02
在这种情况下,cyl
系数的幅度变小了,标准误从 0.422 增加到了 0.582。比较一下,标准误am
只有当从1.304到1.441;相比之下,标准误差wt
仅从 0.910 变为 0.919(请原谅我的舍入不佳)。您应该注意到 的 p 值wt
没有太大变化,但是当您包含 时cyl
和的 p 值am
要大得多hp
。
这表明一些自变量之间存在某种形式或相关性。换句话说,自变量并不是真正独立的。结果是相关变量的标准误被夸大了。由于t = estimate / std.error
,较大的标准误差会导致较小的 t 值,从而导致较大的 p 值。
在构建模型时,您应该记住模型假定预测变量之间是独立的。看待这一点的一种好方法是使用方差膨胀因子。对于我们的模型,我们得到以下
vif(fit0)
wt cyl
2.579312 2.579312
vif(fit1)
wt cyl am
3.609011 2.584066 1.924955
vif(fit2)
wt cyl am hp
3.988305 5.333685 2.546159 4.310029
您会注意到,当我们添加 时,变量hp
的 VIF 加倍。cyl
事实证明,发动机中有更多气缸会增加马力。包括这两个变量违反了独立性假设。
如果我们试图用这些变量建立一个模型,我们最好比较模型 wherempg ~ wt + am + cyl
和mpg ~ wt + am + hp
。事实证明,具有 的模型hp
具有稍好的 R 平方值(和更低的 AIC),并且可能是更好的模型。这很难看出,因为当您按顺序构建模型时,cyl
似乎更可取的是作为要添加的第二个变量。但如果包含hp
, 和 的组合比hp
和的am
组合具有更好的cyl
属性am
。stepAIC
这就是为什么像随机森林这样的自动化方法如此受欢迎的原因;他们可以很快地探索很多这些细微差别。
另一个注意事项:cyl
用作数字变量可能不适合实际模型。 cyl
只取 4、6 和 8 这三个值。3、5 和 7 缸发动机非常少见,因此cyl
最好将其视为一个因素。有时这可能会对您的模型拟合产生影响(尽管在这种特殊情况下影响不大)