专栏首页AI研习社A/B测试常见的10个错误

A/B测试常见的10个错误

A/B 测试结果出错的风险非常高,或许应该持怀疑态度。

文 | skura

「没有数据,你只是一个有想法的人。」

这是 W. Edwards 的依据名言,它表明,A/B 测试对于做出良好的商业决策来说至关重要。在 Manomano,我们向数百万用户展示数百万 DIY 和园艺产品,并每天进行数十个 A/B 测试,以改善我们网站的用户体验。

ManoMano 花园大棚分类页面上的产品排名算法 A/B 测试示例

然而,运行 A/B 测试和解释结果可能非常困难,如果做得不对,可能会得到错误的结论。这篇博文的目的不是要说明在运行 A/B 测试时应该做什么,而是要告诉你不应该做什么。下面是我们在进行 A/B 测试时经常会犯的 10 个常见错误。

1.在仅当一部分人受到影响时,观察所有人


示例:你想测试你的搜索引擎相关性,但在分析 A/B 测试结果时,你查看整个总体,而不仅仅是使用搜索引擎的用户。虽然这在科学的角度来说不是错误的,但是达到统计显著性需要更长的时间,因为在分析的数据中添加了一些噪声:

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

2.在没有任何业务直觉的情况下进行测试


不能使用太多变量(A/B/C/../N)进行测试。例如,如果使用 α=5% 显著性阈值并决定测试 20 个不同的场景,则其中每个场景是正样本的机会是偶然的。这是多重比较问题的一个例子。因此,业务直觉对于决定启动哪个 A/B 测试至关重要。为了说明这一点,我们可以修改 W.Edwards Deming 的名言:

「没有想法,你只是一个有数据的人 」

经验 2:用你的直觉(或者更好的方法——做用户调查)来决定启动哪一个 A/B 测试。

3.对人口进行分段以达到统计显著性


这是多重比较问题的另一个例子:「我的 A/B 测试不显著,因此我将在设备上对数据进行分段以获得显著结果」。在进行数据分割时必须非常小心。事实上,你比较的片段越多,结果中出现错误的几率就越大。

以 country * device 为例,我们在 Manomano 有 n=15 个细分市场(5 个国家*3 个设备:法国/手机、法国/桌子、西班牙/平板电脑等)。让我们计算在其中一个分段上偶然出现至少一个重要结果的概率:

我们有超过 50% 的机会出现这种偶然性,因此,从分割数据的测试中得出结论并采取行动是非常危险的。但也有一些技术可以缓解这一问题,比如 Bonferroni 校正。

经验 3:不要为了达到统计显著性而分割你的数据。

4.查看几个指标以达到统计显著性


多重比较问题的另一个例子是:「我的 A/B 测试在转换率、平均购物篮和跳出率上都没有显著结果。但这对每类购物篮的数量来说是很重要的!如果你观察足够多的指标,你最终会发现其中一个指标碰巧显示了一个重要的结果:

A/B 测试结果说明

经验 4:坚持测试设计的标准。

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


统计显著性不能告诉你什么时候应该停止测试。在停止测试之前,你需要等待以达到计算出的样本大小。使用 A/B 测试计算器计算测试所需的样本大小。有关这种偏差的更多细节,请阅读这里的问题说明。你还可以在此处模拟 A/A 测试,以查看在测试早期达到统计显著性的频率,即使在测试结束时结果不显著:

使用 james lutrek 工具,根据样本数量观察 A/A 测试实验的显著性

经验 5:即使你的测试有统计学意义(统计显著性),也要继续测试,直到测试结束。

6.在达到统计显著性之前不要停止测试


同样,统计显著性不能告诉你什么时候可以停止测试,或者继续测试。你不应该等待一个测试变得有意义,因为它可能永远不会发生。如果你已经达到了在测试前计算出的样本量,这就意味着你的测试有足够的统计能力得出结论。

Evan Miller 的 A/B 测试持续时间计算器

经验 6 :一旦达到所需的样本量,停止测试。

7.将(1-p 值)当做 B 优于 A 的概率


这是一个很常见的错误。p 值为 2% 并不意味着 B 有 98% 的机会比 A 好。这个假设在数学上是错误的,因为它还取决于基准率,即你所做的测试中,有积极影响的百分比(只有上帝知道这个数字!)。这个数字反映了你的商业直觉水平。

假设我们是上帝,我们知道 ManoMano 的基准率是 20%。这意味着我们 20% 的测试都是阳性的:

80% 的阳性测试(灰色)拒绝零假设(统计能力):

5% 的阴性测试(白色)拒绝零假设(显著性阈值):

结论:在 80% 的统计能力、5% 的显著性阈值和 20% 的基准率,当检验被认为是阳性(p 值<0.05)时,我们只有 16/(16+4)=80% 的机会是真阳性,而不是 95%。

在这种情况下(统计能力=80%,显著性阈值=5%),知道你的 A/B 测试结果是有意义的,下面是一些概率,你的测试实际上是阳性的,这取决于基准率:

经验 7:(1-p 值)不是检验为阳性的概率。如果你还想计算这个概率,使用贝叶斯 A/B 测试方法。

8.认为观察到的增量是特征带来的增量


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

如果不能证明 B 优于 A ,则选择传递置信区间而不是原始增量。为了说明这一点,我们以 A/B 测试为例:

p 值为 0.014,可接受的显著性水平为 95%,此 A/B 检验为阳性,这意味着测试组显著好于对照组。可以很容易地计算出观察到的跳出率相对增量:

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

其中 p 是观察到的组跳出率,n 是池样本大小,zα 是对应于置信水平 α 的 z 值(在本例中为 95%)。你可以在这里找到通常置信水平的 z 值。

使用此公式,你最终可以计算两个组的 95% 置信区间(CI)跳出率:

也可以反计算相对增量(pctdiff)的置信区间,但它更复杂。如果需要更多详细信息,请参阅这个调查的第 3.3.2 节(http://www.robotics.stanford.edu/~ronnyk/2009controlledExperimentsOnTheWebSurvey.pdf。

经验 8:当你的测试为显著阳性时,应该传递置信区间而不是原始增量。

9.当 A/B 测试结果违背你的直觉时,忽略它们


如果你(和你的组织)还没有准备好用新的版本更新你的产品,除了确认你的偏见,启动 A/B 测试是没有意义的。直觉在选择测试内容时至关重要,但它不应与 A/B 测试的结果相抵触。

经验 9:与利益相关者确定测试前的阈值和相关行动。

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


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

Manomano 的连续 A/A 测试允许我们快速检测 8 月份遇到的缓存错误,由于该错误,8 月 20 日到 8 月 22 日之间进行的所有测试无效。

经验 10:持续进行 A/A 测试,以检测可靠性。

结 论


如你所见,在分析 A/B 测试结果时出错的风险非常高,而在测试之后所做的决策对你的公司来说至关重要。因此,你应该对给到你的 A/B 测试结果持怀疑态度,特别是当这个结果来自于一个对取得积极结果有强烈兴趣的人(例如,一个想卖给你东西的人)时尤其如此。在 ManoMano,我们有一个值得信赖的委员会,帮助分析所有内部和外部 A/B 测试的结果,并对结论有着公正的看法。

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

本文分享自微信公众号 - AI研习社(okweiwu),作者:skura

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-09-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • AI 竞赛没有意义,模型实际不可用,冠军全凭运气?

    近日,一个大型的新的 CT 脑数据集被发布,其目的是训练模型来检测颅内出血。由此,Luke Oakden-Rayner 写了一篇名为《AI competitio...

    AI研习社
  • 横评:五款免费开源的语音识别工具

    编者按:本文原作者 Cindi Thompson,美国德克萨斯大学奥斯汀分校(University of Texas at Austin)计算机科学博士,数据科...

    AI研习社
  • 深度学习面试你必须知道这些答案

    本文是问题 “那些深度学习《面试》你可能需要知道的” 的回答,答案均以英文版Deep Learning页标标记。 1. 列举常见的一些范数及其应用场景,如 ...

    AI研习社
  • 聊聊基准测试的可行性方案

    上篇文章介绍了基准测试的一些思路和方法策略,这篇聊聊基准测试的MVP(最小可行性方案)。

    写博客的老张
  • 软件测试成长目录

    这是我的第一篇文章,也是一个对自己未来发展的一个规划,希望自己能够坚持下来,每天进步一点点,加油!

    小雯子打豆豆
  • 7款开源自动化测试框架优缺点对比

    1. Robot Framework Robot Framework(RF)是用于验收测试和验收测试驱动开发(ATDD)的自动化测试框架。 基于 Python ...

    企鹅号小编
  • 2017 热门开源自动化测试框架优缺点对比

    时间一晃已来到 2017 年的最后一个季度,TestProject 对比了在今年比较热门的 7 款开源自动化测试框架的优缺点,以帮助你选择适合自己的测试框架。

    Debian社区
  • 软件测试分类有那些,你还知道吗

    回答以下小问题: 1.什么时候进行单元测试? 2.由谁来做单元测试? 3.单元测试的依据? 4.单元测试的通过标准? 5.国内单元测试的现状? 6.如何进行单元...

    用户7466307
  • 【探索篇】发散思维假设分析推理之探索式测试(一)

    一种即兴测试风格,类似错误猜测,依据经验和直觉快速生成用例,不断提出假设,根据逻辑分析和推理,反复调整测试策略,以很高的频率交替切换,逐步深入探索

    橙子探索测试
  • 黑盒测试VS白盒测试

    这篇文章是我从stackoverflow上翻译过来的,如果以后遇到好的文章我还会继续翻译。

    Peter Shen

扫码关注云+社区

领取腾讯云代金券