在 r 中进行大量 2 样本比例测试

Posted

技术标签:

【中文标题】在 r 中进行大量 2 样本比例测试【英文标题】:Doing large number of 2-sample proportion tests in r 【发布时间】:2016-06-30 02:44:12 【问题描述】:

我正在尝试为比例测试创建一个模拟,以查看我多久会获得显着结果(即 p/值

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 here 进行 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%,这就是测试能力..

【问题讨论】:

试试sapply(1:100, function(i) prop.test(c(rbinom(1, 5000, 0.05), rbinom(1, 1000, 0.04)), c(5000, 1000))$p.value)。你有 500 或 5000 和 1000 或 10000? 谢谢!!抱歉,只是输入了示例数字,并且必须在一些地方丢掉了 0。不过效果很好 - 谢谢 【参考方案1】:

如果我让你正确,你想要每个道具的每个 p.value。测试。 你试过这个吗? prop.test(test,ctrl)[[4]]

【讨论】:

以上是关于在 r 中进行大量 2 样本比例测试的主要内容,如果未能解决你的问题,请参考以下文章

R语言使用caret包中的createDataPartition函数进行机器学习数据集划分划分训练集和测试集并指定训练测试比例

Python计算训练数据集(测试集)中某个分类变量阴性(阳性)标签样本的不同水平(level)或者分类值的统计个数以及比例

12.03

机器学习评估方法及性能度量

R语言使用pwr包的pwr.2p.test函数(两个分组样本相同)对两个比例对比分析进行效用分析(power analysis)在已知效应量显著性水平效用值的情况下计算需要的样本量

R语言使用pwr包的pwr.2p.test函数(两个分组样本相同)对两个比例对比分析进行效用分析(power analysis)在已知效应量显著性水平效用值的情况下计算需要的样本量