A/B测试中的常用公式与工具
一、常用工具
1.1 实验前工具
用于实验前计算所需最小样本量的小工具:G*Power。
[候补其他语言代码]
1.2 实验后工具
用于实验后计算显著性、置信区间、效应量、MDE 的 Excel 文件:
[候补其他程序语言的计算代码]
二、符号说明与相关统计知识
2.1 符号说明
2.1.1 统计学中的常用符号
在统计学中,一般使用大写英文字母表示随机变量,使用小写英文字母表示对总体参数估计的样本统计量,使用小写希腊字母表示总体参数:
表 - 统计学中总体与样本的常用符号
参数 | 对于总体 | 对于样本 | 对于样本指标的计算公式 | 对于样本指标的Hive函数 |
---|---|---|---|---|
均值 | $\mu$ | $\overline{x}$ | $\overline{x}:=\dfrac{1}{n}\sum\limits_{i=1}^n x_i$ | avg(nvl(x,0)) ,注意是计算每个样本的平均值,下同 |
比率 | $\pi$ | $p$ | $p:=\dfrac{1}{n}\sum\limits_{i=1}^nx_i,\;x_i\in\{0,1\}$ | avg(nvl(x,0)) ,或者使用计数之比 |
方差 | $\sigma^2$ | $s^2$ | $s^2:=\dfrac{1}{n-1}\sum\limits_{i=1}^n(x_i-\overline{x})^2$ | var_samp(nvl(x,0)) ,而不是总体方差var_pop 。此外,需要注意的是,在 Hive 中variance 是总体方差,在 Spark3 中 variance 是样本方差 |
标准差 | $\sigma$ | $s$ | $s:=\sqrt{s^2}$ | stddev_samp(nvl(x,0)) ,而不是总体标准差stddev_pop |
2.1.2 A/B实验中的常用符号
两独立总体均值(或比率)之差的显著性假设检验,通常是将两总体均值(或比率)相等作为原假设:
- 原假设 $H_0$:$|\mu_t-\mu_c|=0$
- 备择假设 $H_1$:$|\mu_t-\mu_c|\ne 0$
公式中的下脚标 t 为 treat 的首字母,$\mu_t$ 指实验组的总体均值,c 为 control 的首字母,$\mu_c$ 指对照组的总体增值。
表 - 假设检验中的两类错误
表 - 假设检验中的两类错误所用符号及解读
符号 | 名称 | 条件 |
---|---|---|
$\alpha$ | 犯第Ⅰ类错误概率(显著性水平) | 错误地弃真:当 $H_0$ 成立时,拒绝 $H_0$ 的概率 |
$\beta$ | 犯第Ⅱ类错误概率 | 错误地取伪:当 $H_1$ 成立时,接受 $H_0$ 的概率 |
$1-\alpha$ | 置信水平 | 正确地接受:当 $H_0$ 成立时,接受 $H_0$ 的概率 |
$1-\beta$ | 统计功效 | 正确地拒绝:当 $H_1$ 成立时,拒绝 $H_0$ 的概率 |
表 - A/B 实验中常用的符号
指标 | 符号 |
---|---|
样本量(sample size) | $n$ |
灵敏度(MDE) | $\delta$ |
p值(p-value) | $p$ |
效应量(effect size) | $d$ |
置信区间(confidence interval) | $(\text{LCI},\,\text{UCI})$ |
2.2 统计量
【定义】统计量是样本的函数,并且要求函数中不含任何未知参数。例如,$\overline{x}$,$s$,$\min\{x_i\},$$\max{x_i}$ 都是统计量,而 $\overline{x}/\sigma$ 是否是统计量则取决于 $\sigma$ 是否已知。
【作用】通过样本估计总体参数。
【优劣】衡量一个点估计统计量的好坏主要有以下两个方面:
- 无偏性:统计量的期望等于所要估计的总体参数。例如,$\dfrac{1}{n-1}\sum_\limits{i=1}^n(x_i-\overline{x})^2$ 是 $\sigma^2$ 的无偏估计,但 $\dfrac{1}{n}\sum_\limits{i=1}^n(x_i-\overline{x})^2$ 不是。
- 有效性:统计量的方差越小越有效。例如当样本独立且样本量大于1时,$x_1$ 和 $\overline{x}$ 都是 $\mu$ 的无偏估计,但 $\mathrm{Var}(x_1)=\sigma^2>\mathrm{Var}(\overline{x})=\sigma^2/n$,所以后者更有效。
【UMVUE】一致最小方差无偏估计:一个参数的无偏估计有无穷多个,其中方差最小的那个就是 UMVUE。
2.3 中心极限定理
2.3.1 独立同分布下的中心极限定理
林德伯格-莱维(Lindeberg-Lévy)中心极限定理:设 $\{X_n\}$ 是独立同分布的随机变量序列,且 $\mathrm{E}(X_i)=\mu$,$\mathrm{Var}(X_i)=\sigma$ 存在,记
$$ Y_n=\dfrac{X_1+X_2+\cdots+X_n-n\mu}{\sigma\sqrt{n}}=\dfrac{\overline{x}-\mu}{\sqrt{\sigma^2/n}}. $$
则对任意实数 $y$,有
$$ \lim_{n\rightarrow\infty}\mathrm{P}(Y_n\leqslant y)=\Phi(y)=\dfrac{1}{\sqrt{2n}}\int_{-\infty}^y \mathrm{e}^{-\frac{t^2}{2}}\mathrm{d}t. $$
从形式上,可记为:
$$ \dfrac{\overline{x}-\mu}{\sqrt{\sigma^2/n}}=\dfrac{\overline{x}-\mu}{\sigma_{\overline{x}}}={\color{blue}\dfrac{样本均值-总体均值}{标准误}\sim \text{标准正态分布} N(0,1)} $$
标准误是指统计量的标准差,例如样本均值 $\overline{x}$ 的标准误为:
$$ \sigma_{\overline{x}}=\sqrt{\mathrm{Var}(\overline{x})}=\sqrt{\dfrac{\sum_\limits{i=1}^n \mathrm{Var}(x_i)}{n^2}}=\sqrt{\dfrac{n\sigma^2}{n^2}}=\dfrac{\sigma}{\sqrt{n}} $$
可见,当总体方差存在时,样本量越大,样本均值的标准误就越小。
2.3.2 独立不同分布下的中心极限定理
更一般的,不要求同分布,只要在和的各项中没有起到突出作用的项,或者说,各项在概率意义下“均匀地小”,那么标准化后的随机变量之和就服从正态分布。
设 $n$ 个相互独立的随机变量 $X_i$(并不要求它们同分布),它们期望 $\mu_i$ 和方差 $\sigma_i$ 存在且有限,设它们的和为 $Y_n=\sum_\limits{i=1}^n X_i$,则有:
$$ \mathrm{E}(Y_n)=\mu_1+\mu_2+\cdots+\mu_n $$
$$ \mathrm{Var}(Y_n)=\sigma_1^2+\sigma_2^2+\cdots+\sigma_n^2 $$
记 $B_n=\sqrt{\mathrm{Var}(Y_n)}=\sqrt{\sigma_1^2+\sigma_2^2+\cdots+\sigma_n^2}$,则 $Y_n$ 的标准化为:
$$ Y_n^*=\dfrac{Y_n-\mathrm{E}(Y_n)}{B_n}=\sum_\limits{i=1}^n\dfrac{(X_i-\mu_i)}{B_n} $$
林德伯格条件:如果对 $\forall \tau>0$ 都有 $\lim_\limits{n\rightarrow \infty}\mathrm{P}(\max_\limits{1\leqslant i\leqslant n}|X_i-\mu_i|>\tau B_n)=0$。林德伯格条件保证了 $Y_n^*$ 中的各项 $(X_i-\mu_i)/B_n$ “均匀地小”。
林德伯格中心极限定理:设独立随机变量序列 $\{X_n\}$ 满足林德伯格条件,则对任意实数 $y$,有
$$ \lim_\limits{n\rightarrow \infty}\mathrm{P}\left(Y_n^*\leqslant y\right)=\Phi(y)=\dfrac{1}{\sqrt{2n}}\int_{-\infty}^y \mathrm{e}^{-\frac{t^2}{2}}\mathrm{d}t. $$
李雅普诺夫中心极限定理:设独立随机变量序列 $\{X_n\}$,若存在 $\delta>0$,满足
$$ \lim_\limits{n\rightarrow\infty}\dfrac{1}{B_n^{2+\delta}}\sum_\limits{i=1}^n\mathrm{E}(|X_i-\mu_i|^{2+\delta})=0 $$
则对任意实数 $y$,有
$$ \lim_\limits{n\rightarrow \infty}\mathrm{P}\left(Y_n^*\leqslant y\right)=\Phi(y)=\dfrac{1}{\sqrt{2n}}\int_{-\infty}^y \mathrm{e}^{-\frac{t^2}{2}}\mathrm{d}t. $$
2.3.3 二项分布的正态近似
棣莫弗-拉普拉斯(de Moiver-Laplace)中心极限定理:设 $n$ 重伯努利试验中,事件 A 在每次试验中出现的概率为 $0<p<1$,$q=1-p$,记 $S_n$ 为 $n$ 次试验中事件 A 出现的次数,记
$$ Y_n=\dfrac{S_n-np}{\sqrt{npq}}. $$
则对任意实数 $y$,有
$$ \lim_{n\rightarrow\infty}\mathrm{P}(Y_n\leqslant y)=\Phi(y)=\dfrac{1}{\sqrt{2n}}\int_{-\infty}^y \mathrm{e}^{-\frac{t^2}{2}}\mathrm{d}t. $$
三、常用公式
3.1 统计量
3.1.1 两独立总体均值之差的统计量
按方差是否已知和是否相等,两独立总体均值之差的统计量公式共有以下 6 种形式(其中 $\sigma^2$ 为总体方差,$s^2$ 为样本方差):
表 - 统计量(均值之差)
大样本($n_t\geqslant30\;\text{and}\;n_c\geqslant30$) | 小样本($2\leqslant n_t<30\;\text{or}\;2\leqslant n_c<30$) | |
---|---|---|
使用条件 | 1)两总体独立 | 1)两总体独立 2)两总体服从正态分布 |
方差$\sigma_t^2$和$\sigma_c^2$已知 | $z=\dfrac{(\overline{x}_t-\overline{x}_c)-(\mu_t-\mu_c)}{\sqrt{\dfrac{\sigma_t^2}{n_t}+\dfrac{\sigma_c^2}{n_c}}}\sim N(0,1)$ | 同左 |
方差$\sigma_t^2$和$\sigma_c^2$未知,且$\sigma_t^2=\sigma_c^2$ | $z=\dfrac{(\overline{x}_t-\overline{x}_c)-(\mu_t-\mu_c)}{\sqrt{\dfrac{s_t^2}{n_t}+\dfrac{s_c^2}{n_c}}}\sim N(0,1)$ | $t=\dfrac{(\overline{x}_t-\overline{x}_c)-(\mu_t-\mu_c)}{s_w\sqrt{\dfrac{1}{n_t}+\dfrac{1}{n_c}}}\sim t(n_t+n_c-2)$ 其中合并方差(方差的加权平均值)为$s_w^2=\dfrac{(n_t-1)s_t^2+(n_c-1)s_c^2}{n_t+n_c-2}$ |
方差$\sigma_t^2$和$\sigma_c^2$未知,且$\sigma_t^2\ne\sigma_c^2$ | 同上 | $t=\dfrac{(\overline{x}_t-\overline{x}_c)-(\mu_t-\mu_c)}{\sqrt{\dfrac{s_t^2}{n_t}+\dfrac{s_c^2}{n_c}}}\sim t(v)$ 其中t分布的自由度$v=\dfrac{(s_t^2/n_t+s_c^2/n_c)^2}{\dfrac{(s_t^2/n_t)^2}{n_t-1}+\dfrac{(s_c^2/n_c)^2}{n_c-1}}$ |
3.1.2 两独立总体比率之差的统计量
两个独立总体的阳性比率分别为 $\pi_t,\;\pi_c$,样本量分别为 $n_t,\;n_c$,阳性样本量分别为 $x_t,\;x_c$,则样本阳性比率为 $p_t=x_t/n_t,\;p_c=x_c/n_c$。
表 - 统计量(比率之差)
大样本 | |
---|---|
使用条件 | 1)两总体独立 2)每组每类样本量都大于等于10($x_t\geqslant10,x_c\geqslant10,(n_t-x_t)\geqslant10,(n_c-x_c)\geqslant10$) |
$H_0:\;\pi_t-\pi_c=0$ | $z=\dfrac{p_t-p_c}{\sqrt{p(1-p)\left(\dfrac{1}{n_t}+\dfrac{1}{n_c}\right)}}\sim N(0,1)$ 其中$p=\dfrac{x_t+x_c}{n_t+n_c}=\dfrac{p_t n_t+p_c n_c}{n_t+n_c}$,$x_1,x_2$ 分别是两样本中的阳性样本量。 |
$H_0:\;\pi_t-\pi_c=\delta$ | $z=\dfrac{(p_t-p_c)-\delta}{\sqrt{\dfrac{p_t(1-p_t)}{n_t}+\dfrac{p_c(1-p_c)}{n_c}}}\sim N(0,1)$ |
3.2 置信区间
什么是置信区间:总体参数 $\theta$ 的置信水平为 $1-\alpha$ 的置信区间 $(LCI, UCI)$ ,其能以概率 $1-\alpha$ 覆盖到真实的 $\theta$。
3.2.1 两独立总体均值之差的置信区间
表 - 置信区间计算公式(均值之差)
条件 | 大样本 | 小样本 |
---|---|---|
使用条件 | 1)两总体独立 | 1)两总体独立 2)两总体服从正态分布 |
方差$\sigma_t^2$和$\sigma_c^2$已知 | $(\overline{x}_t-\overline{x}_c)\pm z_{\alpha/2}\sqrt{\dfrac{\sigma_t^2}{n_t}+\dfrac{\sigma_c^2}{n_c}})$ | 同左 |
方差$\sigma_t^2$和$\sigma_c^2$未知,且$\sigma_t^2=\sigma_c^2$ | $(\overline{x}_t-\overline{x}_c)\pm z_{\alpha/2}\sqrt{\dfrac{s_t^2}{n_t}+\dfrac{s_c^2}{n_c}}$ | $(\overline{x}_t-\overline{x}_c)\pm t_{\alpha/2}(v)s_w\sqrt{\dfrac{1}{n_t}+\dfrac{1}{n_c}}$ 其中t分布的自由度$v=n_t+n_c-2$ 其中方差的加权平均值为$s_w^2=\dfrac{(n_t-1)s_t^2+(n_c-1)s_c^2}{n_t+n_c-2}$ |
方差$\sigma_t^2$和$\sigma_c^2$未知,且$\sigma_t^2\ne\sigma_c^2$ | 同上 | $(\overline{x}_t-\overline{x}_c)\pm t_{\alpha/2}(v)\sqrt{\dfrac{s_t^2}{n_t}+\dfrac{s_c^2}{n_c}}$ 其中t分布的自由度为$v=\dfrac{(s_t^2/n_t+s_c^2/n_c)^2}{\dfrac{(s_t^2/n_t)^2}{n_t-1}+\dfrac{(s_c^2/n_c)^2}{n_c-1}}$ |
3.2.2 两独立总体比率之差的置信区间
表 - 置信区间计算公式(比率之差)
大样本 | 任意大小样本 |
---|---|
$(p_t-p_c)\pm z_{\alpha/2}\sqrt{\dfrac{p_t(1-p_t)}{n_t}+\dfrac{p_c(1-p_c)}{n_c}}$ | $(\widetilde{p}_t-\widetilde{p}_t)\pm z_{\alpha/2}\sqrt{\dfrac{\widetilde{p}_t(1-\widetilde{p}_t)}{\widetilde{n}_t}+\dfrac{\widetilde{p}_c(1-\widetilde{p}_c)}{\widetilde{n}_c}}$ 其中 $\widetilde{n}_t=n_t+2,\;\widetilde{n}_c=n_c+2,\;\widetilde{p}_t=\dfrac{x_t+1}{n_t+2},\;\widetilde{p}_c=\dfrac{x_c+1}{n_c+2}$。 该区间被称为 Agresti-Coull 区间,当其小于0或大于1时,修正为0或1。 |
3.3 显著性(p 值)
按不同需求,检验可分为单尾检验($H_0:一个均值大于另一个均值$)和双尾检验($H_0:两总体均值相等$)两种。常用的显著性水平有 0.05 和 0.01。
首先根据原假设 $H_0$ 确实是单尾还是双尾检验,然后在 3.1 节选择对应的统计量,代入样本计算出统计量的观测值,再参考下图即可得到 p 值。
3.4 效应量
当假设检验拒绝原假设时,表示参数与假设值之间差异显著,但这一结果并未告诉我们差异的大小(程度)。度量差异大小的统计量就是效应量(Effect Size),如果假设检验拒绝了原假设,一般应该给出相应的效应量。效应量描述 了结果的差异程度,Cohen 用以下公式计算效应量,记为 Cohen's d:
$$ {\color{blue}\text{Cohen's}\;d=\dfrac{|\text{样本均值之差}-\text{假设均值之差}|}{\text{合并样本标准差}}} $$
其含意是参数与假设值之间相差几个样本标准差,例如当效应量为 0.90 时,表示样本均值与假设的总体均值相差 0.90 个标准差。
根据 Cohen(1988)提出的标准,独立样本t检验的小、中、大效应量对应的d值分别为 0.20,0.50,0.80:
- 当 $d<0.20$ 时,为非常小的效应量;
- 当 $0.20\leqslant d<0.5$ 时,为小的效应量;
- 当 $0.5\leqslant d<0.8$ 时,为中等效应量;
- 当 $d\geqslant0.8$ 时,为大的效应量。
表 - 常见检验方法的效应量计算公式
检验方法 | Cohen's d |
---|---|
均值指标:Z 检验(方差未知) | $\dfrac{\lvert(\overline{x}_t-\overline{x}_c)-(\mu_t-\mu_c)\rvert}{s_w}$ |
均值指标:t 检验(方差未知,且方差相同) | $\lvert t\rvert\sqrt{\dfrac{n_t+n_c}{n_t n_c}}$ |
比率指标:Z 检验 | $\dfrac{\lvert(p_t-p_c)-(\pi_t-\pi_c)\rvert}{\sqrt{p(1-p)}}{\color{gray},\;\text{其中} p=\dfrac{x_t+x_c}{n_t+n_c}=\dfrac{p_t n_t+p_c n_c}{n_t+n_c}}$ |
3.5 灵敏度
MDE(Minimum Detectable Effect,最小检测效应)是用于衡量检验灵敏度的指标,相当于显微镜的分辨率,MDE 的值越小检验的灵敏度越高。例如,当两个总体均值之差为 0.25 时,使用 MDE = 5.20 的实验检验出的结果是不可靠,就好比是使用光学显微镜测量出了原子的直径。
MDE 的大小受以下5个因素影响:检验方法、犯第Ⅰ类错误概率 α(↓)、犯第Ⅱ类错误 β(↓)、方差(↑)、样本量(↓),括号中的箭头表示该指标对 MDE 的影响方向。
Z检验的 MDE 公式在形式上可记为:
$$ MDE={\color{blue}(z_{\alpha/2}+z_{\beta})\times\text{标准误}} $$
备注:一般取 $\alpha=0.05,\;\beta=0.20$,此时 $z_{\alpha/2}+z_\beta=$ 2.8015852,更多置信水平和功效水平的上分位数参见附录。
表 - MDE 计算公式
检验方法 | 双尾 MDE |
---|---|
均值指标:Z 检验(方差未知) | $(z_{\alpha/2}+z_{\beta})\sqrt{\dfrac{s_t^2}{n_t}+\dfrac{s_c^2}{n_c}}$ |
均值指标:t 检验(方差未知,且方差相同) | $[t_{\alpha/2}(n_t+n_c-2)+t_{\beta}(n_t+n_c-2)]s_w\sqrt{\dfrac{1}{n_t}+\dfrac{1}{n_c}}$ |
均值指标:t 检验(方差未知,且方差不同) | $[t_{\alpha/2}(v)+t_{\beta}(v)]\sqrt{\dfrac{s_t^2}{n_t}+\dfrac{s_c^2}{n_c}}$ |
比率指标:Z 检验 | $(z_{\alpha/2}+z_{\beta})\sqrt{p(1-p)\left(\dfrac{1}{n_t}+\dfrac{1}{n_c}\right)},\;{\color{gray}\text{其中} p=\dfrac{x_t+x_c}{n_t+n_c}=\dfrac{p_t n_t+p_c n_c}{n_t+n_c}}$ |
3.6 样本量
虽然样本量越大 MDE 越高(值越小),但实验成本也越高。为平衡两者,在实验前需要先根据具体情况和需求(检验对象的方差、可接受的最大犯错概率)确定 MDE,然后根据 MDE 公式即可反推出实验所需要的最小样本量。
推荐使用免费工具 G*Power 来计算样本量。
验方法 | 最小样本量 | 备注 |
---|---|---|
均值指标:Z 检验(方差未知) | $n_t=\dfrac{(z_{\alpha/2}+z_{\beta})^2}{\delta^2}(s_t^2+r\times s_c^2)$ $n_c=\dfrac{n_t}{r}$ | $\delta=\mu_t-\mu_c$ |
均值指标:t 检验(方差未知,且方差相同) | [待补充] | [待补充] |
均值指标:t 检验(方差未知,且方差不同) | [待补充] | [待补充] |
比率指标:Z 检验 | $n_t=\dfrac{(z_{\alpha/2}+z_{\beta})^2}{\delta^2}[p_t(1-p_t)+r\times p_c(1-p_c)]$ $n_c=\dfrac{n_t}{r}$ | $\delta=\pi_t-\pi_c$ |
四、FAQ
[不同结果的解读]
[不同样本量的二项分布与正态分布的误差]
[不同样本量的样本均值分布与正态分布的误差]
附录
表 - 常用正态分布上分位数
α | β | $z_{\alpha/2}$ | $z_\beta$ | $z_{\alpha/2}+z_\beta$ |
---|---|---|---|---|
0.05 | 0.20 | 1.95996398454 | 0.84162123357 | 2.80158521811 |
0.05 | 0.10 | 1.95996398454 | 1.28155156555 | 3.24151555009 |
0.05 | 0.05 | 1.95996398454 | 1.64485362695 | 3.60481761149 |
0.05 | 0.01 | 1.95996398454 | 2.32634787404 | 4.28631185858 |
0.01 | 0.20 | 2.57582930355 | 0.84162123357 | 3.41745053712 |
0.01 | 0.10 | 2.57582930355 | 1.28155156555 | 3.85738086909 |
0.01 | 0.05 | 2.57582930355 | 1.64485362695 | 4.22068293050 |
0.01 | 0.01 | 2.57582930355 | 2.32634787404 | 4.90217717759 |
参考资料
- 贾俊平《统计学基于R》第5版,中国人民大学出版社,2023:勘误:P173-175,公式7.6、公式7.7、公式7.9、公式7.10分母中的减号均应为加号,公式7.8分母中的$n_1+n_2-1$ 应为 $n_1+n_2-2$;
- Georgi Z. Georgiev. Statistical Methods in Online A/B Testing: Statistics for data-driven business decisions and risk management in e-commerce, 2019.
- 茆诗松《概率论与数理统计》第3版,高等教育出版社,2019;
- 贾俊平《统计学》第8版,中国人民大学出版社,2021;
- 刘启林. A/B测试(AB实验)的基础、原理、公式推导、Python实现和应用;
- Bloom, H.S, MINIMUM DETECTABLE EFFECTS: A Simple Way to Report the Statistical Power of Experimental Designs, 1995;
- 盛骤《概率论与数理统计》第4版,高等教育出版社,2008。