AB实验是辅助公司科学决策的有力工具,它可以科学严谨地评估功能/UI/策略/营销等改动的效果,为后续迭代、扩量提供指导。
每分每秒都有大量AB实验正在运行,这些实验不断影响着公司或大或小的决策,正因如此,正确理解、正确使用AB实验显得十分必要。
本文旨在介绍AB实验背后主要的统计学原理和方法------假设检验、最小样本量的基本概念,以及在实操过程中如何使用这两种技术:如何在实验后运用假设检验做出科学严谨的实验结论,如何在实验前测算最小样本量保证实验具备足够的统计功效。期望通过本文能对正确理解和使用AB实验有所助益。
一、讨论范围
下图罗列了部分常用的假设检验种类及其使用场景:
本文仅讨论AB实验中id随机分流场景下,最常见的两种假设检验方法和其相应的最小样本量测算:
检验方法 | 适用场景 | 举例 |
---|---|---|
独立样本t检验 | id分流,检验某一个实验组和对照组间均值是否有差异 | 用户id分流,检验人均完单量 |
独立样本z检验 | id分流,检验某一个实验组和对照组间比率是否有差异 | 订单id分流,检验订单配对率 |
以下几种场景不适用本文介绍的方法:
- 粗粒度的分流方式:如货拉拉场景下的时间片轮播、城市群交替轮播等(需使用Bootstrap)。
- 多个分组的联合检验:如组1、组2、组3均值/比率是否一致(需使用ANOVA / 卡方检验)。
- 分流单元和分析单元不一致:如用户id分流的AB实验需要检验订单配对率(需使用Delta Method / Bootstrap)。
- 实验不满足SUTVA原则(实验组个体和对照组个体不相互独立,存在相互干扰)。
以上部分场景在本系列的其他文章将会介绍。
二、假设检验
2.1. 基本流程
在获得 AB实验 数据以后,需要运用假设检验来判断实验组和对照组的差异仅仅是数据波动,还是具有统计意义的收益------只有当差异足够大(大于波动阈值)时,我们才认为实验具有真实收益,因为此时差异大到不太可能单纯由波动导致。
下图展示假设检验的基本流程,其中涉及的概念会在下文介绍:
2.2. 基本概念
1. 假设检验
假设检验(中的参数检验)是先对总体的参数提出某种假设,然后利用样本数据判断假设是否成立的过程。逻辑上运用反证法,统计上依据小概率思想。
(小概率思想是指小概率事件(p值 < 0.05)在一次试验中基本上不会发生。 反证法是指先提出假设,再用适当的统计方法确定假设成立的可能性大小;如可能性小,则认为假设不成立。)
原假设 :是试验者想收集证据予以反对的假设 ,又称"零假设",记为 H0;
备择假设 :也称"研究假设",是试验者想收集证据予以支持的假设,记为 H1;
原假设和备择假设是一个完备事件组:在一项假设检验中,原假设和备择假设必有一个成立,而且只有一个成立。
AB实验 中H0和H1举例 :AB实验的目的是通过反证法证明测试版本和对照版本有明显的不同(提升),所以我们的原假设是测试版本的总体均值等于对照版本的总体均值,备择假设则是两者均值不相等。
H0 | H1 |
---|---|
测试版本的总体均值 = 对照版本的总体均值 | 测试版本的总体均值 ≠ 对照版本的总体均值 |
2. 统计量
我们常用「实验组指标 - 对照组指标」来衡量AB实验效果:
<math xmlns="http://www.w3.org/1998/Math/MathML"> Δ ^ = 实验组指标 − 对照组指标 \hat{Δ} = 实验组指标 - 对照组指标 </math>Δ^ = 实验组指标 − 对照组指标
<math xmlns="http://www.w3.org/1998/Math/MathML"> Δ ^ \hat{Δ} </math>Δ^实际上是一个围绕实验收益波动的随机变量(如果无法理解这一点,可以想象进行1000次AA实验,则1000次实验的收益将是一个围绕着0波动的变量)。我们对其做标准化处理,得到AB实验常用的统计量:
<math xmlns="http://www.w3.org/1998/Math/MathML"> 统计量 = Δ ^ σ ( Δ ^ ) 统计量 = \frac{\hat{Δ}}{σ(\hat{Δ})} </math>统计量 = σ(Δ^)Δ^
其形式为:(实验组指标 - 对照组指标)/(两组指标差异的标准差),在样本量充足时,统计量近似服从标准差为1的正态分布。
3. 第一类错误 & 第二类错误
第一类错误又称弃真错误,表示原假设为真时拒绝原假设的错误。
第二类错误又称取伪错误,表示原假设为假时未拒绝原假设的错误。
- α 和 β
图一
图二
图一:若H0为真,则统计量落入拒绝域(红)的概率为α
图二:两组实际存在差异,但统计量未落入拒绝域(红)概率为β
第一类错误发生的概率记为 α (Alpha)。α 又称显著性水平。其业务含义是实验组和对照组实际无差异,但我们根据数据结果误判为有差异的概率。
α是一个需要我们提前设定的概率值。由于相比第二类错误,第一类错误更加严重,因此 α 取值应尽可能小。最常用的 α 值是 0.05(5%)。
我们常说的在显著性水平5%水平下显著,就是指根据实验数据我们得出两组存在差异的结论,该结论犯第一类错误的概率≤5%。
第二类错误发生的概率记为 β (Beta)。1-β 又称统计功效。统计功效会在第三部分介绍最小样本量时详细介绍。
5. 拒绝域
拒绝原假设时统计量的取值范围,统计量落入拒绝域的概率 = 显著性水平α。
α决定了拒绝域,反之也可以说拒绝域决定了α,两者可以相互推导。
6. p值 (p)
P值(P value)是当原假设为真时,观察到与样本结果相当或更极端的结果出现的概率。
如果P值低于我们提前设置的显著性水平α,根据小概率原理,我们就有理由拒绝原假设。P值越小,我们拒绝原假设的理由越充分。
2.3. 两总体均值的假设检验
1. 典型场景
- 订单id随机分流,检验订单平均价格。
- 用户id随机分流,检验用户平均完单量。
2. 建立假设
检验两个总体均值,共有三种形式:
<math xmlns="http://www.w3.org/1998/Math/MathML"> H 0 : μ 1 − μ 2 = d H_0:μ_1-μ_2=d </math>H0:μ1−μ2=d <math xmlns="http://www.w3.org/1998/Math/MathML"> H a : μ 1 − μ 2 ≠ d H_a:μ_1-μ_2\neq d </math>Ha:μ1−μ2=d【双侧检验】
<math xmlns="http://www.w3.org/1998/Math/MathML"> H 0 : μ 1 − μ 2 ≤ d H_0:μ_1-μ_2\le d </math>H0:μ1−μ2≤d <math xmlns="http://www.w3.org/1998/Math/MathML"> H a : μ 1 − μ 2 > d H_a:μ_1-μ_2>d </math>Ha:μ1−μ2>d【右单侧检验】
<math xmlns="http://www.w3.org/1998/Math/MathML"> H 0 : μ 1 − μ 2 ≥ d H_0:μ_1-μ_2\ge d </math>H0:μ1−μ2≥d <math xmlns="http://www.w3.org/1998/Math/MathML"> H a : μ 1 − μ 2 H_a:μ_1-μ_2 </math>Ha:μ1−μ2【左单侧检验】
<math xmlns="http://www.w3.org/1998/Math/MathML"> μ 1 μ_1 </math>μ1表示实验组均值, <math xmlns="http://www.w3.org/1998/Math/MathML"> μ 2 μ_2 </math>μ2表示对照组均值。在AB实验中最常见的情况是d = 0。
3. 计算统计量
当d = 0即 <math xmlns="http://www.w3.org/1998/Math/MathML"> μ 1 μ_1 </math>μ1= <math xmlns="http://www.w3.org/1998/Math/MathML"> μ 2 μ_2 </math>μ2时,统计量t的公式为:
<math xmlns="http://www.w3.org/1998/Math/MathML"> t = μ 1 ^ − μ 2 ^ s 2 ( 1 n 1 + 1 n 2 ) ∼ N ( 0 , 1 ) t=\cfrac{\hat {μ_1} -\hat {μ_2}}{\sqrt{s^2(\cfrac{1}{n_1}+\cfrac{1}{n_2})}} \sim N(0,1) </math>t=s2(n11+n21) μ1^−μ2^∼N(0,1)
其中: <math xmlns="http://www.w3.org/1998/Math/MathML"> s 2 = ∑ i = 1 n 1 ( Y 1 ( i ) − μ 1 ^ ) 2 + ∑ i = 1 n 2 ( Y 2 ( i ) − μ 2 ^ ) 2 n 1 + n 2 − 2 s^2= \cfrac{\sum_{i=1}^{n_1}{(Y_1(i)-\hat{μ_1})^2}+\sum_{i=1}^{n_2}{(Y_2(i)-\hat{μ_2})^2}}{n_1+n_2-2} </math>s2=n1+n2−2∑i=1n1(Y1(i)−μ1^)2+∑i=1n2(Y2(i)−μ2^)2
其中, <math xmlns="http://www.w3.org/1998/Math/MathML"> μ 1 ^ \hat{μ_1} </math>μ1^、 <math xmlns="http://www.w3.org/1998/Math/MathML"> μ 2 ^ \hat{μ_2} </math>μ2^分别为实验组均值和对照组均值的点估计量(即实验数据计算出的均值),
<math xmlns="http://www.w3.org/1998/Math/MathML"> Y 1 ( i ) Y_1(i) </math>Y1(i)、 <math xmlns="http://www.w3.org/1998/Math/MathML"> Y 2 ( i ) Y_2(i) </math>Y2(i)分别为组1、组2的个体。
t统计量的分子是实验组与对照组均值差异的点估计,分母是测算得出的两组均值差异的标准差。
通常而言AB实验样本量足够充足,统计量t近似服从正态分布。
4. 检验假设
在α = 0.05的条件下: <math xmlns="http://www.w3.org/1998/Math/MathML"> Z 1 − a 2 = 1.96 Z_{1-\frac{a}{2}} = 1.96 </math>Z1−2a=1.96, <math xmlns="http://www.w3.org/1998/Math/MathML"> Z a = − 1.6 Z_a = -1.6 </math>Za=−1.6, <math xmlns="http://www.w3.org/1998/Math/MathML"> Z 1 − a = 1.6 Z_{1-a} = 1.6 </math>Z1−a=1.6
Φ:正态分布CDF
当P值低于α(等价于统计量t落入拒绝域),则拒绝原假设:组1和组2存在显著差异。
否则不拒绝原假设:组1和组2不存在显著差异。
双侧检验 | 右单侧检验 | 左单侧检验 | |
---|---|---|---|
假设 | H~0~:μ~1~ = μ~2~ H~1~:μ~1~ ≠ μ~2~ | H~0~:μ~1~ ≤ μ~2~ H~1~:μ~1~ > μ~2~ | H~0~:μ~1~ ≥ μ~2~ H~1~:μ~1~ < μ~2~ |
拒绝域 | |t| ≥ Z~1-α/2~ | t ≥ Z~1-α~ | t ≤ Z~α~ |
P值 | 2-2×Φ(|t|) | 1-Φ(t) | Φ(t) |
P值决策 | P~值~ < α, 拒绝H~0~ |
2.4. 两总体比率的假设检验
1. 典型场景
- 订单id随机分流,检验订单取消率、配对率。
- 用户id随机分流,检验用户转化率。
2. 建立假设
检验两个总体比率,共有三种形式:
<math xmlns="http://www.w3.org/1998/Math/MathML"> H 0 : p 1 − p 2 = d H_0:p_1-p_2=d </math>H0:p1−p2=d <math xmlns="http://www.w3.org/1998/Math/MathML"> H a : p 1 − p 2 ≠ d H_a:p_1-p_2\neq d </math>Ha:p1−p2=d【双侧检验】
<math xmlns="http://www.w3.org/1998/Math/MathML"> H 0 : p 1 − p 2 ≤ d H_0:p_1-p_2\le d </math>H0:p1−p2≤d <math xmlns="http://www.w3.org/1998/Math/MathML"> H a : p 1 − p 2 > d H_a:p_1-p_2>d </math>Ha:p1−p2>d【右单侧检验】
<math xmlns="http://www.w3.org/1998/Math/MathML"> H 0 : p 1 − p 2 ≥ d H_0:p_1-p_2\ge d </math>H0:p1−p2≥d <math xmlns="http://www.w3.org/1998/Math/MathML"> H a : p 1 − p 2 < d H_a:p_1-p_2<d </math>Ha:p1−p2<d【左单侧检验】
<math xmlns="http://www.w3.org/1998/Math/MathML"> p 1 p_1 </math>p1表示实验组的比率, <math xmlns="http://www.w3.org/1998/Math/MathML"> p 2 p_2 </math>p2表示对照组的比率。在AB实验中最常见的情况是d = 0。
3. 计算统计量
在d = 0即 <math xmlns="http://www.w3.org/1998/Math/MathML"> u 1 u_1 </math>u1= <math xmlns="http://www.w3.org/1998/Math/MathML"> u 2 u_2 </math>u2时,统计量t的公式为:
<math xmlns="http://www.w3.org/1998/Math/MathML"> Z = ( p 1 ^ − p 2 ^ ) p ^ ( 1 − p ^ ) ( 1 n 1 + 1 n 2 ) ∼ N ( 0 , 1 ) Z = \frac{(\hat{p_1} - \hat{p_2})}{\sqrt{\hat{p}(1-\hat{p})(\frac{1}{n_1}+\frac{1}{n_2})}}\sim N(0,1) </math>Z=p^(1−p^)(n11+n21) (p1^−p2^)∼N(0,1)
其中, <math xmlns="http://www.w3.org/1998/Math/MathML"> p 1 ^ \hat{p_1} </math>p1^, <math xmlns="http://www.w3.org/1998/Math/MathML"> p 2 ^ \hat{p_2} </math>p2^分别为实验组比率和对照组比率的点估计量 (即实验数据计算出的比率), <math xmlns="http://www.w3.org/1998/Math/MathML"> p ^ = n 1 p 1 ^ + n 2 p 2 ^ n 1 + n 2 \hat{p} = \frac{n_1\hat{p_1}+n_2\hat{p_2}}{n_1+n_2} </math>p^=n1+n2n1p1^+n2p2^为两个独立样本点估计量的加权平均数,即原假设成立的情况下,总体比率p的估计量。
Z统计量的分子是实验组与对照组比率差异的点估计,分母是测算得出的两组比率差异的标准差。
通常而言AB实验样本量足够充足,统计量t近似服从正态分布。
4. 检验假设
在α = 0.05的条件下: <math xmlns="http://www.w3.org/1998/Math/MathML"> Z 1 − a 2 = 1.96 Z_{1-\frac{a}{2}} = 1.96 </math>Z1−2a=1.96, <math xmlns="http://www.w3.org/1998/Math/MathML"> Z a = − 1.6 Z_a = -1.6 </math>Za=−1.6, <math xmlns="http://www.w3.org/1998/Math/MathML"> Z 1 − a = 1.6 Z_{1-a} = 1.6 </math>Z1−a=1.6
Φ:正态分布CDF
当P值低于α(等价于Z落入拒绝域),则拒绝原假设:组1和组2存在显著差异。
否则不拒绝原假设:组1和组2不存在显著差异。
双侧检验 | 右单侧检验 | 左单侧检验 | |
---|---|---|---|
假设 | H~0~:p~1~ = p~2~ H~1~:p~1~ ≠ p~2~ | H~0~:p~1~ ≤ p~2~ H~1~:p~1~ > p~2~ | H~0~:p~1~ ≥ p~2~ H~1~:p~1~ < p~2~ |
拒绝域 | |Z| > Z~1-α/2~ | Z ≥ Z~1-α~ | Z ≤ Z~α~ |
P值 | 2-2×Φ(|Z|) | 1-Φ(Z) | Φ(Z) |
P值决策 | P~值~ < α, 拒绝H~0~ |
2.5. 单侧检验or双侧检验
双侧检验因为对于检验的正负向没有假设,符合实际工作中的大多数场景,即实验效果的方向在做实验之前并不确定,因此最常被使用。
由于双侧检验大于(小于)0的拒绝域被包含在右(左)单侧检验的拒绝域中,因此若双侧检验正(负)向显著,必有右(左)单侧检验显著。反之若单侧检验显著,不一定有双侧检验显著。因此双侧检验更为严格(更难显著)。
如果有很强的业务逻辑支持实验组有正向收益,则可选择单侧检验,否则最好选择双侧检验。
三、最小样本量测算
3.1. 基本流程
假设检验依据小概率事件思想,保证当实验本身无收益时,我们误判为有收益的概率很低(即限制了犯第一类错误的概率),保证了结论的稳健性。
但要如何限制犯第二类错误的概率,即当实验存在真实收益时,我们如何保证收益能以较大概率(即统计功效 1-β)被假设检验判定为显著?
答案是需要测算一个最小样本量,只有当样本量高于这一最小值时,实验才能达到应有的"灵敏度"。基本流程为:
MDE(Minimal Detectable Effect):最小可检测单位
3.2. 基本概念
1. 统计功效
1-β(β为第二类错误的概率) 称为统计功效 ,表示不犯第二类错误的概率。其业务含义是当实验组和对照组存在差异,我们根据假设检验结果判断两组存在显著差异的概率。通常来说需要设置统计功效为0.80,保证我们有足够高的概率得到显著的结论。
统计功效和样本量、实验效果的关系:
如下图所示,蓝色曲线(左)为H0为真时统计量的概率密度函数,橙色曲线(右)为统计量实际的概率密度函数,可以看到统计量实际均值大于0,即实验的干预效果为正。红色区域为拒绝域。则蓝色区域的面积 = β(统计量不落入拒绝域的概率)。
可以发现,在α不变时:
- 方差越小,β越小,统计功效越大(左图->中间图后,均值之差不变,方差缩小,蓝色区域β变小);
- 干预效果越明显,β越小,统计功效越大(左图->右图后,均值变大,方差不变,蓝色区域β变小);
干预效果显然不是AB实验本身能左右的。因此若想提高AB的统计功效,只有降低方差。而若想降低方差,最直接的方法只有增加样本量(另一种方法是使用方差缩减技术,本系列后续将会介绍,本文不做展开)。
图一
图二
图三
图一:初始条件下,β较大
图二:干预效果(统计量均值)不变,方差缩小 --> β变小
图三:差不变,干预效果(统计量均值)变大 --> β变小
2. MDE(Minimal Detectable Effect)
最小可检测效果,也称最小可检测单位。是在给定显著水平(α) 、统计功效(1-β) 、总样本量(n)、实验组对照组比例(K) 的情况下,实验所能检测出来的实验组和对照组之间的最小差异:MDE越小,实验越灵敏。
MDE由 α、β、n、k共同决定,可以由公式推导出来,本系列其他文章将会详细介绍,本文不作展开。
当干预效果小于MDE时,实验不显著的概率会高于β,统计功效低于1-β。因此: 业务 预期收益 (即业务预期的干预效果)必须 >= MDE,否则即使真实收益 = 业务预期收益,统计功效也达不到1 - β,或者说有>β的概率得不到显著的结论。
3.3. 最小样本量计算
在给定显著水平(α) 、统计功效(1-β) 、实验组对照组比例(K) 条件下,我们需要确定最小样本量 n,使得MDE = 实验预期收益(预期收益需要和各方沟通确定)。
也可以这么看,在给定显著水平(α) 、MDE(=实验预期收益)、实验组对照组比例(K) 条件下,我们需要确定最小样本量n,使得实验统计功效 = (1-β) 。
1. 均值型指标
A表示实验组,B表示对照组
K表示实验组和对照组样本比例
<math xmlns="http://www.w3.org/1998/Math/MathML"> μ A μ_A </math>μA表示预估实验组均值, <math xmlns="http://www.w3.org/1998/Math/MathML"> μ B μ_B </math>μB表示预估对照组均值, <math xmlns="http://www.w3.org/1998/Math/MathML"> μ A − μ B μ_A - μ_B </math>μA − μB表示MDE
Z_x表示标准正态分布x分位数
<math xmlns="http://www.w3.org/1998/Math/MathML"> n A n_A </math>nA表示计算得到的实验组最小样本量, <math xmlns="http://www.w3.org/1998/Math/MathML"> n B n_B </math>nB表示计算得到的对照组样本量
σ为预估的实验组、对照组标准差(对应于上文均值假设检验中的s)
参考:powerandsamplesize.com/Calculators...
2. 比率型指标
A表示实验组,B表示对照组
K表示实验组和对照组样本比例
<math xmlns="http://www.w3.org/1998/Math/MathML"> p A p_A </math>pA表示预估实验组比率, <math xmlns="http://www.w3.org/1998/Math/MathML"> p B p_B </math>pB表示预估对照组比率, <math xmlns="http://www.w3.org/1998/Math/MathML"> p A − p B p_A - p_B </math>pA − pB表示MDE
Z_x表示标准正态分布x分位数
<math xmlns="http://www.w3.org/1998/Math/MathML"> n A n_A </math>nA表示计算得到的实验组最小样本量, <math xmlns="http://www.w3.org/1998/Math/MathML"> n B n_B </math>nB表示计算得到的对照组样本量
参考:powerandsamplesize.com/Calculators...
3.4. 实际工作流程参考
假设实验为订单id随机分流。以两样本单侧检验,na = nb为例(即参数k为1,若流量分配不同,可调整参数k):
- α一般设为0.05,统计功效(1-β)为80%
- 确定主要指标,例如取消率,在实验开始前的平均水平,即对照组指标pa。例如大车东莞物理车型实验前,取消率在35%左右。
- 和业务侧进行沟通,估计本次实验的预计收益范围,例如预计取消率降低0.1p.p-0.5p.p.,实验组指标pb预计处在 34% - 34.5%之间。可考虑制作如下模拟运算表知会业务方:
- 和业务方沟通哪些城市可做实验,利用潜在实验城市的日均单量估算,多长时间的实验所达到的样本量能够支持多大的MDE。
3.5. 最小样本量计算工具(G*Power)介绍
最小样本量计算较复杂,实操过程中我们可以使用G*Power工具辅助进行样本量计算。
1. 使用场景
-
A priori:已知实验组对照组指标,想知道需要多大的样本才能在保证统计功效的前提下做假设检验
-
*Compromise:给定实验组对照组指标和样本量,想知道α和β的比值 ,不常用
-
Criterion:想知道在给定统计功效,实验组对照组指标和样本量的前提下,显著性水平α是多少
-
Post hoc:想知道在给定显著性水平,实验组对照组指标和样本量的前提下,统计功效β是多少,一般用来估计在没有达到最小样本量就进行假设检验时,犯第二类错误的概率。
-
Sensitivity:给定α,β,和样本量,计算MDE
2. 基本使用方式:
2.1 主界面
2.2 计算日志
2.3 按指标分类的各类检验目录
2.4 相关指标可视化
填好参数后点击"X-Y plot for a range of values"
填入需要观察的信息,点击Draw plot
四、结语
本文介绍了较多AB实验中的统计学概念,以及如何正确使用假设检验、最小样本量方法,保证实验的科学性。
一个科学的AB实验可以让我们以客观中立的视角看待数据,评估、选择出最好的策略,以满足货运双边市场中不同行业人群的需求。
通过本文若能建立一个对AB实验虽基础但正确的认知,也将对后续深入了解货拉拉数据科学组AB实验白皮书系列中更为进阶的内容大有帮助。