我正在尝试为比例测试创建一个模拟,看看我多久会得到一个显着的结果(即 p/value < 0.05)。我假设人口规模不相等,例如
test <- rbinom(100, 5000, 0.05)
ctrl <- rbinom(100, 10000, 0.04)
在这里,我有 100 个模拟测试,测试群体中有 5000 个,对照组中有 10000 个,转换率存在实际差异(测试为 0.05,控制为 0.04)。
我现在想为这些模拟测试中的每一个运行一个比例测试并获得 p 值。所以对于第一个测试,我会做:
prop.test(c(test[1], ctrl[2]), c(5000, 10000))$p.value
然后我用 for 循环遍历它以获得每个模拟测试的 p 值。
我希望以更紧凑的方式做到这一点。我在这里找到了一种使用 Map 进行 1 样本比例测试的方法,但我不知道如何进行 2 样本测试。看起来我应该能够在一行中完成它,并且只需得到一个 p 值向量作为输出。
我尝试了以下
Map(prop.test, c(test,ctrl), c(5000, 10000), alternative="two.sided", correct = F)
但它给了我 200 个 1 样本比例测试,而不是 100 个 2 样本比例测试......我能做些什么来解决它?
理想情况下,我会得到一个长度为 100 且带有 p.values 的向量,这样我就可以检查哪个部分低于 5%,这就是测试能力。