Pearson 相关系数标准误的推导

机器算法验证 相关性 标准错误 皮尔逊-r
2022-04-06 19:47:32

我想知道如何推导出 Pearson 相关系数的标准误差公式,例如 Zar 中给出的公式为

SEr=1r2n2

我试图通过估计 r 的方差来得到它

r=Cov(x,y)SD(x)SD(y)

V(X)=E(X2)E(X)2所以我们得到Var(r)=E(Cov(x,y)2Var(x)Var(y))r2. 但从这里开始我不知道如何继续E(Cov(x,y)2Var(x)Var(y))必须是1(n3)r2n2最终到达

Var(r)=1r2n2

有什么建议或参考可以让我查找吗?

2个回答

在寻找同一个问题的答案很长时间后,我发现了几个有趣的链接 https://www.jstor.org/stable/2277400?seq=1#page_scan_tab_contents

我们只能看到第一页,但这就是推导所在。“Sheppard 博士的标准偏差”由称为矩的渐近分布的东西给出,你可以在这里看到一点

https://books.google.com/books?id=Uc9C90KKW_UC&pg=PA126&lpg=PA126&dq=Mst+pearson+Sheppard&source=bl&ots=Kvw0xTLzps&sig=pyHVB_ybjsnb_0QOBDHST6SRi-M&hl=en&sa=X&ved=0ahUKEwimjvjQ8NnSAhWEppQKHRqbC1sQ6AEIIjAD#v=onepage&q=Mst%20pearson%20Sheppard&f=错误的

根中“n-2”而不是“n”的原因是您的公式假设具有 n-2 自由度的 t 分布,而链接中的那个假设是正态分布。

我没有答案,但对我来说,问题的公式有错误。

这是:

SEr=1r2n2
Var(r)=(1r2)2n2

我将尝试通过模拟来检查:

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=SD(x)SD(y)b
E(y|x)=a+bx

通过重做正确的计算,我实际上得到了相同的结果:

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 

这在某种程度上令人放心。所以我认为问题中的标准错误公式是不正确的,但也许我解释了错误来自哪里。