二项分布的置信区间:使用“qbinom”和“binom.test”的不同结果
Confidence interval from binomial distribution: different results using `qbinom` and `binom.test`
我希望使用 qbinom
和 binom.test
计算比例 CI 的结果相同,但它们实际上略有不同:
success <- 360
n <- 1226
lci <- qbinom(0.025, n, success/n)/n
uci <- qbinom(0.975, n, success/n)/n
c(lci, uci)
[1] 0.2683524 0.3189233
binom.test(success, n, success/n)$conf.int
[1] 0.2682571 0.3200123
我在这里错过了什么?
binom.test
函数的源代码使用 qbeta
而不是 qbinom
,因为这是 exact binomial confidence intervals 的公认公式。其中x
为成功次数,binom.test
给出的lci和uci为:
p.L <- function(x, alpha) {
if (x == 0)
0
else qbeta(alpha, x, n - x + 1)
}
p.U <- function(x, alpha) {
if (x == n)
1
else qbeta(1 - alpha, x + 1, n - x)
}
alpha <- (1 - 0.95)/2
lci <- p.L(x, alpha)
uci <- p.U(x, alpha)
我希望使用 qbinom
和 binom.test
计算比例 CI 的结果相同,但它们实际上略有不同:
success <- 360
n <- 1226
lci <- qbinom(0.025, n, success/n)/n
uci <- qbinom(0.975, n, success/n)/n
c(lci, uci)
[1] 0.2683524 0.3189233
binom.test(success, n, success/n)$conf.int
[1] 0.2682571 0.3200123
我在这里错过了什么?
binom.test
函数的源代码使用 qbeta
而不是 qbinom
,因为这是 exact binomial confidence intervals 的公认公式。其中x
为成功次数,binom.test
给出的lci和uci为:
p.L <- function(x, alpha) {
if (x == 0)
0
else qbeta(alpha, x, n - x + 1)
}
p.U <- function(x, alpha) {
if (x == n)
1
else qbeta(1 - alpha, x + 1, n - x)
}
alpha <- (1 - 0.95)/2
lci <- p.L(x, alpha)
uci <- p.U(x, alpha)