AB实验统计学基础:假设检验和最小样本量

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. 第一类错误 & 第二类错误

第一类错误又称弃真错误,表示原假设为真时拒绝原假设的错误。

第二类错误又称取伪错误,表示原假设为假时未拒绝原假设的错误。

  1. α 和 β

图一

图二

图一:若H0为真,则统计量落入拒绝域(红)的概率为α

图二:两组实际存在差异,但统计量未落入拒绝域(红)概率为β

第一类错误发生的概率记为 α (Alpha)。α 又称显著性水平。其业务含义是实验组和对照组实际无差异,但我们根据数据结果误判为有差异的概率。

α是一个需要我们提前设定的概率值。由于相比第二类错误,第一类错误更加严重,因此 α 取值应尽可能小。最常用的 α 值是 0.05(5%)。

我们常说的在显著性水平5%水平下显著,就是指根据实验数据我们得出两组存在差异的结论,该结论犯第一类错误的概率≤5%。

第二类错误发生的概率记为 β (Beta)。1-β 又称统计功效。统计功效会在第三部分介绍最小样本量时详细介绍。

5. 拒绝域

拒绝原假设时统计量的取值范围,统计量落入拒绝域的概率 = 显著性水平α。

α决定了拒绝域,反之也可以说拒绝域决定了α,两者可以相互推导。

6. p值 (p)

P值(P value)是当原假设为真时,观察到与样本结果相当或更极端的结果出现的概率。

如果P值低于我们提前设置的显著性水平α,根据小概率原理,我们就有理由拒绝原假设。P值越小,我们拒绝原假设的理由越充分。

2.3. 两总体均值的假设检验

1. 典型场景

  1. 订单id随机分流,检验订单平均价格。
  2. 用户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):

  1. α一般设为0.05,统计功效(1-β)为80%
  2. 确定主要指标,例如取消率,在实验开始前的平均水平,即对照组指标pa。例如大车东莞物理车型实验前,取消率在35%左右。
  3. 和业务侧进行沟通,估计本次实验的预计收益范围,例如预计取消率降低0.1p.p-0.5p.p.,实验组指标pb预计处在 34% - 34.5%之间。可考虑制作如下模拟运算表知会业务方:
  1. 和业务方沟通哪些城市可做实验,利用潜在实验城市的日均单量估算,多长时间的实验所达到的样本量能够支持多大的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实验白皮书系列中更为进阶的内容大有帮助。

相关推荐
huapiaoy10 分钟前
Redis中数据类型的使用(hash和list)
redis·算法·哈希算法
冷白白23 分钟前
【C++】C++对象初探及友元
c语言·开发语言·c++·算法
鹤上听雷32 分钟前
【AGC005D】~K Perm Counting(计数抽象成图)
算法
一叶祇秋44 分钟前
Leetcode - 周赛417
算法·leetcode·职场和发展
武昌库里写JAVA1 小时前
【Java】Java面试题笔试
c语言·开发语言·数据结构·算法·二维数组
ya888g1 小时前
GESP C++四级样题卷
java·c++·算法
Funny_AI_LAB1 小时前
MetaAI最新开源Llama3.2亮点及使用指南
算法·计算机视觉·语言模型·llama·facebook
NuyoahC1 小时前
算法笔记(十一)——优先级队列(堆)
c++·笔记·算法·优先级队列
jk_1011 小时前
MATLAB中decomposition函数用法
开发语言·算法·matlab
penguin_bark2 小时前
69. x 的平方根
算法