AB测试完全指南:原理、流程、案例及面试攻略
AB测试完全指南:原理、流程、案例及面试攻略
AB测试是验证产品功能改动效果的重要手段,在数据分析面试中也经常被考察。本文将从理论到实践,详细讲解AB测试的原理、流程、样本量计算、流量分割、效果验证等内容,并提供面试常见问题的解答。
AB测试原理简介
什么是AB测试?
AB测试来源于假设检验,通过对比两个随机均匀的样本组A和B,对其中一个组A做出某种改动,实验结束后分析两组用户行为数据,通过显著性检验,判断这个改动是否对核心指标产生显著影响。
在这个实验中,我们的假设检验如下:
- 原假设H0:这项改动不会对核心指标有显著的影响
- 备选假设H1:这项改动会对核心指标有显著影响
如果在实验后通过显著性检验发现P值足够小,我们则推翻原假设,证明这项改动会对我们所关注的核心指标产生显著影响,否则接受原假设,认为该改动未产生显著影响。
AB测试的一般流程
AB测试涉及产品、开发、数据部门,流程较长,环节较复杂。一般包括以下步骤:
- 与产品或项目经理确定实验的改动点
- 设计实验所需观测的核心指标(如点击率、转化率等)
- 计算实验所需的最少样本流量
- 结合日均活跃用户量计算实验持续时间
- 设计流量分割策略,保证样本随机均匀分布
- 通过小流量进行灰度实验验证
- 正式发版后进行显著性检验
明确改动点和观测指标
明确改动点
实验开始前需要明确实验变量,保证"单一因素原则",即每个实验只评估一个影响因素。
明确观测指标
观测指标分为两类:
- 绝对值类指标:如DAU、平均停留时长等,较少作为AB测试的观测指标。
- 比率类指标:如点击率、转化率等,AB测试观测的大部分指标属于此类。
区分不同类型的观测指标很重要,因为这会影响样本量的计算。
样本量、实验周期计算
AB测试样本量计算
A/B 测试样本量的选取基于大数定律和中心极限定理。在计算样本量之前,需要了解大数定律和中心极限定理:
- 大数定律:当试验条件不变时,随机试验重复多次以后,随机事件的频率近似等于随机事件的概率。
- 中心极限定理:对独立同分布且有相同期望和方差的n个随机变量,当样本量很大时,样本的均值近似服从标准正态分布N(0,1)。
每一个实验组所需的样本量计算公式如下:
在这个公式中:
- σ代表样本数据的标准差,衡量整体样本数据的波动性
- δ代表实验组和对照组两组数据的差值
- α和β分别代表犯第一类错误的概率和第二类错误的概率
当观测的指标为绝对值类型/比率型指标时,样本的标准差的计算公式有所差异:
绝对值类指标:
比率类指标:
其中PA、PB分别为对照组和实验组的观测数据。
样本量计算工具
安利一个在线计算工具:Evans awesome AB Tools(https://www.evanmiller.org/ab-testing/sample-size.html)。使用该工具时,需要理解以下关键指标:
- baseline conversion rate:开始实验前对照组的表现情况,对应PA
- minimum detectable effect:预期带来的提升,对应δ
- significance level:显著性水平,对应α
- statistical power:统计功效,对应1-β
该工具不仅可以计算AB测试的样本量,还可以进行结果验证,包括卡方检验、T检验、方差分析等。
AB测试流量分割
辛普森悖论
流量分割的目的是避免"辛普森悖论"。例如,对APP按钮颜色调整进行AB测试时,如果性别特征没有均衡分布在两组中,可能导致细分结果与总计结果相悖。
分流分层原理
流量分割常用分流和分层两种方式:
- 分流:按地域、性别、年龄等将用户均匀分为几组,每个用户只能出现在一组中。
- 分层:同一份流量可以分布在多个实验层,前提是各实验层之间无业务关联。
分流分层模型
对以上模型进行解释:
- 分流:组1、组2通过分流方式分为两组流量,组1和组2互斥,即组1+组2=100%试验流量。
- 分层:流量流过组2中的B1层、B2层、B3层时,各层流量与组2流量相等,实现流量复用。
- 扩展:流量流过组2中的B1层时,又把B1层分为B1-1、B1-2、B1-3,这些层之间互斥,即B1-1层+B1-2层+B1-3层=B1层。
根据以上规则,可以不断扩展组和层,但要与实际业务相匹配,避免结构过于复杂或简单。
使用场景
对于整体运营活动(如春节红包),需要使用组1来评估。剩余的组2流量,则可以划分为多个无业务关联的层,实现流量复用。
AB测试效果验证
测试效果显著性检验
AB测试后需要对结果进行显著性检验。例如,假设运行AB测试一周,分别对1000个样本进行测试,对照组A的点击率为7.5%,B的点击率为9%。能否得出B比A好的结论?有多大的可能是随机因素导致的差异?
Z检验
Z检验适用于大样本(样本容量大于30)的两组平均数之间差异显著性检验。其一般步骤如下:
- 建立原假设 H0:μ1 = μ2
- 计算统计量Z值
- 与理论Z值比较
当观测的指标为绝对值类型/比率型指标时,Z值的计算公式有所不同。
理论Z值
样本的统计量Z值可以通过公式计算,理论Z值可以通过查询Z值表或使用Excel的NORM.S.INV函数计算。
样本统计量Z值vs理论Z值比较
假设通过公式计算的统计量Z值 = 1.22,小于95%置信水平对应理论Z值1.96,说明差异不显著。增加样本量后,如果统计量Z值超过理论Z值,则可以认为B比A好。
工具验证
使用Evans AB Tools进行验证,分别输入对照组和实验组的比率类指标对应的分子、分母和置信水平Confidence level。例如,第一周实验中,对照组A为75/1000,实验组B为90/1000,设置置信水平为95%,得出两组无显著性差异。增加样本量后,得出两组有显著差异,且实验组B效果更好。
AB测试常见面试题
第一类错误vs第二类错误
第一类错误代表一个功能改动本来不能带来收益,但误认为能带来收益。第二类错误代表一个好产品误认为不能带来收益。在实际工作中,第一类错误更不可接受,因为坏的产品上线可能严重影响用户体验和留存。
统计显著vs实际显著
如果AB测试结果在统计上显著但在实际中不显著,可能是因为样本量过大导致即使细微差异也统计显著。例如,APP启动时间优化0.001秒在统计学上可能显著,但实际中用户感知不到。
AB测试效果统计上不显著
如果AB测试指标统计上不显著,可以将指标按天拆分观察。如果实验组每天表现都优于对照组,即使统计上不显著,也可以考虑上线。
实验组优于对照组就能上线?
不一定。例如,视觉效果优化可能以增加用户等待时间为代价。因此,需要综合评估所有方面指标变动,才能决定是否上线。
AB测试是必须的吗?
不是绝对的。对于小改动,可以通过开关形式让用户选择,或通过用户调研等方式验证效果。
AB测试的其他变式考法
面试中可能会通过询问如何验证某个数字的显著性或分析项目收益等方式考察AB测试知识。需要展示思维广度,知道在不同情况下采用不同分析方法。