我有兴趣使用本文的结果(修改后的二项式比例的精确样本量,特别强调Geoffrey Fosgate 的诊断性休息参数估计)来计算样本量。在 R 的 binomSamSize 包中有一个用于计算样本大小的算法的实现。我检查了用于计算它的代码,它似乎完全符合论文,但论文结果部分中显示的结果似乎不可重现。样本量太小了。
该论文需要订阅才能完整查看,但这里有一个片段来显示如何计算样本量:
这是我正在使用的代码(从 binomSamSize 包中提取):
ciss.midp <- function(p0, d, alpha, nMax = 1e+06){
pi.L <- p0 - d
pi.U <- p0 + d
if (pi.L < 0)
stop("p0 - d is below zero!")
if (pi.U > 1)
stop("p0 + d is above one!")
n <- floor(max(1/p0, 1/(1 - p0)))
done <- FALSE
while (!done & (n < nMax)) {
n <- n + 1
x <- round(p0 * n)
lhs2 <- 1/2 * dbinom(x, size = n, prob = pi.L) + 1/2 *
dbinom(x, size = n, prob = pi.U) +
pbinom(x, size = n, prob = pi.L, lower.tail = FALSE) +
pbinom(x - 1, size = n, prob = pi.U)
if (!is.na(lhs2)) {
done <- (lhs2 < alpha)
}
}
return(n)
}
我最终要生成带圆圈的列是这样的:
> sapply(seq(0.5, 0.9, 0.05), function(i) ciss.midp(p0=i, d=0.1, alpha=0.1))
[1] 68 67 65 61 57 50 42 34 23
PS:如果我还能提供什么让这个问题更容易回答,请在评论中告诉我。

