二项式置信区间估计 - 为什么它不是对称的?

机器算法验证 置信区间 二项分布
2022-01-30 01:35:04

我使用以下 r 代码来估计二项式比例的置信区间,因为我知道在设计用于检测人群疾病的接收器操作特征曲线设计时,它可以替代“功率计算”。

n 是 150,我们相信这种疾病在人群中的流行率为 25%。我计算了 75% 灵敏度和 90% 特异性的值(因为人们似乎就是这样做的)。

    binom.test(c(29,9), p=0.75, alternative=c("t"), conf.level=0.95)

    binom.test(c(100, 12), p=0.90, alternative=c("t"), conf.level=0.95)

我也访问过这个网站:

http://statpages.org/confint.html

这是一个计算二项式置信区间的java页面,它给出了相同的答案。

无论如何,经过漫长的设置,我想问为什么置信区间不对称,例如灵敏度是

   95 percent confidence interval:
   0.5975876 0.8855583 

   sample estimate probability: 0.7631579 

抱歉,如果这是一个基本问题,但我所看到的任何地方似乎都表明它们将是对称的,而我的一位同事似乎也认为它们也是对称的。

4个回答

要了解它为什么不应该是对称的,请考虑并且您在 10 次试验中获得 9 次成功的情况。那么的 95% CI 为[0.554, 0.997]。上限显然不能大于 1,因此大部分不确定性必须落在的左侧。p=0.9p^=0.9pp^

它们被认为是对称的,因为经常使用正态近似。如果 p 位于 0.5 左右,这个就足够了。binom.test另一方面,报告“精确”的 Clopper-Pearson 区间,它基于 F 分布(有关两种方法的确切公式,请参见此处)。如果我们要在 R 中实现 Clopper-Pearson 区间,它将类似于(见):

Clopper.Pearson <- function(x, n, conf.level){
    alpha <- (1 - conf.level) / 2
    QF.l <- qf(1 - alpha, 2*n - 2*x + 2, 2*x)
    QF.u <- qf(1 - alpha, 2*x + 2, 2*n - 2*x)

    ll <- if (x == 0){
          0
    } else { x / ( x + (n-x+1)*QF.l ) }

    uu <- if (x == 0){
          0
    } else { (x+1)*QF.u / ( n - x + (x+1)*QF.u ) }

    return(c(ll, uu))
}

您在链接和实现中都看到上限和下限的公式完全不同。对称置信区间的唯一情况是 p=0.5。使用链接中的公式并考虑到在这种情况下很容易得出自己的结论。n=2×x

我个人更好地理解基于逻辑方法的置信区间。二项式数据通常使用 logit 链接函数建模,定义为:

logit(x)=log(x1x)

此链接函数将逻辑回归中的误差项“映射”到正态分布。因此,逻辑框架中的置信区间围绕 logit 值对称,就像在经典线性回归框架中一样。logit 变换正好用于允许使用围绕线性回归的整个基于正态性的理论。

进行逆变换后:

logit1(x)=ex1+ex

你再次得到一个不对称的间隔。现在这些置信区间实际上是有偏差的。它们的覆盖范围不是您所期望的,尤其是在二项分布的边界处。然而,作为说明,它们向您展示了为什么二项式分布具有不对称置信区间是合乎逻辑的。

R中的一个例子:

logit <- function(x){ log(x/(1-x)) }
inv.logit <- function(x){ exp(x)/(1+exp(x)) }
x <- c(0.2, 0.5, 0.8)
lx <- logit(x)
upper <- lx + 2
lower <- lx - 2

logxtab <- cbind(lx, upper, lower)
logxtab # the confidence intervals are symmetric by construction
xtab <- inv.logit(logxtab)
xtab # back transformation gives asymmetric confidence intervals

注意:事实上,R 使用 beta 分布,但这是完全等效的,并且计算效率更高。因此,R 中的实现与我在这里展示的不同,但它给出了完全相同的结果。

二项式分布有对称的置信区间:尽管已经提到了所有原因,但我们并没有强加不对称性。对称区间通常被认为是劣等的,因为

  1. 尽管它们在数值上是对称的,但它们在概率上不是对称的:也就是说,它们的单尾覆盖范围彼此不同。这——二项分布可能不对称的必然结果——是问题的症结所在。

  2. 正如@Rob Hyndman 指出的那样,一个端点通常必须是不切实际的(小于 0 或大于 1)。

话虽如此,我怀疑数值对称的 CI 可能具有一些好的特性,例如在某些情况下往往比概率对称的 CI 更短。

@Joris 提到了对称或“渐近”区间,这很可能是您所期望的。@Joris 还提到了“精确”的 Clopper-Pearson 间隔,并为您提供了一个看起来非常好的参考。您可能会遇到另一个比例置信区间(注意它也不是对称的),“Wilson”区间是一种基于反转分数测试的渐近区间。区间的端点求解(在中)方程 p

(p^p)/p(1p)=±zα/2

无论如何,您可以通过以下方式在 R 中获得所有三个:

library(Hmisc)
binconf(29, 38, method = "asymptotic")
binconf(29, 38, method = "exact")
binconf(29, 38, method = "wilson")

请注意,方法“wilson”与 prop.test 使用的置信区间相同,没有 Yates 的连续性校正:

prop.test(29, 38, correct = FALSE)

有关 Laura Thompson 的免费 SPLUS + R 手册,请参阅此处,该手册随附 Agresti 的分类数据分析,其中详细讨论了这些问题。