AB实验假设检验方法:Delta Method

4,999 阅读10分钟

在货运AB实验的场景中,分流单元与分析单元不一定相同。当分流单元与分析单元不一致时,常用的假设检验方法会使得指标方差被错误计算,影响统计量与p值的计算,对检验结果造成干扰。

以在订单分流实验中,检验 GTV Gross Transaction Value 配对率 差异的显著性为例。

该实验分流单位是订单ID,而GTV配对率的分析单位是交易单元,即¥1。此时分流单位与分析单位出现了不一致的现象。

当前GTV配对率的假设检验方法为单量校正法。定义检验统计量ZZ

Z=ΔrVar(Δr) = r1^r2^r^(1r^)(1n1+1n2)Z = \dfrac{\Delta r}{\sqrt{Var(\Delta r)}} = \dfrac{\widehat{r_1} - \widehat{r_2}}{\sqrt{\widehat{r}(1-\widehat{r})(\frac{1}{n_1}+\frac{1}{n_2})}}

其中变量及其指标含义分别对应下表。

image.png

本文提出了基于Delta Method的假设检验计算,通过构造Var(Δr)\sqrt{Var(\Delta r)}的无偏估计,从而得到假设检验统计量,解决分流单元与分析单元不一致时,犯第一类错误概率过高的问题。同时会结合Bootstrap方法,比较两种纠偏方法的效率。

1、理论基础

1、Delta Method

Delta Method在统计里通常可用来求渐近分布。利用连续可导的函数,将一种或多种随机变量转化为新的随机变量,可用于求样本均值、样本矩函数等。

1. 公式

Delta Method的公式有单变量与多变量两种形式,多变量的公式如下:

对于多元随机变量序列{Y(1), , Y(p)}\{Y^{(1)}, \cdots, Y^{(p)}\},定义Y=[Y(1), , Y(p)]T\vec{Y}=[Y^{(1)}, \cdots, Y^{(p)}]^T,假设Y\vec{Y}满足渐近正态性,则

n[Yθ]dN(0,Σ)\sqrt{n}[\vec{Y} - \theta] \stackrel{d}{\longrightarrow} N(0, \Sigma)

其中θ=[θ1, , θn]T\vec{\theta}=[\theta_1, \cdots, \theta_n]^TΣ\Sigma分别为Y\vec{Y}对应的期望与协方差。

给定多元函数gg,若ggθ\vec{\theta}处的梯度g(θ)\nabla g(\vec{\theta})存在且不为0\vec{0},则

n[g(Y)g(θ)]dN(0,Tg(θ) Σ  g(θ))\sqrt{n}\left[g(\vec{Y}) - g(\vec{\theta})\right] \stackrel{d}{\longrightarrow} N\left(0, \nabla^T g(\vec{\theta}) \cdot \Sigma \cdot \nabla g(\vec{\theta}) \right)

梯度g(θ)=[gY(1)(θ1),, gY(p)(θp)]T\nabla g(\vec{\theta})=\left[\frac{\partial g}{\partial Y^{(1)}}(\theta_1), \cdots, \frac{\partial g}{\partial Y^{(p)}}(\theta_p) \right]^T

协方差矩阵

Σ = [Var(Y(1)) Cov(Y(1),Y(p)) Cov(Y(p),Y(1)) Var(Y(p))]\Sigma = \begin{bmatrix} Var(Y^{(1)}) & \cdots& Cov(Y^{(1)}, Y^{(p)})\\ \vdots & \ddots& \vdots\\ Cov(Y^{(p)}, Y^{(1)}) & \cdots& Var(Y^{(p)}) \end{bmatrix}

2. Delta Method在AB实验中的应用

以GTV配对率为例

GTV配对率是反映交易金额转化效率的指标,其计算公式为 GTV配对率 = 配对GTV / 执行单GTV 。在订单ID分流的实验中,业务方与分析师会对比不同实验分组间该指标的差异,从而判断策略是否能够提升交易效率。

2.1 分流单元与分析单元一致化

记GTV配对率为rr,改写公式

r=GTV配对率=配对GTV执行单GTV= 配对GTV/执行单量执行单GTV/执行单量r=GTV配对率 = \frac{配对GTV}{执行单GTV} = \frac{配对GTV/执行单量}{执行单GTV/执行单量}

定义Xˉ\bar{X}配对GTV /执行单量,代表每笔执行单对应的配对金额均值;

Yˉ\bar{Y}执行单GTV/执行单量,即执行单的单均价格。

此时Xˉ\bar{X}Yˉ\bar{Y}都是分析单位为订单ID的指标,

GTV配对率也变成了两个分流单元与分析单元一致的指标之商。

2.2 利用Delta Method计算方差

Xˉ\bar{X}Yˉ\bar{Y}是反映单均价的指标,根据中心极限定理,其分布渐近服从正态分布。

n[XˉμX]dN(0,σX2)      n[YˉμY]dN(0,σY2)\sqrt{n}[\bar{X} - \mu_X] \stackrel{d}{\longrightarrow} N(0, \sigma_X^2)      \sqrt{n}[\bar{Y} - \mu_Y] \stackrel{d}{\longrightarrow} N(0, \sigma_Y^2)

定义函数g(x,y)=x/yg(x,y) = x/y,则有r=g(Xˉ,Yˉ)r=g(\bar{X}, \bar{Y})

不难发现gg为连续可导函数,且梯度为g = [1/y,x/y2]T\nabla g = [1/y, -x/y^2]^T

利用Delta Method,可以求出rr的方差

Var(r)  = Var(g(Xˉ,Yˉ)) = Tg(Xˉ,Yˉ)Σg(Xˉ,Yˉ)  = [1/YˉXˉ/Yˉ2][Var(Xˉ)Cov(Xˉ,Yˉ)Cov(Xˉ,Yˉ)Var(Yˉ)][1/YˉXˉ/Yˉ2]  = VarXˉYˉ2  2XˉYˉ3Cov(Xˉ,Yˉ) + Xˉ2Yˉ4VarYˉ   1nμX2μY2[σX2μX2 2σXYμXμY + σY2μY2  ]\begin{aligned} Var(r) & = Var(g(\bar{X}, \bar{Y})) = \nabla^T g(\bar{X}, \bar{Y})\cdot\Sigma\cdot\nabla g(\bar{X}, \bar{Y}) \\ & =  \begin{bmatrix} 1/\bar{Y}&-\bar{X}/\bar{Y}^2 \end{bmatrix} \begin{bmatrix} Var(\bar{X})&Cov(\bar{X},\bar{Y})\\ Cov(\bar{X},\bar{Y})&Var(\bar{Y}) \end{bmatrix} \begin{bmatrix} 1/\bar{Y}\\-\bar{X}/\bar{Y}^2 \end{bmatrix} \\ & = \dfrac{Var\bar{X}}{\bar{Y}^2} - 2\dfrac{\bar{X}}{\bar{Y}^3}Cov(\bar{X},\bar{Y}) + \dfrac{\bar{X}^2}{\bar{Y}^4}Var\bar{Y} \\ & \rightarrow \frac{1}{n}\frac{\mu_X^2}{\mu_Y^2} \left[\dfrac{\sigma_X^2}{\mu_X^2} - 2\dfrac{\sigma_{XY}}{\mu_X\mu_Y} + \dfrac{\sigma_Y^2}{\mu_Y^2}  \right] \end{aligned}

(X1,Y1),,(Xn,Yn)(X_1, Y_1), \cdots, (X_n, Y_n)为样本对,则可得到下列无偏估计

{μX^=1ni=1nXiμY^=1ni=1nYiσX2^=1n1i=1n(XiμX^)2σY2^=1n1i=1n(YiμY^)2σXY^=1n1i=1n(XiμX^)(YiμY^)\left\{ \begin{aligned} \widehat{\mu_X}&=\frac{1}{n}\sum_{i=1}^nX_i\\ \widehat{\mu_Y}&=\frac{1}{n}\sum_{i=1}^nY_i\\ \widehat{\sigma_X^2}&=\frac{1}{n-1}\sum_{i=1}^n(X_i-\widehat{\mu_X})^2\\ \widehat{\sigma_Y^2}&=\frac{1}{n-1}\sum_{i=1}^n(Y_i-\widehat{\mu_Y})^2\\ \widehat{\sigma_{XY}}&=\frac{1}{n-1}\sum_{i=1}^n(X_i-\widehat{\mu_X})(Y_i-\widehat{\mu_Y})\\ \end{aligned} \right.

将无偏估计带入计算公式,即可得到rr的方差估计Var(r)^\widehat{Var(r)}

2.3 构造假设检验与计算统计量

在订单ID随机分流的AB实验中,记实验组的样本对为(X1(t),Y1(t)),,(Xn(t),Yn(t))(X_1^{(t)}, Y_1^{(t)}), \cdots, (X_n^{(t)}, Y_n^{(t)}),GTV配对率r(t)^=i=1nXi(t)/i=1nYi(t)\widehat{r^{(t)}}=\sum_{i=1}^nX_i^{(t)} \bigg/ \sum_{i=1}^nY_i^{(t)};对照组的样本对为(X1(c),Y1(c)),,(Xm(c),Ym(c))(X_1^{(c)}, Y_1^{(c)}), \cdots, (X_m^{(c)}, Y_m^{(c)}),GTV配对率r(c)^=j=1mXi(c)/j=1mYi(c)\widehat{r^{(c)}}=\sum_{j=1}^mX_i^{(c)} \bigg/ \sum_{j=1}^mY_i^{(c)}。业务方想判断策略是否会对GTV配对率产生显著影响,故可建立假设检验

H0:r(t)=r(c)  H1:r(t)r(c)H_0:r^{(t)} = r^{(c)} \quad H_1:r^{(t)} \neq r^{(c)}

利用2.2的公式推导,可以利用不同实验分组的样本矩估计,计算得到GTV配对率的方差估计Var(r(t)^),Var(r(c)^)Var(\widehat{r^{(t)}}), Var(\widehat{r^{(c)}})

在得到样本均值与方差估计后,即可得到检验统计量的公式为

Z=Δr^VarΔr^=r(t)^r(c)^Var(r(t)^r(c)^)=r(t)^r(c)^Var(r(t)^)+Var(r(c)^)Z=\dfrac{\widehat{\Delta r}}{\sqrt{\widehat{Var\Delta r}}} =\dfrac{\widehat{r^{(t)}}-\widehat{r^{(c)}}}{\sqrt{Var\left(\widehat{r^{(t)}}-\widehat{r^{(c)}}\right)}} =\dfrac{\widehat{r^{(t)}}-\widehat{r^{(c)}}}{\sqrt{Var(\widehat{r^{(t)}})+Var(\widehat{r^{(c)}})}}

在样本量充足的情况下,ZZ近似服从标准正态分布,因此可直接求得p值,并通过比较p值与α\alpha的大小判断GTV配对率差异是否显著。

2、Bootstrap方法

Bootstrap 是现代统计学较为流行的一种统计方法。通过对给定数据集进行有放回的重抽样以创建多个数据子集,生成统计量的经验分布,可以计算标准误差、构建置信区间并对多种类型的样本统计信息进行假设检验,其应用范围逐步扩大,是目前业界对工业化 ABTEST 实验效果常见的处理方法。

在实验中我们采用非参数的 Bootstrap 方法,其核心思想和基本步骤如下:

  1. 假设原始样本数量为 NN,通过 有放回的重抽样 从原始样本中抽取NN个样本,此过程允许重复抽样

  2. 根据抽出的样本计算给定的统计量的估计量θ^\hat{\theta}

  3. 重复上述次(一般大于1000),得到次(一般大于1000),得到个统计量θ1^,,θB^\hat{\theta_1},\cdots,\hat{\theta_B}

  4. 计算上述BB个统计量的估计量,如均值、方差等,得到原样本的均值与方差等统计量。

    a. 利用Bootstrap方法得到的统计量均值的无偏估计为θ^ˉ=i=1Bθi^/B\bar{\hat{\theta}}=\sum_{i=1}^B\hat{\theta_i}/B,方差的无偏估计为se^2(θ^)=1B1i=1B(θi^θ^ˉ)2\hat{se}^2(\hat{\theta})=\frac{1}{B-1}\sum_{i=1}^B(\hat{\theta_i}-\bar{\hat{\theta}})^2

  5. 计算置信区间,若实验组观测指标落在置信区间内,则说明不同实验分组无显著差异,否则说明差异显著。

    a. 标准Bootstrap(SB)

    标准Bootstrap方法计算CI是以bootstrap计算的出的样本均值、样本方差构造的标准CI的计算方法。根据中心极限定理,θ^E(θ^)se(θ^)\frac{\hat{\theta}-E(\hat{\theta})}{se(\hat{\theta})}近似服从标准正态分布,则标准Bootstrap的置信区间为

    (θ^ˉz1α/2se^(θ^),θ^ˉ+z1α/2se^(θ^))(\bar{\hat{\theta}}-z_{1-\alpha/2}\cdot\hat{se}(\hat{\theta}),\bar{\hat{\theta}}+z_{1-\alpha/2}\cdot\hat{se}(\hat{\theta}))

    b. 百分位数 Bootstrap(PB)

    百分位数的Bootstrap直接用θ^\hat{\theta}的分布来估计,在通过Bootstrap构造了θ^\hat{\theta}及其分布后,可直接利用其分位数构造置信区间,形式为

    (θ^α/2, θ^1α/2)(\hat{\theta}_{\alpha/2}, \hat{\theta}_{1-\alpha/2})

    c. t百分位数Bootstrap(PTB)

    t百分位数Bootstrap是对SB、PB的一种融合,后者对分布要求过高, (无偏且近似正态) ,通常可以得到比PB更加精确的CI。统计量θ^E(θ^)se(θ^)\frac{\hat{\theta}-E(\hat{\theta})}{se(\hat{\theta})}服从自由度为BB-的学生t分布,令该分布的1α/21-\alpha/2分位数t=t1α/2(B1)t^{\star}=t_{1-\alpha/2}(B-1),则PTB的置信区间为  

    (θ^ˉtse^(θ^),θ^ˉ+tse^(θ^))(\bar{\hat{\theta}}-t^{\star}\cdot\hat{se}(\hat{\theta}),\bar{\hat{\theta}}+t^{\star}\cdot\hat{se}(\hat{\theta}))

2、不同假设检验方法模拟数据对比

1. 订单ID随机分流

1.1 对比方案

为了更直观地理解使用错误的方差所带来的危害,利用当前真实数据模拟AA实验。实验信息如下:

模拟对象 某城市当日的订单(共xxx笔订单)
模拟方式 将全体订单随机均匀划分为2组,模拟1000次AA实验
检验对象 不同分组的指标差异
- 配对率——作为对照指标,验证划分的随机性
- GTV配对率——验证不同检验方法的科学性
检验方法 - 原始方法
- 单量校正法
- Delta Method
- 分位数Bootstrap法
评估指标 - 犯第一类错误的概率
- 不同指标差异显著性下的分布

1.2 对比结果

在GTV配对率差异的假设检验计算中,Delta Method可有效控制犯第一类错误的概率,相对Bootstrap效率更高。

Delta Method与分位数Bootstrap法中,犯第一类错误的概率与α\alpha取值接近。原始方法与单量校正法中,犯第一类错误的概率过大,原始方法的拒绝域区间宽度过窄,稍有偏差就会导致第一类错误的发生。

Bootstrap方法虽然准确,但复杂度过高,需要对全体样本有放回地抽样,计算时间长,相较之下Delta Method方法效率更高。

犯第一类错误的次数犯第一类错误的概率置信区间长度置信区间标准差
配对率差异检验555.5%
原始方法94894.8%8E-048E-09
单量校正法43143.1%8E-030E+00
Delta Method595.9%2E-023E-05
分位数Bootstrap585.8%1E-023E-04

2. 用户ID随机分流

2.1 对比方案

实验信息如下:

模拟对象 某城市当日的下单用户(共xxx人)
模拟方式 将全体订单随机均匀划分为2组,模拟1000次AA实验
检验对象 不同分组的指标差异
- 人均下单量——作为对照指标,验证划分的随机性
- 下单配对率——验证不同检验方法的科学性
检验方法 - 原始方法
- Delta Method
- 分位数Bootstrap法
评估指标 - 犯第一类错误的概率
- 不同指标差异显著性下的分布

2.2 对比结果

在用户下单配对率的假设检验计算中,Delta Method可有效控制犯第一类错误的概率,相对Bootstrap效率更高。

三种方法的MDE接近,但是犯第一类错误的概率差异较大。Delta Method与分位数Bootstrap法犯第一类错误的概率与α\alpha取值接近,而原始方法犯第一类错误的概率过大。

犯第一类错误的次数犯第一类错误的概率置信区间长度置信区间标准差
人均下单量差异检验555.5%
原始方法13013.0%8E-035E-08
Delta Method383.8%1E-022E-06
分位数Bootstrap444.4%5E-032E-04

3、实际案例应用

1. 订单ID实验分流的GTV配对率差异检验

某采取订单id分流的实验,实验组的GTV配对率正向0.4p.p.。

现需要判断: GTV配对率是否显著不为0

实验组对照组绝对差异
订单数xxxxxxxxx
下单GTV(元)xxxxxxxxx
配对GTV(元)xxxxxxxxx
GTV配对率xxxxxx0.4p.p.

实验的分流单位为订单ID,而用户下单配对率的分析单元为¥1,此处不一致。

定义Xˉ\bar{X}配对GTV /执行单量Yˉ\bar{Y}执行单GTV/执行单量

函数g(x,y)=x/g(x,y) = x/,则GTV配对率r=g(Xˉ,Yˉ)r=g(\bar{X}, \bar{Y})

可利用Delta Method对GTV配对率差异作显著性检验。

对比原始方法、单量校正法与Delta Method方法可得到下表:

  • 原始方法的方差过小,进而导致统计量过大,很难得到差异不显著的结论,缺乏科学性。
  • Delta Method与单量校正法都得到不显著的结论,但Delta Method方差更大,检验结果相对更科学。
方差统计量p_value检验结果
原始方法6E-0960.000.00显著
单量校正法7E-061.600.11不显著
Delta Method2E-051.000.36不显著

2. 用户ID实验分流的差异检验

某采取用户id分流的实验,实验组的用户下单配对率负向2p.p.,用户下单量多0.6%。

现需要判断: 用户下单配对率差异是否显著不为0

实验组对照组绝对差异相对差异
用户数xxxxxxxxxxxx
用户下单量xxxxxxxxx0.60%
用户配对单量xxxxxxxxxxxx
配对率xxxxxx-2.p.p.xxx

2.1 用户下单配对率

实验的分流单位为用户ID,而用户下单配对率的分析单元为订单ID,此处不一致。

定义Xˉ\bar{X}人均配对单量Yˉ\bar{Y}人均执行单量、函数g(x,y)=x/yg(x,y) = x/y,则用户下单配对率r=g(Xˉ,Yˉ)r=g(\bar{X}, \bar{Y})

可利用Delta Method对指标差异作显著性检验。

原始方法直接对下单量、配对单量做z检验,检验结果为显著。而通过Delta Method方法估计方差后,方差变大,用户下单配对率差异由显著变为不显著。

方差统计量p_value检验结果
原始方法1E-05-7.000.00显著
Delta Method2E-04-2.000.08不显著

总结

在实验分析中,正确估计指标的方差是确保可靠结果的关键。在分流单元与分析单元不一致的情况下,Bootstrap和Delta Method都可以提供相对科学的结论。但在处理大量数据时,Bootstrap的计算成本较高,而Delta Method在满足基本假设的前提下,能够以较低的计算成本准确估计方差,显示出更高的效率。