【问题标题】:Coefficients of lm with different orders of factors in the formula公式中不同阶数的lm的系数
【发布时间】:2013-02-11 12:23:02
【问题描述】:

我正在尝试分析 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

我的错误在哪里?

谢谢

【问题讨论】:

  • 浮点精度也可能是这里的一个问题。试试y &lt;- 2*x+3*xJ+rnrom(100),这样xJ实际上会影响y
  • @Arun:我不认为这就是这里发生的事情,这可能解释了 y ~ xy ~ x + xJ 之间的区别,但我不认为它涵盖了 @987654327 之间的区别@ 和 y ~ xJ + x。我认为这是浮点怪异和xy 完全相关的事实的结合。
  • 感谢大家的回答。在这种情况下,我相信 Marius 是对的(Roland 建议的测试支持这个想法)。这是我关于统计数据和类似事情的惯常循环:当我查看真实数据时,我会感到困惑,所以我决定研究一些小的假例子,我通常让它们过于简单/极端情况,所以我会更加困惑 :)

标签: r regression


【解决方案1】:

稍微想了想,我认为除了任何奇怪的浮点问题外,系数不稳定的原因是mulitcollinearity,这是因为xxJ几乎完全相关。快速测试方差膨胀因子:

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

VIF 大于 5 通常被认为是值得一看的东西,因此在这种情况下,系数稍微移动一点也就不足为奇了。

【讨论】:

  • 事实上,我试图调查在多重共线性问题的情况下会发生什么(即,我有两个相关变量可以很好地解释我的反应 -> 它们的 pvalue 和模型的 R 平方?实际上,我有很多变量,我无法先验地删除所有相关的变量……我开始怀疑使用 aov 或完全不同的方法是否会更合适- 更有效率:) )
  • 只是在这里报告一个更容易解释的结果(从我非常有限的角度来看......至少我设法解释了阅读Whuber答案开头的结果)是这个:x &lt;- rnorm(100, mean=10); x1 &lt;- jitter(x); y &lt;- 5*x + rnorm(100); lm1 &lt;- lm(y ~ x); lm2 &lt;- lm(y ~ x1); lm3 &lt;- lm(y ~ x + x1); lm4 &lt;- lm(y ~ x1 + x);
猜你喜欢
  • 1970-01-01
  • 2013-07-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-27
  • 2019-03-22
  • 1970-01-01
  • 2013-05-13
  • 1970-01-01
相关资源
最近更新 更多