数分思维13:AB测试
一、基本概念
1.1 什么是AB测试?
有两组随机均匀的样本A,B,通过单变量控制法,A组保持不变,B组施加某种策略,实验后分析两组数据,通过显著性检验,判断这个策略对于核心指标的提升是否有显著的影响
1.2 AB实验的目标?
AB实验的最终目标是为了提升业务目标。
1.3 原理
假设检验、大数定律、中心极限定理
二、实验原则
- 同期性:同一时期对于 A、B组进行实验
- 唯一性:每个样本只在实验组或对照组
- 均衡性:实验样本均匀分布在AB组
- 随机性:样本随机分配
- 样本量足够且独立:实验样本量足够且样本之间互不干扰
三、实验流程
- 确定实验目标
- 确定实验变量
- 实验指标设计:核心指标、相关指标和护栏指标
- 样本选择:选择实验群体,确定最少样本量
- 流量分发:分流(互斥)实验,分层(正交)实验,分流分层实验、圈层实验
- 实验与评估: 线上实验,调整流量,分析数据,得到结论
- 实验数据驱动决策
- 实验放量:结论通过,灰度实验上线;不全量切换,先上线一部分
四、实验步骤详解
4.1 确定实验目标
明确分析需求,确定实验成本以及是否有必要进行实验;
如需实验,确定实验目的,是提升某类指标还是版本的迭代更新。之后才能确定实验变量、实验指标、流量分发、实验类型等
4.2 确定实验变量
实验目的明确后,也就确定了实验变量。如不同的优惠券类型、是否添加个性化推荐功能、产品包装样式是否更改、小红书发笔记是否添加封面等。
4.3 实验指标设计
4.3.1 选择实验指标
1)核心指标:(一般是核心KPI,可以驱动业务核心价值):
- 注册转化率、活动按钮CTR、人均使用时长
- 评估核心指标是否满足:可归因性;可测量性;敏感性和稳定性
2)相关指标(一般是辅助指标,便于观测业务变化):
- 如核心指标是下单转化率,那么可以使用客单价、人均下单次数、退货率作为相关指标。如果,下单率有所提升,但是相关的客单价和下单次数下降了,那么需要进行针对性调整
- 如何确定相关指标?
- 相关指标的作用是更全面的观察业务变化,因此我们可从以下4个角度来罗列:
- 核心指标的其他角度、重要维度的切片指标、细分步骤的转化率、上下游模块的业务指标
3)护栏指标(一般是保护业务的指标,避免因为短期指标优化影响长期指标):
- 护栏指标如何确定?
- 当我们已经梳理比较健全的相关指标之后,我们可以在相关指标中做一些挑选,将能够提示用户体验受到伤害或长期商业价值受到伤害的指标设置成为护栏指标,并最好使它符合统计学检验的要求
- 通常是两类指标?
- 用户可以做出明显的负向反馈行为的指标。【人均交易金额】上升的同时,【退货率】也上升了
- 比较重要的长期商业价值指标或者体验指标。【留存率】【人均花费】【人均使用时长】
4.3.2 选择评价指标
1)根据当前产品所处阶段,初期选择点击率、转化率类;发展和成熟期选择留存类,如平均使用时长,留存率
2)定性+定量:对于类似NPS,把定性的用户调研结果和定量的用户使用行为分析结合起来,找出哪些用户使用行为和和用户满意度有较强的关系
4.4 样本选择
4.4.1 样本量
如果样本量太小,那么实验结果不可信,反之,样本量过大,也会有一些负面影响,还会导致成本过大。因此需要选择合适的样本量。(可以使用在线工具计算得出最小样本量)
根据中心极限定理,基于正态分布,计算样本量
4.4.2 确定实验周期
时长 = 最小样本量/试验桶天均流量
此外,需要考虑两大因素影响:
- 周期性:当需要考察的指标自身带有周期性特征时,那么在试验中就必须要考虑到周期性影响,不能单纯地根据结果显著性来做决策
- 新奇效应:刚上线新策略时用户的兴趣值较高,从而引发新奇效应;随着时间推进,用户的新奇感会逐渐消失。所以,在做 A/B 测试时,我们需要评估引入的新策略能否引发新奇效应,从而判断当获得显著结果时,是否需要延长试验周期以得到稳定的结果
4.4.3 AA测试
- 定义:指比较同一变量同一个版本的测试(例如新版本)
- 目的:检验AB测试结果的波动性、AB测试的用户分流设计是否合理等。如果AB测试设计合理,那么AA测试将得出实验组和对照组没有显著性差异的结论。但是如果 AA 测试结果差异显著,说明本次实验变量本身的效果波动就很大,原来 AB 测试的结果也不够置信。(一般原因是分流的随机性不够。需要对测试对象进行再随机分组,重新进行统计检验,可能要重复多次,直到检验不出现显著性差异为止)
- AA测试发现差异过大的原因:样本量不足,出现第一类错误,实验观测周期短,分流不科学,观测指标本身不合理,组间均值差异过大,指标波动性大。
4.4.4 辛普森悖论
- 定义:A组的各项分数比B组的高,但是汇总起来,A组的数据却比B组的低
- 原因:两组在不同项的数据分布不一致导致
- 如何减少辛普森悖论产生的可能:
- 1)分析测试结果前,做好合理性检验
- 2)进行合理正确的流量分割
- 3)如果我们觉得两个变量对实验结果都有影响,那就应该把这两个变量放在同一层进行互斥实验,不要让一个变量的实验动态影响另一个变量的实验。
- 4) 在实验实施上,我们要对实验结果进行多维度的细分分析。例如,一个实验版本提升了总体活跃度,但可能降低了年轻用户群体的活跃度,那么这个实验版本可能算不上好版本
4.5 流量设计
4.5.1 互斥实验
1 个用户只能出现在 1 个组中。但是实际情况中,经常是一次上线多个实验,在每组实验放量10%的情况下,整体流量最多只能开展10个实验,效率很低。因此通过用户分层和流量复用方法,
对照组流量+实验组1流量+实验组2流量=全体实验流量
4.5.2 正交实验
同一批用户可以出现在不同的实验层。每个实验层之间无干扰,每一层用完的流量进入下一层时,一定均匀的重新分配。B1 分层流量 = B2 分层流量 = 实验组流量
4.5.3 圈层实验
通常手中比较大的增长点做完了,更多的会去做用户的精细化运营,满足某些用户群体没有被很好满足到的需求,以带来业务上的增长。(单独的业务群体或需求的实验)
4.6 实验与评估
4.6.1 Z检验公式
- 绝对值类指标
比率类指标
4.6.2 两类错误
- 第一类错误: 其表示一个功能的改动,本来不能带来任何收益,但是我们误以为它能给我们带来收益。
- 第二类错误: 其表示一个好的产品,本来可以带来收益,但是由于统计误差,导致我们误以为它不能给我们带来收益。
- 关注重点: 往往在实际的工作中,第一类错误是我们更加不能接受的。
- 避免两类错误:增加样本量、控制显著性水平α、考虑统计功效β、多次独立重复实验、仔细选择样本(样本具有代表性)
4.6.3 实验流程评估
- 整体指标分析:通过实验指标的点估、区间估计、P 值、实验指标趋势等,评估改动策略效果是否显著。
- 下钻指标维度:当实验重点关注部分群体时,分析中往往对用户进行下钻,聚焦用户评判效果;或者当实验效果不及预期时,会下钻维度分析原因。
- case抽取分析:当实验正负向较明显时,可以将极端 case 单拎出来,分析可能的原因
4.6.4 实验效果
- 不显著原因:第一类:线上改动策略不佳,无明显差异。;第二类:实验灵敏度不够高。
- 针对第二类问题的解决方法:增加样本量、减少样本的方差、更换为方差更小的实验指标
4.6.5 实验统计显著,实际不显著
可能是因为在AB测试中选取的样本量过大,导致和总体数据量差异很小,因此会发现在统计上是显著的,但是在实际案例中可能变得不显著。例如,在优化app的实验中,将启动时间缩短了0.001s,结果在统计学上对应的p值很小,也就是在统计学是显著的,但是实际用户使用中,用户对于0.001s差异感知不到,因此实际效果不显著。
4.7 实验数据驱动决策
AB试验的最终目标是为了提升业务目标
那么在收集到试验结果数据之后,需要考虑什么?
- 试验结果是否可信,是否具备统计显著性
- 统计功效β是否充足(通常根据是否大于 80% 来判定)
- 试验放量之后会带来哪些风险,风险处理的预备方案是什么?
- 显著结果往往比较容易判断,可以通过增加统计功效来提升真实显著的几率。但对于一些差异不显著的试验,就需要在试验方案中做出取舍,我们需要明确决策对未来可能产生的影响,并让影响尽量控制在可预测的范围内,而非局限于根据某个单一指标来进行决策。
4.8 实验放量
4.7.1 放量流程
实验放量阶段,需要综合考虑三个因素:效率、质量、风险。 对于一个实验,我们希望在评估正向的前提下,尽快上线。但往往由于策略bug、新功能不符合预期、用户体感不好等问题,使得在放量阶段需要更加谨慎,以下为一个标准的放量流程。
第一阶段(小流量阶段)
此阶段衔接在小流量评估后,整体放量比例控制在5%以下,评估实验是否对产品北极星指标有负向影响。同时验证策略的触发,以及排查是否存在潜在风险。在无风险的前提下,建议持续3-5日左右,进入下一个阶段。
第二阶段(放量阶段)
在这个阶段,随着样本量的逐渐放开,实验的结果也会更加精准。同时,可能会出现流量压力等问题,因此在此阶段需要跟进放量,观察是否有出现问题。逐级放量建议持续至少一周,以观测周中和周末的影响。
第三阶段(长期存放阶段)
针对部分实验,如果希望长期观测实验效果,可以保留5%以下的原始策略,作为反转桶。