我想知道如何推导出 Pearson 相关系数的标准误差公式,例如 Zar 中给出的公式为
我试图通过估计 r 的方差来得到它
和所以我们得到. 但从这里开始我不知道如何继续必须是最终到达
有什么建议或参考可以让我查找吗?
我想知道如何推导出 Pearson 相关系数的标准误差公式,例如 Zar 中给出的公式为
我试图通过估计 r 的方差来得到它
和所以我们得到. 但从这里开始我不知道如何继续必须是最终到达
有什么建议或参考可以让我查找吗?
在寻找同一个问题的答案很长时间后,我发现了几个有趣的链接 https://www.jstor.org/stable/2277400?seq=1#page_scan_tab_contents
我们只能看到第一页,但这就是推导所在。“Sheppard 博士的标准偏差”由称为矩的渐近分布的东西给出,你可以在这里看到一点
根中“n-2”而不是“n”的原因是您的公式假设具有 n-2 自由度的 t 分布,而链接中的那个假设是正态分布。
我没有答案,但对我来说,问题的公式有错误。
这是:
我将尝试通过模拟来检查:
library(MASS)
N = 100000
r = 0.8
n = 100
Sigma = matrix(c(1, r, r, 1), nrow=2)
r_obs = replicate(N, cor(mvrnorm(n, c(0,0), Sigma))[2,1])
> mean(r_obs)
[1] 0.7984783
> sd(r_obs)
[1] 0.03690896
因此,当 n=100 时 r=0.8 的标准误差约为 0.037。
如果我使用问题的公式,我会得到:
> sqrt((1-r^2)/(n-2))
[1] 0.06060915
并使用我给出的公式:
> (1-r^2)/sqrt((n-2))
[1] 0.03636549
第二个公式似乎比第一个更接近真实值。
编辑:
为了解释为什么有两种不同的标准误差公式正在传播,我发现这取决于你如何计算它。
在我的第一次模拟中,我使用 Pearson 公式来计算相关性,但也可以使用最小二乘回归系数。我可以确认后一种方法具有问题中提出的标准错误:
r_obs <- replicate(N, {
M<-mvrnorm(n, c(0,0), Sigma)
c(pearson=cor(M, method="pearson")[2,1],
regression=lm(M[,2]~M[,1])$coef[[2]])
})
> apply(r_obs, 1, mean)
pearson regression
0.7981580 0.7998433
> apply(r_obs, 1, sd)
pearson regression
0.03707184 0.06094964
这是两个不具有相同方差的相关性估计量。
编辑2:
试图调和这两个公式并没有奏效,因为我忘了对回归系数进行归一化。从回归系数计算相关性的公式是:
通过重做正确的计算,我实际上得到了相同的结果:
r_obs <- replicate(N, {
M<-mvrnorm(n, c(0,0), Sigma)
c(pearson=cor(M, method="pearson")[2,1],
regression=lm(M[,2]~M[,1])$coef[[2]]*sd(M[,1])/sd(M[,2]))
})
> apply(r_obs, 1, sd)
pearson regression
0.03676248 0.03676248
> apply(r_obs, 1, mean)
pearson regression
0.7992615 0.7992615
这在某种程度上令人放心。所以我认为问题中的标准错误公式是不正确的,但也许我解释了错误来自哪里。