1. 前言
A/B测试常用于算法优化(推荐,广告,搜索等),运营策略选择,UI设计等,是互联网产品迭代中最常用的评价手段。其核心思想是控制变量法,一般我们有A和B两个产品版本,让A和B只有某个变量不同;再将用户分为均匀的两组,测试用户对于A和B的反应差异,来判断A和B哪种更优。
A/B测试的过程很直观,但其背后是有严谨的统计学理论支撑的,本文就尝试来分析一下A/B测试的理论基础。
2. 假设检验
2.1 定义
假设检验是A/B测试的基础。在总体的分布未知时,提出某些假设,并根据样本数据来判断应该接受还是拒绝该假设,这一决策过程称为假设检验。
2.2 例子
这里参考概率论教材(浙大第四版)上的经典例子,来说明假设检验的过程。
某车间用一台包装机包装葡萄糖,袋装糖的净重是一个服从正态分布的随机变量。当机器正常时,其均值为0.5 kg, 标准差为0.015 kg. 某日开工后为了检验包装机是否正常,随机抽取n袋它包装的糖,称得净重数据(限于篇幅,这里不列出具体数值和计算过程),问该机器是否正常?
设这一天袋装糖的净重随机变量为 ,问题是根据样本数据来判断是否等于0.5. 为此我们可以提出两个对立的假设:
如果我们做出决策接受,则认为机器工作正常;否则认为不正常。
我们知道样本均值是的无偏估计,的观测值可以一定程度上反映的大小。因此如果假设为真,则的值应该不会太大。由正态分布的抽样分布可知,则当为真时,上述问题就转化为衡量的大小。设是一个很小的正数,当时就接受, 反之则拒绝.
然而上述决策依赖的是样本数据,存在犯错误的可能,当为真时仍有可能拒绝. 将这种错误概率记为 (当为真时拒绝
),简记, 我们希望将这种犯错概率控制在一个很小的数字,即:
为了确定常数, 将上式右端取等号,即
由于当为真时,,根据正态分布分位点的特性可得,该值通过查正态分布分位点表格可得。
结合样本数据计算出值并和比较,即可判断是否接受原假设.
2.3 假设检验的原理
小概率事件被认为在一次试验中不可能出现。在上述例子中,是小概率事件。若为真,那么一次试验得到的观测值就满足几乎是不可能发生的。如果发生,则我们有理由怀疑假设的正确性,进而拒绝。反之若观测值满足,则没有理由拒绝, 只能接受。
这里数字被称为显著性水平,统计量被称为检验统计量。称为原假设,为备选假设。假设检验的工作就是根据样本数据,在两者之间做出决策。
当检验统计量取某个区域中的值,我们拒绝原假设,则称区域为拒绝域,拒绝域的边界点称为临界值,的补集称为接受域。上述例子中的拒绝域为,临界值为和. 拒绝域和临界值如下图所示。
在使用上述方法确定拒绝域时有一定的缺陷。例如当我们取时可以拒绝,但取时也可能会拒绝。通常我们引入值(probability value)的概念。p值是由检验统计量的样本观察值得出的原假设可以被拒绝的最小显著性水平。
2.4 第I类和第II类错误
2.4.1 概念
- 第I类错误:弃真,即假设实际上为真,我们可能会拒绝
- 第II类错误:取伪,即实际上不为真,但我们接受了
实际工作中我们往往只控制第I类错误,原因是在第I类错误中,真实分布是已知的,可以很容易地确定小概率事件;而在第II类假设中,真实分布是未知的,无法确定小概率事件的范围。
控制第I类错误的方法就是选一个相对较小的值,一般取0.1, 0.05, 0.001等。
2.4.2 选取假设的原则
由于我们只控制第I类错误,即我们对待两类错误的态度是不对等的,因此我们在选择假设的时候要谨慎。一般来说有两个选择假设的原则:当犯某类错误有严重后果时,原则是将后果严重的错误归为第I类错误;如果没有严重后果时,一般选取为维持现状。这里分别举两个例子来说明:
- 药品检测
在药品检测时,有两种错误:1. 把假药判为真药;2. 把真药判为假药。显然第一种错误更严重,因此我们可以这样选择假设: : 该药为假药,: 该药为真药。这样我们就把“把假药判为真药”归到第I类错误中。
- 产品迭代 (A/B测试)
在决策是否使用新方案时,我们一般选取:新方案没有优势, : 新方案有优势。我们对待新方案应该持谨慎态度,这样第I类错误就是新方案有优势但没有选取。一旦被拒绝了,说明有较强的理由使用新方案。
3. A/B测试
3.1 基本流程
如图所示,用户分流是A/B测试的第一步也是最核心的一步。需要基于各种规则将流量(用户)分成2个(或多个)互不交叉的组。分组要保证均匀性和一致性,让不同组内用户的分布类似,来保证A/B测试的正确性。
分组后让用户使用不同的服务并收集用户反馈,再进行效果评估,来决定使用更优的版本。效果评估的标准一般是根据具体业务来决定,如点击率,转化率,人均观看时长等等。
3.2 A/B测试的原理
A/B测试的流程很直观,就是控制变量然后选择更优。但这一过程背后的理论支撑是什么呢?这里就要结合前文的假设检验来分析了。首先复习一下中心极限定理:
3.2.1 李雅普诺夫(Lyapunov)中心极限定理
设随机变量互相独立,无论他们服从什么分布,当时,都服从正态分布。
也就是说,当我们的流量(样本量)足够大时,随机变量(用户)的和都近似服从正态分布。假设用户在A/B测试中被分为了A和B两组,样本量分别为m和n, 这里m和n足够大且. 设A和B中的用户分别为和,由中心极限定理可知,随机变量和都服从正态分布,其均值和也服从正态分布。
3.2.2 A/B测试中的假设检验
在A/B测试中,我们将用户均匀地分为两组(对照组A和实验组B),每组使用不同的策略,根据收集用户反馈来进行决策。这里总体是指这个app的所有用户,样本是指对照照A和实验组B中的每一个用户。
下面用一个例子来说明。在视频推荐场景中,假如我们优化的指标是人均观看时长(以天为单位)。对照组A和实验组B中每个人的平均观看时长都是一个随机变量,分别记为和. 由中心极限定理可知,和也是随机变量,且都服从正态分布,记为和; 两者之差也服从正态分布,即
根据假设检验的基本步骤,我们提出原假设和备择假设:
,即实验组的策略没有带来人均观看时长的变化
,即实验组的策略带来了人均观看时长的变化
由此可见,A/B测试问题就转化成了第一节里提到的的假设检验问题。
首先计算出检验统计量的值:, , 分别是和的样本方差。
下面求出拒绝域,令,得出拒绝域为
, 即当时接受原假设,认为该算法不能带来人均观看时长的改变;否则拒绝原假设,认为该算法确实带来了人均观看时长的改变。
值得一提的是,这里使用的假设检验方法称为z-检验。在A/B测试中,样本量都很大,可以使用z-检验。当样本量较少时(n<30)时,一般使用t-检验。关于z-检验和t-检验的区别,推荐这篇文章:https://bytepawn.com/ab-testing-and-the-ztest.html,此处不再详述。
4.总结
A/B测试的理论基础包括假设检验、中心极限定理、正态分布、样本估计等统计学知识,看似简单的逻辑,背后其实是严谨的统计理论支撑。
5.参考资料
- 《概率论与数理统计》浙大第四版
- “构建企业级推荐系统系列”AB测试平台的工程实现
- A/B测试与假设检验(一)
- AB测试-详细过程和原理解读
- A/B Test的统计学原理
- ab-testing-and-the-ztest