A/B测试中我们都会犯的十个常见错误

2019-11-29 20:51:46

作者:Romain AYRES

编译:ronghuaiyang

导读

这篇博客文章的目的不是告诉你在运行A/B测试时应该做什么,而是告诉你不应该做什么

“没有数据,你只是一个有观点的人。”

这个著名的W. Edwards Deming引用说明了A/B测试对于做出好的商业决策至关重要。在ManoMano,我们向数百万用户展示数以百万计的DIY和园艺产品,并每天运行几十个A/B测试,以改善我们网站上的客户体验。

A/B测试中我们都会犯的十个常见错误

产品排名算法A/B测试示例,garden sheds页面

运行A/B测试和解释结果可能非常困难,如果方法错误,可能会导致错误的结论。这篇博客文章的目的不是告诉你在运行A/B测试时应该做什么,而是告诉你不应该做什么。下面是在A/B测试结果时都会犯的10个常见错误。

1 — 当只有一个局部受到影响时,观察的是整个分布

例如:你想要测试搜索引擎的相关性,但是在分析A/B测试结果时,你查看了整个人群,而不是只使用搜索引擎的客户。虽然这在科学上没有错,但达到统计显著性需要更长的时间,因为你在分析数据中添加了一些噪声:

A/B测试中我们都会犯的十个常见错误

 

要点1:为了更快地达到统计显著性,只观察与测试功能交互过的用户的结果(这里是搜索引擎)。

2 — 在没有任何业务直觉的情况下跑测试

这个错误的一种情况时跑具有太多变量(A/B/C/…/n)的测试。这是一个关于多重比较问题的例子。因此,商业直觉对于决定进行哪种AB测试至关重要。

A/B测试中我们都会犯的十个常见错误

 

要点2:使用你的直觉(或者更好地做用户研究)来决定启动哪个A/B测试。

3 — 对分布进行分割以达到统计学显著性

这是多重比较问题的另一个例子:“我的A/B测试不重要,所以我将在设备上按国家分割数据,以获得显著性结果”。在做测试后的分割时,你必须非常小心。的确,你比较的segments越多,得到假阳性结果的可能性就越大。

对于在设备上按国家分割示例,我们在ManoMano有n=15个细分市场(5个国家×3个设备:法国/移动、法国/台式机、西班牙/平板电脑等)。让我们计算一下在这些分割中至少有一个显著结果的概率:

A/B测试中我们都会犯的十个常见错误

 

我们有超过50%的机会在我们的细分人群中得到至少一个显著的结果,完全是由于偶然。因此,从测试后的分割中得出结论并采取行动是非常危险的。尽管存在一些技术来缓解这个问题,比如Bonferroni correction。

要点3:不要为了达到统计意义而分割你的人群。

4 — 查看好几个指标以达到统计上显著性

关于多重比较问题的另一个例子是:“*我的A/B测试没有显示在转化率、平均购物篮和弹跳率上有显著的结果。但这对每个篮子里的产品数量来说意义重大!”如果你查看足够多的度量标准,你最终会发现一个显示为显著的度量标准,但这是由于偶然:

A/B测试中我们都会犯的十个常见错误

A/B测试结果显示

要点4: 坚持以测试目的为标注的度量方式。

5 — 达到统计学显著性时停止测试

统计显著性不能告诉你什么时候应该停止测试。在停止测试前,你需要等待计算出的样本量达到。你还可以模拟一个A/A测试,以查看在测试早期达到统计显著性的频率是相当高的,即使测试最后并没有达到显著性:

A/B测试中我们都会犯的十个常见错误

根据样本数量,观察A/A测试实验的显著性

要点5: 即使你的测试在具有统计显著性,也要保持测试的有效性,直到测试完成为止。

6 — 在达到统计显著性之前,保持测试有效

再次强调,统计显著性不能告诉你何时可以停止测试或继续测试。你不应该等待一个测试具有显著性,因为它可能永远不会发生,特别是如果你已经达到所需的样本量,这意味着你的测试有了一个足够的统计能力的结论。

A/B测试中我们都会犯的十个常见错误

 

要点6: 一旦达到所需的样本量,就停止测试。

7 — 把(1 - p值)当成B优于A的概率

这是一个很常见的错误。P-value为2%并不意味着B有98%的几率比a好,这一假设在数学上是错误的,因为它还依赖于基本比率,这是测试执行上有积极的效果的比例(只有上帝知道这个数!)。这个数字反映了你的商业直觉水平。

假设我们是上帝,我们知道ManoMano的基本比率是20%,这意味着20%的测试结果是positive的:

A/B测试中我们都会犯的十个常见错误

 

80% 阳性检验(灰色),拒绝原假设(统计幂):

A/B测试中我们都会犯的十个常见错误

 

5% 阴性检验(白色),拒绝原假设(显著性阈值):

A/B测试中我们都会犯的十个常见错误

 

结论:给定80%的统计能力、5%的显著性阈值和20%的基准率,当一个测试被认为是阳性时(p值< 0.05),我们只有16 /(16+4)= 80%的机会它实际上是阳性的,而不是95%。

在这种配置中(统计能力=80%,显著性阈值=5%),并且知道你的A/B测试结果是显著的,下面是你的测试实际上是阳性的一些概率,具体取决于基本比率:

A/B测试中我们都会犯的十个常见错误

 

要点7:(1 - p-value)不是测试结果为positive的概率。

8 — 认为观测到的增量是特征带来的增量

测试中观察到的增量允许你计算统计显著性,但是将观察到的增量视为特征带来的实际增量是错误的,因为这通常需要更多的用户或会话。

如果仅仅说明B比A好是不够的,需要选择使用置信区间而不是原始增量。为了说明这一点,我们举一个A/B测试的例子:

A/B测试中我们都会犯的十个常见错误

 

p值为0.014,在显著性水平为95%的情况下,A/B检验为阳性,说明变异组显著优于对照组。观测到的转化率相对增量很容易计算:

A/B测试中我们都会犯的十个常见错误

 

但是,将这个观察到的增量看作特征带来的实际增量是不正确的。你应该使用标准误差计算每组的置信区间:

A/B测试中我们都会犯的十个常见错误

 

p是观察到的是这个组的转化率,n采样池样本量,Zα相对应的z值置信水平α(在我们的例子中95%)。

利用该公式,最终可以计算出两组95%置信区间(CI)的转化率:

A/B测试中我们都会犯的十个常见错误

 

也可以计算相对增量(PctDiff)的置信区间,但它更复杂。

要点8:当你的测试结果显著性为阳性时,请使用置信区间,而不是原始增量。

9 — 当A/B测试结果与你的直觉相反时,忽略它

如果你还没有准备好使用获胜的版本更新你的产品,那么启动A/B测试是没有意义的,而只是提供你的确认偏差。在选择测试内容时,直觉是至关重要的,但它不应该与A/B测试的无偏结果相抵触。

A/B测试中我们都会犯的十个常见错误

 

要点9: 在测试前与涉众确定阈值和相关操作。

10 — 忘记检查你的A/B测试系统是否可靠

为了保证你的A/B测试结果的可靠性,你的A/B测试系统必须经过校准并正常工作。确保这种可靠性的一种方法是持续进行A/A测试,并检查两组人群之间是否存在显著差异:

A/B测试中我们都会犯的十个常见错误

 

ManoMano的连续A/A测试允许我们快速检测8月期间遇到的缓存错误,该错误使我们在8月20日到8月22日之间运行的所有测试无效。

要点10: 持续进行A/A测试以发现可靠性问题。

总结

正如你所看到的,在分析A/B测试结果时出错的风险非常高,而在测试之后做出的决策对你的公司非常重要。这就是为什么你应该对传达给你的A/B测试结果持非常怀疑的态度,特别是当这些测试结果来自于对获得积极结果有个人兴趣的人(例如,想要向你推销一些东西的人)。

英文原文:https://medium.com/manomano-tech/a-b-testing-10-common-mistakes-we-all-make-97a5030f1d44