让我们谈谈敏感性(我们将用表示),特异性是相似的。以下是一种常客方法;如果这里的一位贝叶斯主义者可以添加另一个答案来讨论另一种解决方法,那就太好了。p
假设你招募了癌症患者。您将您的生物标志物测试应用于每个,因此您将获得一系列 0 和 1,我们将其称为。的条目将具有成功概率的伯努利分布。的估计是。希望的置信区间来判断您的估计精度。 nx
x
ppp^=∑x/np^p
你的问题是说你想知道应该有多大。要回答这个问题,您需要查阅生物标志物文献以确定“大”有多大,以及由于采样错误您可以容忍的灵敏度有多低。假设如果一个生物标志物的灵敏度大于(实际上并不是那么好),您就认为它是“好”的,并且您希望足够大,因此有 90% 的机会检测到 . 假设您想将显着性水平控制在。 np=0.5np=0.57α=0.05
至少有两种方法——分析和模拟。中的pwr
包R
已经存在以帮助进行此设计 - 您需要先安装它。接下来你需要一个效果大小,然后你想要的功能是pwr.p.test
.
library(pwr)
h1 <- ES.h(0.57, 0.5)
pwr.p.test(h = h1, n = NULL, sig.level = 0.05, power = 0.9, alt = "greater")
proportion power calculation for binomial distribution (arc...
h = 0.1404614
n = 434.0651
sig.level = 0.05
power = 0.9
alternative = greater
因此,当您的显着性水平为时,您需要大约名癌症患者才能检测到的灵敏度,功效 为。我也尝试过模拟方法,它给出了类似的答案。当然,如果真正的灵敏度高于(您的生物标志物更好),那么您需要更少的人来检测它。4350.570.900.050.57
获得数据后,运行测试的方法是(为了论证,我将模拟数据)。
n <- 435
sens <- 0.57
x <- rbinom(n, size = 1, prob = sens)
binom.test(sum(x), n, p = 0.5, alt = "greater")
Exact binomial test
data: sum(x) and n
number of successes = 247, number of trials = 435,
p-value = 0.002681
alternative hypothesis: true probability of success is greater than 0.5
95 percent confidence interval:
0.527342 1.000000
sample estimates:
probability of success
0.5678161
敏感性估计为。真正重要的是的置信区间,在这种情况下为。0.568p[0.527,1]
编辑:如果您更喜欢模拟方法,那么您可以这样做:设置
n <- 435
sens <- 0.57
nSim <- 1000
让我们runTest
成为
runTest <- function(){
x <- rbinom(1, size = n, prob = sens)
tmp <- binom.test(x, n, p = 0.5, alt = "greater")
tmp$p.value < 0.05
}
所以功率的估计是
mean(replicate(nSim, runTest()))
[1] 0.887