Trustworthy Online Controlled Experiments Part 1 Chap 2
对实验结果的解释
实验结束以后, 就可以拿到实验数据了, 但是在实际使用数据之前,需要先确认一下,数据是否正确。
有很多原因会导致实验失败。 为了发现这些错误, 我们可以使用防护指标(guardrail metrics) 或者 不变量(invariants)。 这些指标在控制组和治疗组之间不应变化。如果它们发生变化,则可能来自于一些意想不到更改,而不是被测试功能变化的结果。
有两类不变量(invariants)
与信任相关的防护指标(Trust-related guardrail metrics),例如,预期“控制”和“处理”样本数量将根据配置进行大小调整,或者具有相同的命中率。
组织防护指标(Organizational guardrail metrics)(例如延迟)对组织很重要,并且有望在许多实验中保持不变。在结帐实验中,如果延迟发生变化,将是非常令人惊讶的。
如果这些检查失败了, 则需要去检查实验执行, 设计中的问题。 如果成功了, 则可以进入下一步的工作。
假设, 我们得到了如下的结果:
因为 p 值小于 0.05, 所以我们拒绝原假设, 即控制组和治疗组的均值相同。
那么这是什么意思?这意味着我们确认了向用户界面添加优惠券代码会减少收入。如果我们进一步研究数字,结果表明减少的原因是完成购买过程的用户减少了。营销模型估计了目标用户的收入有小幅增长,但是A / B测试显示所有用户的收入均大幅下降,因此, 公司决定放弃引入促销代码的想法。A / B测试节省了公司大量的精力!
从结果到决策
运行A / B测试的目的是收集数据以推动决策。我们需要做很多的工作,以确保结果可重复,且值得信赖。 只有这样,我们才能依据这些数据做出正确的决定。让我们逐步了解可能出现的几种不同情况的决策过程。对于每种情况,我们都有实验的结果,我们的目标是将结果转换为启动/不启动的决策。强调决策制定部分的原因是,决策需要同时考虑 A/B 测试的结果和更多的其他因素,例如:
如何在不同的指标之间做取舍。 比如用户参与度增加了,但是收入减少了。 或者CPU 利用率增加了, 但是实际的收益小于实施项目的成本。
-
部署一个改变/功能的成本包括:
- 在部署之前,完成功能开发能所需的成本。在实验阶段,某些功能可能已经完全被开发出来。在这种情况下,部署的成本为零。但是情况并非总是如此。如在我们的示例中,一个假的优惠券系统很坚定,但是实施完整的优惠券系统的成本却很昂贵。
- 部署后工程维护的成本,因为维护新代码的成本可能很高。新的编解码器可能具有更多的错误,并且没有针对边缘案例进行良好的测试。如果新代码引入了更多的复杂性,则可能还会增加摩擦和成本以在其之上进行新的更改。如果成本很高,则必须确保预期的收益能够覆盖它。在这种情况下,确保实际收益足够高以覆盖这一点。相反,如果成本较低甚至为零,则可以选择启动任何正的变化,换句话说,边界很低。
- 做出错误决定的代价是什么?并非所有决定都是平等的,并非所有错误都是等值的。发起没有影响的修改可能没有任何负面影响,但是如果我们放弃有影响的修改,则机会成本可能很高,反之亦然。例如,正在网站上测试两个可能的标题,标题仅会保留几天。在这种情况下,做出错误决定的负面影响很低,因为更改的时间很短。在这种情况下,可能愿意降低统计和实际意义上的标准。
在构建统计和实际重要性阈值时,需要考虑因素。从实验结果到决策或行动,这些阈值至关重要。假设我们在实验开始之前已经决定阈值,那么让我们看看下图的示例。 这个例子说明了如何使用这些阈值来指导我们的决策。
图中心实体竖线代表0轴, 两个虚线代表实际意义阈值。每个黑色小方块代表预估效果的点估计, 整个线段代表置信区间。
这种情况最简单, 置信区间跨越0轴, 实验结果没有统计意义, 要么重新做实验,要么放弃修改。
这种情况也很简单, 统计和实际意义都明显正面, 执行修改就好。
有统计意义,但是没有实际意义。 需要在重新考虑一下, 或者权衡一下利弊。 一般来说是不执行改变。
这种情况一般是数据太少, 没法发现有实际意义的效果。 如果期待的结果比较有价值, 可以考虑收集更多的数据。
没有统计意义, 但是有实际意义。 这种情况貌似可以执行, 但是出于谨慎起见, 最好还是放弃。 如果真的想执行改变, 可以继续收集收据, 以获得更准确的结论。
有统计意义, 没有实际意义。 处理方式类似5.
要记住的关键是,尽管当时可能没有明确的答案,但有时还是需要做出决定。在这些情况下,需要明确说明正在考虑的因素,尤其是它们将如何转化为实际和统计上的显着性边界。这将成为未来决策的基础,而不仅仅是当前决策。