我的问题来自与@whuber的讨论,涉及另一个问题的评论。
具体来说,@ whuber的评论如下:
您可能会感到惊讶的一个原因是,相关检验和回归斜率检验所基于的假设是不同的,因此,即使我们了解到相关性和斜率确实在衡量同一事物,为什么它们的p值也应该相同?这表明,与简单地确定和在数值上是否相等相比,这些问题要深得多。β
这引起了我的思考,我遇到了许多有趣的答案。例如,我发现了这个问题“ 相关系数的假设 ”,但是看不到如何澄清上面的评论。
我在简单的线性回归中找到了有关Pearson的和斜率的关系的更有趣的答案(例如,请参见此处和此处),但它们似乎都没有回答@whuber在他的评论中所指的内容(至少不明显)。对我来说)。β
问题1:相关性检验和回归斜率检验的假设是什么?
对于我的第二个问题,请考虑以下输出R
:
model <- lm(Employed ~ Population, data = longley)
summary(model)
Call:
lm(formula = Employed ~ Population, data = longley)
Residuals:
Min 1Q Median 3Q Max
-1.4362 -0.9740 0.2021 0.5531 1.9048
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 8.3807 4.4224 1.895 0.0789 .
Population 0.4849 0.0376 12.896 3.69e-09 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 1.013 on 14 degrees of freedom
Multiple R-squared: 0.9224, Adjusted R-squared: 0.9168
F-statistic: 166.3 on 1 and 14 DF, p-value: 3.693e-09
和cor.test()
函数的输出:
with(longley, cor.test(Population, Employed))
Pearson's product-moment correlation
data: Population and Employed
t = 12.8956, df = 14, p-value = 3.693e-09
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
0.8869236 0.9864676
sample estimates:
cor
0.9603906
从lm()
和的cov.test()
输出可以看出,皮尔逊相关系数和斜率估计值()相差很大,分别为0.96和0.485,但是t值和p值相同。β 1
然后,我还尝试查看是否能够计算和的t值,尽管和不同,它们是相同的。那就是我陷入困境的地方,至少对于:β 1 - [R β 1 - [R
使用和的平方总和,通过简单的线性回归计算斜率(): X ÿ
x <- longley$Population; y <- longley$Employed
xbar <- mean(x); ybar <- mean(y)
ss.x <- sum((x-xbar)^2)
ss.y <- sum((y-ybar)^2)
ss.xy <- sum((x-xbar)*(y-ybar))
计算回归斜率的最小二乘估计值(在Crawley的R Book第一版,第393页中有对此的证明):
b1 <- ss.xy/ss.x
b1
# [1] 0.4848781
计算的标准错误:
ss.residual <- sum((y-model$fitted)^2)
n <- length(x) # SAMPLE SIZE
k <- length(model$coef) # NUMBER OF MODEL PARAMETER (i.e. b0 and b1)
df.residual <- n-k
ms.residual <- ss.residual/df.residual # RESIDUAL MEAN SQUARE
se.b1 <- sqrt(ms.residual/ss.x)
se.b1
# [1] 0.03760029
以及的t值和p值:
t.b1 <- b1/se.b1
p.b1 <- 2*pt(-abs(t.b1), df=n-2)
t.b1
# [1] 12.89559
p.b1
# [1] 3.693245e-09
我现在不知道的是问题2,即如何使用而不是(也许是婴儿步骤)来计算相同的t值?β 1
我假设由于cor.test()
的替代假设是真实的相关性是否不等于0(请参见cor.test()
上面的输出),所以我期望像Pearson相关系数除以“ Pearson相关系数的标准误差”(类似于以上)?!但是那个标准错误是什么,为什么呢?b1/se.b1
也许这与相关测试和回归斜率测试所基于的上述假设有关?
编辑(2017年7月27日):虽然@whuber为问题1提供了非常详细的解释(部分为问题2,请参见他的回答下的评论),但我进行了进一步的挖掘,发现这两篇文章(此处和此处)确实可以显示一个特定的标准误差为,效果很好回答问题2,即重现T值给出:[R
r <- 0.9603906
# n <- 16
r.se <- sqrt((1-r^2)/(n-2))
r/r.se
# [1] 12.8956