注意:本文是一篇英文博客的中文翻译,原文请见:https://statsig.com/blog/sequential-testing-on-statsig
我们最近改进了Statsig的序贯检验方法,以实现更快的决策。与之前的实现相比,这种新方法在实验早期具有更高的统计功效,同时严格控制假阳性率。这对于早期回归检测或在关键指标效应大于预期时缩短实验时长非常理想。
运行在线A/B测试时的一个常见问题是"偷看问题"。当持续监控实验指标并打算提前做出发布决策时,就会出现这个问题。这源于在线实验两个方面之间的矛盾:
与心理学和药物测试等领域进行的A/B测试不同,最先进的在线实验平台使用实时数据流,可以立即呈现结果。随着数据收集的继续,这些结果可以更新以反映最新的洞察。自然地,我们希望利用这种强大的能力尽早做出最佳决策。
在固定时间范围的假设检验中,我们接受预定的假阳性率,通常为5%(alpha = 0.05)。当p值小于0.05时,通常的做法是拒绝零假设,并将观察到的效应归因于我们正在测试的处理。我们这样做时知道有5%的可能性,统计显著的结果实际上只是随机噪声。
然而,在等待显著性时持续监控会导致5%假阳性率的复合效应。想象你有一个20面的骰子。如果你掷一次,你有5%(1/20)的机会得到1。但如果你每天掷一次,持续一周,至少得到一次1的概率远高于5%。事实上,你的机会已经增加到30%。
在序贯检验中,置信区间的计算方式发生了变化,无论评估指标多少次,都能保持所需的假阳性上限。
Statsig的新序贯检验方法基于Zhao等人描述的mSPRT(混合概率序贯比率检验)方法。这是一种常用的方法,其中检验统计量基于零假设和备择假设的似然比。
我们进行了广泛的测试,包括模拟分布和真实实验数据,发现这满足了序贯检验的预期标准:
即使在4周内重复测量,A/A测试中的假阳性率仍保持在5%以下。
当存在真实效应时,统计显著的结果通常可以在实验目标时长之前检测到。
在我们的评估中,我们将新的mSPRT方法与之前的方法以及固定时间范围测试中使用的标准z检验进行了比较。
我们使用Statsig上560个最近的实验评估了我们方法的功效,其中包括近2000个记分卡指标。分析涵盖了来自各个行业的广泛产品指标(使用时长、收入、订阅率、延迟、发送消息数、留存率等)。对于每个实验,目标时长和记分卡指标由实验创建者设置。
我们重点关注了在目标时长结束时基于固定时间范围z检验显示统计显著的记分卡指标。下图显示了序贯检验显示统计显著结果的概率与时长的函数关系。当结果统计显著时,意味着如果使用序贯检验,实验可以提前停止。
与之前的方法相比,我们的新方法在早期识别统计显著结果的概率更高。这是我们发布此更新的原因之一:当序贯检验能够提前揭示结果并缩短实验时长时,它提供了更多价值。
然而,值得注意的是,我们在实验结束时没有达到相同的功效水平。这是我们在强制限制假阳性率时无法避免的权衡。在选择序贯检验而非标准固定时间范围测试时,值得记住这一点。
方法 | 相对于固定时间范围测试的功效 | 目标时长一半时的提前停止概率 |
固定时间范围 | 100% | 0% |
Statsig新方法(mSPRT) | 84% | 58% |
Statsig v1 | 100% | 33% |
评估假阳性率的最佳方法是使用预期具有中性结果的A/A测试。我们进行了1万次模拟A/A测试,参数如下:
每组10万用户,在14天内逐步加入。这反映了用户在实验期间逐渐接触实验的常见模式。
为每个用户生成两个指标。第一个来自标准正态分布,第二个来自均值为1、标准差为0.1的正态分布
结果显示,新方法的假阳性率安全地低于5%。如预期的那样,固定时间范围z检验约为5%,而带偷看的z检验显著更高(超过20%)。我们之前的方法没有严格执行假阳性率上限,它确实显示出比固定时间范围z检验略高的假阳性率(5.5%),但仍远低于带偷看的z检验。
方法 | 假阳性率(标准正态) | 假阳性率(均值=1,标准差=0.1) |
固定时间范围 | 5.3% | 4.9% |
Statsig新方法(mSPRT) | 0.4% | 0.2% |
Statsig旧方法 | 5.5% | 5.2% |
带偷看的Z检验 | 20.9% | 21.5% |
我们还利用Statsig上的现有数据来评估我们方法在真实世界指标上的假阳性率。这是一个重要步骤,因为我们在实验中看到的指标可能具有与合成数据集不同的分布和参与率。
我们使用来自100个不同规模客户的5000多个指标生成了5万个A/A测试。测试持续28天,评估了比率和事件计数类型的指标。同样,我们的结果确认了mSPRT方法的假阳性率始终低于5%。
方法 | 总体假阳性率 | 比率假阳性率 | 事件计数假阳性率 |
固定时间范围 | 5.0% | 4.6% | 5.0% |
Statsig新方法(mSPRT) | 1.1% | 1.1% | 1.2% |
Statsig旧方法 | 5.7% | 5.4% | 5.7% |
带偷看的Z检验 | 17.3% | 20.1% | 17.3% |
序贯检验的最佳用途通常是与传统的、有时间限制的假设检验相结合。序贯检验最适合用于识别回归或基于单一指标做出发布决策。
Statsig上的产品实验通常涉及多个记分卡指标,这些指标提供了测试影响的全面视图。在这些情况下,建议使用固定时间范围测试以获得所有感兴趣指标的完整统计功效。需要记住的一些想法:
虽然"偷看"有时会受到批评,但早期监控测试实际上对于从实验计划中获得最大价值至关重要。如果实验引入了可测量的回归,没有理由等到结束才采取行动。通过序贯检验,我们可以轻松区分统计噪声和早期显著的强效应。
序贯检验的另一个用例是当运行实验的全部时长存在机会成本时。例如,向用户隐瞒改进可能会产生重大的工程或业务成本,或者提前结束实验可能会为进一步的测试扫清道路。
看到目标指标早期就有统计显著效应是令人兴奋的。在做出早期决策之前的一个警告:虽然一个指标可能早期达到显著性,但其他看起来中性的指标可能仍然功效不足。
即使所有感兴趣的指标早期看起来都很好,通常建议在做出决策之前至少等待7个完整的天。这是因为许多指标受到每周季节性的影响,当产品的最终用户根据一周中的不同日子有不同的行为时。
如果效应大小的良好估计很重要,请考虑将实验运行到完成。首先,序贯检验调整的置信区间更宽,因此在做出早期决策时可能值的范围更大(精度较低)。此外,即使真实效应实际上较小,较大的测量效应也更有可能在早期统计显著。
基于正面统计显著结果常规地做出早期决策可能导致系统性地高估已发布实验的影响(准确性较低)。
序贯检验能够持续监控实验结果而不会增加假阳性率。
它是早期识别回归并减少其对产品影响的强大工具。也就是说,与固定时间范围测试相比,它的总体统计功效有所降低。因此,我们建议仅在实验有单一感兴趣指标时才使用此方法进行早期发布决策。