下图是我如何看待置信区间。它是对“构建置信区间的基本逻辑”问题的答案中的图像的改编,这本身就是对“在二项式 CJ Clopper 和 ES Pearson 的情况下使用 Confidence 或 Fiducial Limits Illustrated Biometrika 第 26 卷,第 4 期(1934 年 12 月),第 404-413 页"
例如,假设。那么 5% 的时间你会使用三规则并且你的置信区间不会包含,并且 95% 的时间你会使用样本标准差来应用标准 CI 程序,并且这个置信区间将包含大约 95 % 的时间。p=3n+εpp
单边边界
根据维基百科推导的三规则的情况更接近右侧的图像,这是单边间隔。边界是您观察不到 5% 的时间零成功的情况。如果真正的值是,那么你会在不到 5% 的时间里犯这个错误。在其他情况下,观察 1、2 等。如果您考虑单边边界,您将始终做出正确的边界。(您认为在 95% 的情况下,您将使用另一个区间并在这些情况下犯 95% 的错误,这是不正确的)3/n3/n+ϵ
两侧边界
对于右侧的情况,0 次观察的置信区间不是。对于两侧的间隔,计算边界,这样你有 5% 的概率(最多)在两端一起结束。在尾部/边相等的情况下,计算边界使得,从中遵循3/n(1−p)n≤0.025p≈−log(1−p)=−log(0.025)/n≈3.7/n
在上面的示例中,您会看到效果很好。在二项分布的情况下,您还会看到这些边界存在问题。由于离散性,该方法不会为的每个值准确给出 95% 的概率。下面是作为参数值函数的区间覆盖概率图n=1003.7/np
为了完整起见,我们还绘制了 BruceET 在他的回答中提到的Jeffreys 的置信区间。它使概率均匀,并使接近和的置信区间更小。以参数的真实值为条件,Jeffreys 区间并不总是以至少 95% 的概率覆盖参数,但它也不是为此而设计的。p01
p_cover <- function(p, type = 1) {
n = 100
k = 0:n
if (type == 1) { ### Clopper Pearson
p_upper = qbeta(1-0.025,k+1,n-k)
p_lower = qbeta(0.025,k,n-k+1)
} else { ### Jeffreys'
p_upper = qbeta(1-0.025,k+0.5,n-k+0.5)
p_lower = qbeta(0.025,k+0.5,n-k+0.5)
}
ks <- which((p <= p_upper)*(p >= p_lower)==1)
sum(dbinom(ks-1,n,p))
}
p_cover <- Vectorize(p_cover)
ps <- seq(0,1,0.0001)
plot(ps,p_cover(ps), type = "l", ylim = c(0.9,1), xlab = "true value of p",
ylab = "cover probability",
main = "probability 95% Clopper Pearson confidence interval covers true value of p",
cex.main = 1)
lines(c(0,1),c(0.95)*c(1,1), col = 2)
plot(ps,p_cover(ps, type = 2), type = "l", ylim = c(0.9,1), xlab = "true value of p",
ylab = "cover probability",
main = "probability 95% Jeffreys' confidence interval covers true value of p",
cex.main = 1)
lines(c(0,1),c(0.95)*c(1,1), col = 2)