什么是AB测试?
AB测试来源于假设检验。其原理可以理解为:
现在有两个随机均匀的样本组A、B,对其中一个组A做出某种改动,实验结束后分析两组用户行为数据,通过显著性检验,判断这个改动对于我们所关注的核心指标是否有显著的影响,验证做出的假设检验。
AB测试其实就是随机均匀样本组的对照实验。
AB测试的一般流程
明确改动点
首先明确实验的变量是什么,保证AB测试的“单一因素原则”,即每一个实验的评估的因素都是单一因素,一次实验不能糅合多个影响因素,否则会导致实验效果难以区分是哪个因素的影响。
明确观测指标
观测指标可以分为两种类型:
绝对值类指标。直接计算就能得到的单个指标,不需要多个指标计算得到。一般都是统计该指标在一段时间内的均值或者汇总值,比如DAU,平均停留时长等。这类指标一般较少作为AB测试的观测指标。
比率类指标。不能直接计算得到,而是通过多个指标计算得到。比如点击率、转化率、复购率等。AB测试观测的大部分指标都是比率类指标。
区分不同类型的观测指标,接下来的样本量计算中,这两类指标的样本量计算有所差别。
样本量、实验周期计算
A/B 测试样本量的选取基于大数定律和中心极限定理。
大数定律:当试验条件不变时,随机试验重复多次以后,随机事件的频率近似等于随机事件的概率。
中心极限定理:对独立同分布且有相同期望和方差的n个随机变量,当样本量很大时,样本的均值近似服从标准正态分布N(0,1)。
只要样本量足够大,样本就能够代表整体的表现。
AB测试流量分割
正确的试验实施方案里,除被测试的变量外,其他可能影响结果的变量的比例都应该保持一致,这就需要对流量进行均匀合理的分割。
分流分层原理
流量的分割常用的有分流和分层。
分流
每个分层都拥有全部流量。在同一个分层中,多个试验共用100%的流量,试验之间流量互斥。例如在同一分层中,试验1占用了40%流量,则试验2最多只可使用60%流量,以此类推。当同时运行多个试验时,如果希望试验结果尽可能精确,需要确保试验之间互不干扰,则建议将试验建立在同一分层,同一个用户只会进入该分层中的一个试验。
分层
分层意为复用用户流量,如果试验1和试验2使用不同的分层,则试验1和试验2均可分配最多100%的流量。在此情况下,同一个用户将会同时进入试验1和试验2。当两个试验处于不同层时,需要确保试验内容互不相关,否则将会干扰试验数据。平台中的每个实验,独立为一个实验层,一份流量穿越每层实验时,都会随机打散再重组,保证每层流量数量相同。
使用场景
流量分流分层模型常用于以下场景:
- UI的优化
- 文案变化
- 页面布局
- 算法优化
AB测试效果验证
AB测试后,我们需要对AB测试的结果进行显著性检验,从而判断改动是否对我们的核心指标产生了显著差异。这时可以用Z检验方法来进行验证。在得出结果后,可以继续实验几次,来避免偶然。也可以用有关的测试工具直接验证。
AB测试是必须的么?
AB测试成本很高,每个调整都需要AB测试么?
如果只是验证一个小按钮或者一个小改动,我们可以在界面上去设置一个开关,用户可以通过开关的形式自行决定采用哪一种方式。那么我们最后就可以通过这个开关的相关指标去判断用户对于哪一种形式又有更大的倾向性,有的时候可以去做一些用户调研,比如说通过访谈或者设计问卷的形式,去收集一些用户的反馈和关于这些小变动的体验,这时可以很好的控制调整成本,所以并不是每个调整都需要AB测试。
统计显著=实际显著?
如果发现AB测试的结果在统计上来说是显著,但是在实际中却不显著,这是为什么?
这个可能的原因是我们在AB测试当中所选取的样本量过大,导致样本量和总体数据量差异很大,这样的话即使我们发现一个细微的差别,它在统计上来说是显著的,在实际的案例当中可能会变得不显著了。举个栗子,对应到我们的互联网产品实践当中,我们做了一个改动,APP的启动时间的优化了0.001秒,这个数字可能在统计学上对应的P值很小,也就是说统计学上是显著的,但是在实际中用户0.01秒的差异是感知不出来的。那么这样一个显著的统计差别,其实对我们来说是没有太大的实际意义的。所以统计学上的显著并不意味着实际效果的显著。
AB测试效果统计上不显著?
如果在AB测试当中所选取的指标在统计上来说都是不显著的,你该怎么去判断这个实验的收益?
一种通用的方式是将这个指标拆分成每一天去观察。如果指标的变化曲线每一天实验组都高于对照组,即使他在统计上来说是不显著的,我们也认为在这样一个观测周期内,实验组的关键指标表现是优于对照组的,那么结合这样一个观测,我们最终也可以得出这个优化可以上线的结论。
实验组优于对照组就能上线?
如果AB测试中发现实验组核心指标明显优于对照组,那这个优化就一定能够上线吗?
不一定。举个例子,比如说有的时候我们想要提升产品的视觉展现效果。但是这种优化可能是以用户等待内容展现的时间作为代价来进行提升的。所以一个方面的优化可能会导致另一个方面的劣化。在做这个优化的时候,可能会对其他部门产生一些负向的影响,进而导致公司收入的下降。所以我们在进行AB测试的时候,必须要综合评估所有方面的一些指标变动,同时对于收益和损失来做一个评估,才能确认这个优化可以最终上线。
怎么理解AB测试中的第一、二类错误?
第一类错误和第二类错误,AB测试中最常提到的两个概念,前面也提到过,也是统计学中比较容易搞混的两个概念。不好理解的话,还是举个栗子,在互联网产品案例中,第一类错误代表的是一个功能的改动,本来不能带来任何收益,但是我们却误认为它能够给我们带来收益。同样,第二类错误代表的是本来是一个好的产品,它本来可以带来收益,但是由于我们统计的误差,导致我们误认为它并不能带来收益。
往往在实际的工作中,第一类错误是我们更加不能接受的。换句更直白的话说,就是我们宁愿砍掉几个好的产品,也绝对不能让一个坏的产品上线。因为通常是一个坏的产品上线会给用户的体验带来极大的不好的影响,而这个不好的影响会非常大程度的影响到我们的日活以及留存。你要知道在现实生活中,我们把留存或者把日活提升一个百分点都已经是一个非常了不起的优化了,但是通常要实现1%的留存率。人都需要花费很长时间,也很大精力,但是你如果想要留存下降一个百分点的话,可能就是一瞬间的事情。所以第一类错误通常是我们在实际工作当中所更加不能接受的。
附参考资料:
AB测试