如何计算 Spearman 等级相关性的置信区间?
机器算法验证
相关性
置信区间
斯皮尔曼罗
2022-02-06 06:19:03
2个回答
简而言之,95% 的置信区间由
其中是相关性的估计值,是样本量。
说明:Fisher 变换是 arctanh。在变换尺度上,估计值的抽样分布近似正态分布,因此通过取变换后估计值并加上和减去其标准误差的 1.96 倍,可以找到 95% 的置信区间。标准误差是(大约)。
编辑:上面的 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 变换的方差 () 不能很好地近似为特别是在大的绝对值观察次数少。文献中已经提出了各种基于经验的方差调整。它们在 Bonnett 和 Wright (2000) 中进行了比较,包括在Wikipedia中也提到的具有 1.06 因子的那个。Bonnett 和 Wright (2000) 最后推荐了以下方差估计器
在哪里是样本 Spearman 相关性和是观察次数。这导致以下情况-CI
在哪里是个-标准正态分布的分位数。在 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) 进一步建议替换正态分位数由一个-分位数自由度以获得更好的覆盖率。
不过,CI 是近似值。尤其是在以下情况下
- (在哪里是真实的总体斯皮尔曼相关性)
- 序数数据
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。
其它你可能感兴趣的问题