如何计算 Spearman 等级相关性的置信区间?

机器算法验证 相关性 置信区间 斯皮尔曼罗
2022-02-06 06:19:03

维基百科有一个将 Spearman 等级相关性转换为近似 z 分数的 Fisher 变换。也许这个 z 分数是与零假设的差异(等级相关性 0)?

此页面具有以下示例:

4, 10, 3, 1, 9, 2, 6, 7, 8, 5
5, 8, 6, 2, 10, 3, 9, 4, 7, 1
rank correlation 0.684848
"95% CI for rho (Fisher's z transformed)= 0.097085 to 0.918443"

他们如何使用 Fisher 变换来获得 95% 的置信区间?

2个回答

简而言之,95% 的置信区间由 其中是相关性的估计值,是样本量。

tanh(arctanhr±1.96/n3),
rn

说明:Fisher 变换是 arctanh。在变换尺度上,估计值的抽样分布近似正态分布,因此通过取变换后估计值并加上和减去其标准误差的 1.96 倍,可以找到 95% 的置信区间。标准误差是(大约)1/n3

编辑:上面的 Python 示例:

import math
r = 0.684848
num = 10
stderr = 1.0 / math.sqrt(num - 3)
delta = 1.96 * stderr
lower = math.tanh(math.atanh(r) - delta)
upper = math.tanh(math.atanh(r) + delta)
print "lower %.6f upper %.6f" % (lower, upper)

lower 0.097071 upper 0.918445

这与您的示例一致,保留小数点后 4 位。

也许对@chl 的评论有一些额外的评论

Spearman 相关性可以看作是等级的 Pearson 相关性。秩显然不服从正态分布,其结果是 Fisher 变换的方差 (ζ) 不能很好地近似为(n3)1特别是在大的绝对值ρs观察次数少。文献中已经提出了各种基于经验的方差调整。它们在 Bonnett 和 Wright (2000) 中进行了比较,包括在Wikipedia中也提到的具有 1.06 因子的那个。Bonnett 和 Wright (2000) 最后推荐了以下方差估计器

σζ2=1+rs2/2n3

在哪里rs2是样本 Spearman 相关性和n是观察次数。这导致以下情况(1α)-CI

tanh(arctanh(rs)±1+rs2/2n3zα2).

在哪里zα2是个α2-标准正态分布的分位数。在 R 中,此函数将计算 CI

spearman_CI <- function(x, y, alpha = 0.05){
  rs <- cor(x, y, method = "spearman", use = "complete.obs")
  n <- sum(complete.cases(x, y))
  sort(tanh(atanh(rs) + c(-1,1)*sqrt((1+rs^2/2)/(n-3))*qnorm(p = alpha/2)))
}

Ruscio (2008) 进一步建议替换正态分位数zα2由一个t-分位数n2自由度以获得更好的覆盖率。

不过,CI 是近似值。尤其是在以下情况下

  • ρs>0.95(在哪里ρs是真实的总体斯皮尔曼相关性)
  • n<25
  • 序数数据

bootstrap CI 具有明显更好的特性(Ruscio 2008,Bishara 和 Hittner 2017)。

来源

  • Bishara、Anthony J. 和 James B. Hittner。“数据不正常时相关性的置信区间。” 行为研究方法 49,没有。1(2017 年 2 月 1 日):294–309。https://doi.org/10.3758/s13428-016-0702-8
  • Bonett、Douglas G. 和 Thomas A. Wright。“估计 Pearson、Kendall 和 Spearman 相关性的样本量要求。” Psychometrika 65,没有。1(2000 年 3 月 1 日):23-28。https://doi.org/10.1007/BF02294183
  • 鲁西奥,约翰。“构建 Spearman 秩相关与序数数据的置信区间:比较分析法和 Bootstrap 方法的模拟研究。” 现代应用统计方法杂志 7,没有。2(2008 年 11 月 1 日)。https://doi.org/10.22237/jmasm/1225512360