相关性的准确中心置信区间

机器算法验证 r 相关性 置信区间
2022-04-13 13:35:42

我正在努力完成(TJ Diccio & B. Efron,“Bootstrap Confidence Intervals”,Statistical Science,1996, 11 (3), 189–228),甚至在我找到好东西之前我就被困住了。

在介绍中,有一个治疗前后值的表,称为cd4,相关性给出为 0.723。然后论文指出,“如果我们愿意假设双变量正θ^θ

在这里,我规定我是一个统计白痴。当我在 R 中键入数据并使用 Fisher 变换或T分布手动计算置信区间时,我没有得到该区间。如何计算他们正在谈论的间隔?

> cd4
   subj base oneyr
1     1 2.12  2.47
2     2 4.35  4.61
3     3 3.39  5.26
4     4 2.51  3.02
5     5 4.04  6.36
6     6 5.10  5.93
7     7 3.77  3.93
8     8 3.35  4.09
9     9 4.10  4.88
10   10 3.35  3.81
11   11 4.15  4.74
12   12 3.56  3.29
13   13 3.39  5.55
14   14 1.88  2.82
15   15 2.56  4.23
16   16 2.96  3.23
17   17 2.49  2.56
18   18 3.03  4.31
19   19 2.66  4.37
20   20 3.00  2.40
> r = cor(cd4$base, cd4$oneyr)
> r
[1] 0.7231654

费雪变换:

> se = 1/sqrt(17)
> se
[1] 0.2425356
> tanh(c(r-1.6448*se, r+1.6448*se))
[1] 0.3133382 0.8082940

T分布:

> sr = sqrt((1-r^2)/(20-2))
> sr
[1] 0.1627936
> tc = abs(qt(0.05/2, 18))
> c(r-tc*sr, r+tc*sr)
[1] 0.3811486 1.0651821
2个回答

您可以通过以下方式获得相同的值:

cor.test(cd4$baseline, cd4$oneyear, method = "pearson", conf.level = 0.9)

用于获得此类间隔的方法在以下内容中进行了说明:

http://stat.ethz.ch/R-manual/R-patched/library/stats/html/cor.test.html

如果方法是“pearson”,则检验统计量基于 Pearson 的乘积矩相关系数 cor(x, y),并且如果样本遵循独立的正态分布,则遵循具有长度 (x)-2 自由度的分布。如果至少有 4 对完整的观测值,则基于 Fisher 的 Z 变换给出渐近置信区间。

因此,如果您愿意,可以按照这些说明实现自己的代码以获取 CI。也可以看看:

http://en.wikipedia.org/wiki/Pearson_product-moment_correlation_coefficient#Testing_using_Student.27s_t-distribution

您已经提到您的代码中的 Fisher 转换不正确。您首先必须将 r 转换为 az 值(atanh 部分),然后使用适当的乘数加减标准误差以获得正确的置信度(正如您所做的正确)。最后,您必须将整个事物转换回 r-metric(tanh 部分)。

se <- 1/sqrt(17)
r <- 0.7231654
tanh(atanh(r)+c(1,-1)*qnorm(.95)*se)

这导致

[1] 0.8650790 0.4740748

正如评论中提到的,这不是确切的时间间隔!要找到确切的时间间隔,请查看 Shieh 的这项工作:http: //link.springer.com/10.1007/s11336-04-1221-6