A/B测试常见的10个错误
- 2019 年 10 月 5 日
- 筆記
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