r - A/B Fisher 检验显着性的样本大小

标签 r statistics ab-testing

鉴于简单 A/B 测试的结果......

        A   B
clicked 8   60
ignored 192 1940

(即 A 4% 和 B 3% 的 session 率)

... R 中的 Fisher 测试非常正确地表明没有显着差异
> fisher.test(data.frame(A=c(8,192), B=c(60,1940)))
...
p-value = 0.3933
...

但是 R 中有什么函数可以告诉我我需要增加多少样本量才能达到 0.05 的 p 值?

我可以增加 A 值(按它们的比例)直到我达到它,但必须有更好的方法吗?也许 pwr.2p2n.test [1] 不知何故可用?

[1] http://rss.acs.unt.edu/Rdoc/library/pwr/html/pwr.2p2n.test.html

最佳答案

power.prop.test()应该为你做这件事。为了让数学发挥作用,我通过总结您的列将您的“忽略”数据转换为展示次数。

> power.prop.test(p1=8/200, p2=60/2000, power=0.8, sig.level=0.05)

     Two-sample comparison of proportions power calculation 

              n = 5300.739
             p1 = 0.04
             p2 = 0.03
      sig.level = 0.05
          power = 0.8
    alternative = two.sided

NOTE: n is number in *each* group

这给出了每个组的 5301,因此您的样本大小需要为 10600。减去已经运行的 2200,您需要进行 8400 个“测试”。

在这种情况下:
  • sig.level与您的 p 值相同。
  • power是找到样本中存在的重要结果的可能性。这有点武断,80% 是常见的选择。请注意,选择 80% 意味着有 20% 的时间您不会在应该时发现意义。提高功效意味着您需要更大的样本量才能达到所需的显着性水平。

  • 如果您想确定达到显着性需要多长时间,请将 8400 除以每天的展示次数。这可以帮助确定是否值得继续测试。

    您还可以使用此功能在测试开始之前确定所需的样本量。在 37 Signals blog 上有一篇很好的文章描述了这一点。 .

    这是一个 native R 函数,因此您无需添加或加载任何包。除此之外,我不能说这与 pwr.p2pn.test() 有多相似。 .

    关于r - A/B Fisher 检验显着性的样本大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10868229/

    相关文章:

    r - 在小标题中查看超过10行时遇到问题

    python - 一次性计算发电机的统计数据。 Python

    firebase - 应用了 AB 测试配置,但 Firebase 控制台显示 0 个用户

    magento - 如何拆分 (A/B) 测试 Magento 产品页面

    r - 将 system() 输出流式传输到 Shiny 前端(连续)

    r - 通过在 R 中对数据帧进行子集化来缩小对象内存

    R ifelse 替换列中的值

    python - 给定 scipy.stats.binned_statistic 函数......如何使用不同大小的垃圾箱?

    python - Pandas 的百分位排名

    php - Google Analytics内容实验测试结帐过程中绕过阶段的效果