6

给定一个简单的 A / B 测试的结果......

        A   B
clicked 8   60
ignored 192 1940

(即 A 4% 和 B 3% 的会话率)

... 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

4

1 回答 1

8

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 除以每天的展示次数。这可以帮助确定是否值得继续测试。

You can also use this function to determine required sample size before testing begins. There's a nice write-up describing this on the 37 Signals blog.

This is a native R function, so you won't need to add or load any packages. Other than that I can't say how similar this is to pwr.p2pn.test().

于 2013-07-15T20:01:37.333 回答