在两个独立比例的功效分析中,如何制定停止规则?


18

我是从事A / B测试系统的软件开发人员。我没有扎实的统计背景,但过去几个月一直在学习知识。

典型的测试方案包括比较网站上的两个URL。访客访问LANDING_URL,然后随机转发给URL_CONTROLURL_EXPERIMENTAL。访客构成一个样本,并且当访客在该站点上执行某些所需的操作时,就会达到胜利的条件。这构成转化,转化率就是转化率(通常表示为百分比)。给定URL的典型转换率在0.01%到0.08%之间。我们运行测试以确定新URL与旧URL的比较。如果URL_EXPERIMENTAL被证明优于URL_CONTROL,我们替换URL_CONTROLURL_EXPERIMENTAL

我们使用简单的假设检验技术开发了一个系统。我在这里使用另一个CrossValidated问题的答案来开发此系统。

测试设置如下:

  • 转化率估计CRE_CONTROLURL_CONTROL使用历史数据来计算。
  • 所希望的目标转化率CRE_EXPERIMENTALURL_EXPERIMENTAL是集。
  • 通常使用0.95的显着性水平。
  • 通常使用0.8的幂。

所有这些值一起用于计算所需的样本量。我正在使用R函数power.prop.test来获取此样本大小。

测试将一直进行到收集所有样品为止。此时,计算CR_CONTROL和的置信区间 CR_EXPERIMENTAL。如果它们不重叠,则可以宣布具有0.95的显着性水平和0.8的功效的获胜者。

但是,我们测试的用户有两个主要问题:

1.如果在测试过程中的某个时刻收集了足够的样本以显示明显的获胜者,是否可以停止测试?

2.如果在测试结束时没有宣布优胜者,我们是否可以进行更长的测试以查看是否可以收集足够的样本来找到优胜者?

应该注意的是,存在许多允许他们的用户完全按照我们自己的用户期望做的商业工具。我读到上面有很多谬论,但是我也遇到了停止规则的想法,并想探索在我们自己的系统中使用这种规则的可能性。

我们要考虑以下两种方法:

1.使用power.prop.test,将当前测得的转换率与当前样本数进行比较,查看是否已收集到足够的样本来宣布获胜者。

示例:已设置测试以查看我们的系统中是否存在以下行为:

  • CRE_CONTROL:0.1
  • CRE_EXPERIMENTAL:0.1 * 1.3
  • 使用这些参数,样本量N为1774。

但是,随着测试的进行并达到325个样本,CRM_CONTROL(测得的对照转化率)为0.08,CRM_EXPERIMENTAL为0.15。power.prop.test是以这些转化率运行的,N得出的是325。确切地说CRM_EXPERIMENTAL,要成为赢家,需要的样本数量!在这一点上,我们希望测试能够结束。类似地,如果测试达到1774个样本但未找到获胜者,但随后达到2122个样本,这足以表明结果CRM_CONTROL0.1和CRM_EXPERIMENTAL0.128是可以宣布获胜者的结果。

在一个相关的问题中,用户建议这种测试的可信度较低,这是因为鼓励提早停止采样,减少样本数量,而且容易受到估计偏差的影响,并且I型和II型错误的数量增加。有什么方法可以使此停止规则起作用?这是我们的首选方法,因为这对我们意味着更少的编程时间。也许此停止规则可以通过提供某种数值分数或一些分数来衡量测试的可信度而起作用,如果测试应尽早停止呢?

2.使用顺序分析SPRT

这些测试方法是专门针对我们所处的情况而设计的:我们的用户如何开始测试并以不浪费过多测试时间的方式结束测试?运行测试时间过长,或者必须使用不同的参数重新开始测试。

在上述两种方法中,我更喜欢SPRT,因为数学对我来说更容易理解,并且看起来似乎更容易编程。但是,我不明白如何在这种情况下使用似然函数。如果有人可以构造一个示例,说明如何计算似然比,似然比的累积总和,并继续执行一个示例,说明当某人继续监视,何时接受零假设和替代假设时的情况,这将有助于我们确定SPRT是否是正确的方法。


2
我赞扬你不要诉诸伏都教。当您使用工具时,如果您不完全了解它的工作方式或工作方式,则您无权解释该工具的结果。当分析决定了一项业务决策,并且您将时间和金钱投入到结果中时,如果您花时间去理解数据源,它就会显示出所有权。正是这种辛勤工作为您提供了更多的机会,而不是被“束之高阁”。
EngrStudent-恢复莫妮卡

Answers:


7

这是一个有趣的问题,相关技术有很多应用。它们通常被称为“临时监视”策略或“顺序实验设计”(不幸的是,与您链接的Wikipedia文章很少见),但是有几种方法可以解决此问题。我认为@ user27564的错误之处在于,这些分析必须一定是贝叶斯方法-当然也存在一些频繁使用的临时监视方法。

AsBsABP(A)=P(B)=0.558x such that 1F(x;100;0.5)<αF

类似的逻辑使您可以找到其他测试的“必然点”:

  1. 样本总数*是固定的,并且
  2. 每个观察值为样本贡献了有限的数量。

这可能对您来说很容易实现-离线计算停止条件,然后将其插入网站的代码中-但如果您愿意不仅在结果不可避免的情况下终止实验,通常可以做得更好,但更改的可能性也很小。

ABA

也有许多其他方法。组顺序方法设计用于以下情况:您可能无法获得一定数量的主题,并且主题以可变的速率滴入。根据您网站的流量,您可能会或可能不希望对此进行调查。

如果您要在分析中使用R包,那么CRAN周围会有很多R包。一个很好的起点实际上可能是临床试验任务视图,因为很多工作来自该领域。


[*]只是一些友好的建议:在查看根据大量数据点计算出的显着性值时要小心。当你收集更多的数据,你最终找到一个显著的结果,但效果可能是平凡小。举例来说,如果你问整个星球是否他们更喜欢A或B,这是非常不可能的,你会看到一个确切的50:50,但它可能不值得换装你的产品,如果分割为50.001:49.999。还要继续检查效果大小(即转换率的差异)!


1
明确解决用户的担忧:是的,您绝对可以尽早结束分析。这种情况一直在临床试验中一直发生-该药取得了巨大的成功,以至于他们有足够的数据来证明其功效,并希望将其提供给陷入对照组的人们(或更可能,该药是一种巨大的胸围/使事情变得更糟)。但是,扩展实验更具争议性-有多种方法可以校正多个“外观”,但最好预先确定最大N值-您总是可以尽早停止!
马特·克劳斯

2
感谢这一点,如果实验是不可避免的,我完全同意停止,那确实是有道理的!有了这种“如果真的不太可能,那就停止”,我会怀疑真正的常客会同意这一点。这无非就是说:嘿,95%​​?我会说93%也不错!我的意思是,仅对90%的信心感到满意也是一件好事,但作为常客,在查看数据之前!
SebastianNeubauer

1
我不是电视台的老总,也不是电视上的老总,但我认为您仍然可以对早期停止规则有一个合理的常客性解释-如果我进行了100次此实验,那么我会多久获得一次如果我现在停止了,还是跑到完成了,答案是不同的?我链接的评论指出,这是可以同时满足贝叶斯主义者和频繁主义者的很好的例子之一……
Matt Krause13年

α

1
@ RussellS.Pierce:我认为这取决于。显然,缩减不会,但是其他一些方法却可以。例如,O'Brein和Flemming检验可以使用更多数据,但也可以更早拒绝数据,而Pocock检验甚至可以使用更多数据。显然,这取决于具体情况:上面链接的书中有一个带有一些合理值的示例(效果大小:0.25,alpha = 0.05,功效= 0.9、5个外观)。固定的N版本需要170个主题才能拒绝;OBF版本最多需要180个,而Pocock最多需要205个,但是预期的主题数分别是130个和117个。
马特·克劳斯

1

您可以尽早停止,但是如果这样做,您的p值将难以解释。如果您不关心p值的解释,那么前两个问题的答案为“否”的方式无关紧要(太多)。您的客户似乎很务实,因此对p值的真实解释可能不是您关心的重点。

我不能说您提出的第二种方法。

但是,第一种方法不是牢固的基础。二项式分布的正态近似值对于较低的比例无效(这是power.prop.test使用的方法,也是Cohen在其经典著作《幂》中使用的方法)。而且,据我所知,还没有用于两个样本比例测试的封闭式功效分析解决方案(请参阅如何在不使用正态近似的情况下执行两组二项式功效分析?)。但是,有更好的方法可以近似估计比例的置信区间(请参阅包装二项式)。您可以使用不重叠的置信区间作为部分解决方案...但是,这与估计p值不同,因此不能直接提供功率的途径。我希望有人能与我们其他人分享一个不错的封闭式解决方案。如果偶然发现一个问题,我将更新上面提到的问题。祝好运。

编辑:在考虑的同时,请让我在此稍作讨论。您的客户在确定实验站点比对照站点运行更好时,希望该实验结束。在获得不错的样本后,如果您还没准备好做出决定,那么就可以开始调整随机分配与“获胜”一方的比率。如果只是暂时现象,则对均值的回归会降低,您将变得不确定,并降低了比率。当您有把握地确定时,将其退出并宣布获胜者。最佳方法可能涉及贝叶斯更新,但是我对这个话题的了解还不足以指导您。但是,我可以向您保证,尽管有时看起来似乎很直观,但数学本身并不难。


0

您遇到的问题是统计测试中出现的典型问题。那里的统计数据有两种“偏爱”,即常客和贝叶斯。常问者很容易回答您的两个问题:

  • 没有
  • 不,你不能早停
  • 不,你不能再测量

定义设置后,您甚至无需查看数据(盲分析)。从常客的角度来看,没有办法,没有作弊的把戏!(编辑:当然,有尝试这样做,并且如果使用正确,它们也将起作用,但是已知其中大多数都会引入偏差。)

但是存在贝叶斯观点,这是完全不同的。与常客相比,贝叶斯方法需要额外的输入,即先验概率分布。我们也可以称其为先前的知识或偏见。有了这一点,我们可以使用数据/度量将我们的知识更新为后验概率。关键是,我们可以使用数据,甚至更多,我们可以在测量的每个中间点使用数据。在每个更新中,最后一个后验是我们的新先验,我们可以使用新的度量对其进行更新以更新我们的最新知识。完全没有提早停止的问题!

我找到了一个讨论您所遇到的类似问题的话题,我在上面进行了描述:http : //biostat.mc.vanderbilt.edu/wiki/pub/Main/JoAnnAlvarez/BayesianAdaptivePres.pdf

但是除此之外,您真的确定完全需要这个吗?看来您正在运行一些系统来确定链接请求的位置。为此,您无需通过假设检验证明您的决定在统计意义上是正确的。您是否曾经购买过可乐,因为您可以排除百事可乐现在“正确”的可能性为95%?采取一个更好的选择就足够了,不排除一个假设。那将是一个微不足道的算法:计算比率A的不确定度,计算B的不确定性。取两个比率的差并将其确定为差的不确定性。结果类似于sigma差异的意义。然后,将所有链接的差值超过两个或三个即可。退税,


1
我认为您的前四段有点让人头疼-有一些频繁使用的临时监视方法。确实,(贝叶斯)后验更新很适合此操作,但是您可以用许多不同的方式来构造此问题。感谢您指向幻灯片的指针!
马特·克劳斯

无论如何+1-在这里,贝叶斯方法可能比任何常客方法都清晰明了。
russellpierce

2
嗯,这是一个……模因……贝叶斯方法让人们无休止地浏览数据而没有任何复杂性。但是,总体I类错误率实际上不受控制(为什么会这样?),如果经过多次“看”,它可能会任意增大。您可以使用适当的先验方法来改善此问题,也可以说控制I型错误是la脚的,但这并不是说所有贝叶斯技术都是万能药。
马特·克劳斯

0

也许在那里可以使用一些方法,例如

  • 波科克
  • 奥布莱恩和弗莱明
  • 佩托

这将根据结果调整P截止值,并有助于停止收集数据并节省资源和时间。

也许可以在这里添加其他作品。


您能否提供要点的链接或更多信息?
Antoine

我没有确切的文章,因为我使用了一篇评论文章来引用这些文章,我的意思是方法有所不同,但我可能建议您选择管理医学领域问题的文章:在临床试验中自适应调整样本量:从小做起,然后要求更多?Christopher Jennisona *†和BruceW。Turnbullb
HappyMan '16
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.