在对精细化运营愈发重视的今天,A/B 测试已经成为了各大互联网公司中产品迭代过程中重要环节之一,通过随机分流的方式,观察一段时期内不同分支下的数据表现,再从中选择最符合自己预期目标的方案,可以更科学的量化产品的迭代效果。
A/B 测试之所以能够通过局部样本来预估整体大盘的数据表现,其最为重要的理论依据就是中心极限定理。
首先我们先来看下什么是中心极限定理。
设随机变量 $X_1$, $X_2$, $\cdots$, $X_n$, $\cdots$ 独立同分布,并且具有数学期望和方差:$E(X_i)=\mu,D(X_i)=\sigma^2\neq{0},i=1,2,\cdots$ 则随机变量之和 $\sum_{i=1}^nX_i$ 的标准化变量为
$$Y_n=\frac{\sum_{i=1}^nX_i-E(\sum_{i=1}^nX_i)}{\sqrt{D(\sum_{i=1}^nX_i)}}=\frac{\sum_{i=1}^nX_i-n\mu}{\sqrt{n}\sigma}$$
$Y_n$ 的分布函数 $F(x)$ 对于任意实数 $x$ 满足:
$$\lim\limits_{n\to\infty}F_n(x)=\lim\limits_{n\to\infty}P{\frac{\sum_{i=1}^nX_i-n\mu}{\sigma\sqrt{n}}\leq{x}}=\frac{1}{\sqrt{2\pi}}\int_{-\infty}^xe^{-\frac{t^2}{2}}dt=\Phi(x)$$
将 $Y_n$ 的分子与分母同除 $n$,得到 $Y_n=\frac{\frac{1}{n}\sum_{i=1}^nX_i-\mu}{\sigma/\sqrt{n}}=\frac{\overline{X}-\mu}{\sigma/\sqrt{n}}\sim{N(0, 1)}$ 或 $\overline{X}\sim{N(\mu, \frac{\sigma^2}{n})}$,所以定理可以表述为当 $n$ 充分大时,均值为 $\mu$,方差为 $\sigma^2>0$ 的独立同分布的随机变量 $X_1$, $X_2$, $\cdots$, $X_n$, $\cdots$ 的算数平均值 $\overline{X}=\frac{1}{n}\sum_{i=1}^nX_i$ 近似地服从均值为 $\mu$,方差为 $\frac{\sigma^2}{n}$ 的正态分布。
这个定理告诉我们:当我们拥有一个足够大的样本集合时,基于中心极限定理的特性,该样本的均值一定是服从正态分布的,所以当我们对(局部)样本计算平均值时,样本所属的那个总体,它的平均值也将近似为这个值,或者可以理解为围绕样本平均值附近波动。
在一般的 A/B 测试中,通常我们会在逻辑上将用户分成两组——实验组与对照组。举一个例子,假如我们当前正在对页面做改版,新版界面相比旧版页面会有一个更大的下单按钮。当用户访问这个页面时,会在算法的作用下被随机分到实验组或对照组,对用户来说这个过程应当是无感知的。被标记为实验组的用户将看到更大的下单按钮,而对照组的用户看到的按钮仍然是原来的大小,每当用户进入页面时,我们会记录下来他的组别,以及他是否下单。在一段时间过后,当进入这个页面的用户足够多时,我们只需要利用收集到的用户组别与下单数据,分别的计算出两组用户的均值与方差,就能通过比较的方法找到更好的那一个。由于两组用户除了下单按钮大小外,其他界面表现全都一致,所以如果我们通过计算发现两组指标存在差异,那么该差异一定是由下单按钮大小的差异带来的。我们只需要根据计算结果保留更好的那一个就可以了。
这一次我们仅讨论中心极限定理是如何应用在 A/B 测试中,而真正为我们计算实验组与对照组间是否存在统计学意义上的差异的算法 —— 假设检验算法将会在后续内容中更新。