公式中具有不同阶数因子的lm的系数

时间:2013-02-11 12:23:03

标签: r regression

我正在尝试分析R中的一些线性模型结果,特别是我对lm对象摘要中为自变量报告的p值感兴趣(我知道有更复杂的比较方法)变量的相关性,但过去的一些比较使我确信,对于初步分析,这个p值会这样做。 我确信这些p值并不依赖于公式中指定变量的顺序(例如,当使用anova时这是不正确的)所以我对我得到的假数据的一些结果感到困惑:

> x<-rnorm(100)
> y <- 2*x
> xJ <- jitter(x)
> lm1 <- lm(y~x)
> lm2 <- lm(y~x+xJ)
> lm3 <- lm(y~xJ+x)
> summary(lm1)$coefficients
                 Estimate   Std. Error       t value  Pr(>|t|)
(Intercept) -2.220446e-17 4.064501e-17 -5.463023e-01 0.5860998
x            2.000000e+00 4.037817e-17  4.953172e+16 0.0000000
> summary(lm2)$coefficients
                Estimate   Std. Error      t value  Pr(>|t|)
(Intercept) 0.000000e+00 4.271540e-17 0.000000e+00 1.0000000
x           2.000000e+00 3.534137e-13 5.659091e+12 0.0000000
xJ          4.147502e-13 3.534140e-13 1.173553e+00 0.2434475
> summary(lm3)$coefficients
                 Estimate   Std. Error       t value      Pr(>|t|)
(Intercept) -1.594538e-18 5.512644e-21 -2.892511e+02 3.147977e-144
xJ          -3.531641e-16 4.560990e-17 -7.743146e+00  9.391428e-12
x            2.000000e+00 4.560986e-17  4.385017e+16  0.000000e+00

我的错误在哪里?

由于

1 个答案:

答案 0 :(得分:2)

考虑到这一点之后,我认为除了任何奇怪的浮点问题之外,系数不稳定的原因是mulitcollinearity,这是因为x和{xJ {1}}几乎完全相关。快速测试方差膨胀因素:

library(car)
vif(lm2)
        x        xJ 
103233533 103233533

大于5的VIF通常被认为是需要关注的东西,所以在这种情况下,系数移动一点并不奇怪。