不,这至少并不意味着“模型是错误的”。它告诉您,当存在其他重要变量时,您应该警惕解释原始相关性。
这是我刚刚生成的一组数据(在 R 中)。y 和 x1 之间的样本相关性为负:
print(cor(cbind(y,x1,x2)),d=3)
y x1 x2
y 1.0000 -0.0772 -0.830
x1 -0.0772 1.0000 0.196
x2 -0.8299 0.1961 1.000
然而回归中的系数是正的:
summary(lm(y~x1+x2))
... [剪辑]
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 11.8231 2.6183 4.516 9.73e-05 ***
x1 0.1203 0.1412 0.852 0.401
x2 -5.8462 0.7201 -8.119 5.94e-09 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 4.466 on 29 degrees of freedom
Multiple R-squared: 0.6963, Adjusted R-squared: 0.6753
F-statistic: 33.24 on 2 and 29 DF, p-value: 3.132e-08
“模型”错了吗?不,我拟合了用于创建数据的相同模型,一个满足所有回归假设的模型,
y=9+0.2x1−5x2+e,其中,ei∼N(0,42)
或在 R 中:y= 9 + 0.2*x1 -5*x2 + rnorm(length(x2),0,4)
那么这是怎么发生的呢?
看两件事。首先,查看与的图:yx1

我们看到(在这种情况下非常轻微)负相关。
( )的特定值用红色标记:x2x2=4

...在给定值下,与的关系正在增加,而不是减少。的其他值也是如此。对于和之间的关系是正的。那么为什么相关性是负的呢?因为和是相关的。x2x1x2x2yx1x1x2
如果我们要查看相关性并使其与回归相对应,则偏相关性而不是原始相关性是相关量;这是偏相关表(使用 package ppcor):
print(pcor(cbind(y,x1,x2))$estimate,d=3)
y x1 x2
y 1.000 0.156 -0.833
x1 0.156 1.000 0.237
x2 -0.833 0.237 1.000
我们看到之间的偏相关y和x1 控制 x2是积极的。
人们必须提防的不是回归结果,而是查看原始相关性时产生的误导性印象。
顺便说一句,它也很有可能使相关系数和回归系数都与零和相反的符号显着不同......并且模型仍然没有任何问题。