免责声明:我在Cross Validated中打开了类似的主题,但它没有得到任何答案。我决定在这里提出一个更简单的问题:
如何在实验前一起使用power.prop.test
和prop.test
来确定足够的样本量,然后确定结论是否具有统计学意义?
实际上,非常感谢任何关于这两个函数(以及相关函数)的所有知识。
背景:我正在尝试为简单的A / B测试开发测试方法,范围从实验设置到分析。
答案 0 :(得分:2)
根据您对人口比例的猜测,您可以编写一个绘制功率曲线的函数来确定样本大小(每组)以达到所需的功率水平。
以下是我粗暴的尝试。此功能为您提供包含样本大小和相应功率级别的数据框,以及可选的图。它需要以下参数:
## n = vector of sample sizes;
## desired_power = the power level you want to achieve (typically 0.8);
## p1 = population proportion of group 1;
## p2 = population proportion of group 2;
## plot = whether you want a power curve or not (by default yes).
DrawPowerCurve <- function(n, desired_power, p1, p2, plot=TRUE){
powers <- sapply(n, function(x) power.prop.test(x, p1=p1, p2=p2)$power)
n_power <- min(n[powers>desired_power])
print(data.frame(n, powers))
if(plot){
plot(n, powers, type="l")
segments(y0=desired_power, x0=0, x1=n_power, col="red")
segments(y0=0, y1=desired_power, x0=n_power, col="red")
text(paste("n =", n_power, " \nper group"), x=n_power, y=desired_power/2, pos=4)
title(paste("Sample Size (n) per Group to Achieve Power of", desired_power))
}
}
假设您希望确定每组的样本量,以达到所需的0.8的功效,给定的人口比例为0.5和0.6。然后情节显示每组需要390名参与者。
n <- seq(10, 1000, 5)
DrawPowerCurve(n, desired_power=0.8, p1=0.5, p2=0.6, plot=TRUE)