添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
A/B测试(AB实验)的基础、原理、公式推导、Python实现和应用

A/B测试(AB实验)的基础、原理、公式推导、Python实现和应用

A/B测试(A/B Testing),又称A/B实验(AB实验)、A/B试验(AB试验)、对照试验,双盲试验、正交试验。

A/B测试(AB实验)是数据驱动的重要手段,广泛应用于互联网产品、设计、搜索、推荐系统、广告系统、增长黑客、用户增长、数据分析、数字化运营、智能营销等领域。互联网从业者(产品、运营、设计、市场、营销、前端、后端、数据、算法、管理者、创始人)必须懂得或者掌握A/B测试,否者数据时代你还是传统互联网思维,没有数据思维,没有互联网思维。

A/B测试(AB实验)也广泛应用于自然科学、心理学、经济学、生物医药等领域,是开展科学研究的重要手段,比如国药新冠疫苗、辉瑞新冠疫苗、科兴新冠疫苗、康希诺新冠疫苗等的三期临床试验,其实也是A/B测试。

本文从0到1搭建A/B测试(AB实验)的知识体系。首先,回顾了A/B 测试的概念、本质、流程等基础知识,并且补充大样本、小样本、正态分布、Z分布、t 分布、卡方分布、中心极限定理、原假设、备择假设、第Ι类错误、第ΙΙ类错误、显著性水平、P值、统计功效、置信区间、效应量、MDE、MDES等A/B测试涉及的统计学基础知识;接着,从试验设计、抽样理论、假设检验等方面介绍A/B测试的原理;然后,介绍Microsoft A/B测试、Airbnb A/B测试、推荐系统的A/B测试、新冠疫苗的 A/B测试,A/B测试工具等;最后,对A/B测试进行总结,指出A/B测试的本质的本质、A/B测试的价值,不适用的场景和经验。

本文主要目录如下:

1. A/B测试基础
1.1. A/B测试的概念
1.2. A/B测试的本质
1.3. 伪A/B测试
1.4. A/B测试的流程
1.5. 统计学基础
1.5.1. 大样本、小样本
1.5.2. 正态分布
1.5.3. Z 分布
1.5.4. t 分布
1.5.5. χ^2 分布(卡方分布)
1.5.6. 中心极限定理
1.5.7. 原假设、备择假设
1.5.8. 第Ι类错误、第ΙΙ类错误
1.5.9. 显著性水平
1.5.10. p 值
1.5.11. 统计功效
1.5.12. 置信区间、置信水平
1.5.13. 效应量
1.5.14. MDE、MDES

2. A/B测试原理
2.1. 试验设计
2.1.1. 试验误差
2.1.2. 试验设计的基本原则
2.1.3. 试验设计的变量
2.1.4. 试验设计的方法
2.2. 抽样理论
2.2.1. 分层抽样
2.2.2. 确定样本量
2.3. 假设检验
2.3.1. Z 检验
2.3.2. t 检验
2.3.3..X^2 检验

3. A/B测试应用
3.1. Microsoft的A/B测试
3.2. Airbnb的A/B测试
3.3. 推荐系统的A/B测试
3.4. 新冠疫苗的A/B测试(双盲试验)
3.5. A/B测试的主要工具

4. A/B测试总结
4.1. A/B测试的本质的本质
4.2. A/B测试的价值
4.3. A/B测试不适用
4.4. A/B测试的经验


直接上PPT。

A/B测试(A/B试验)的概述、原理、公式推导、Python实现和应用

传统产品、运营、设计、营销、算法等总结式工作方式,慢而且错误概率大。

但以A/B测试为手段的数据驱动方式,速度快且科学,更高效发现商业机会。

传统与当前工作方式对比

A/B测试是数据驱动的重要手段。

A/B测试是数据驱动的重要手段

常见的A/B测试工具,它们的输入,输出都是什么?

powerandsamplesize 输入是: 样本量(Sample Size)、统计功效(Power)、显著性水平 (Type Ι error rate)。

字节跳动的 DataTester 输出是: 置信区间(confidence interval)、p值(p-value)、检验灵敏度(MDE)。

A/B测试工具powerandsamplesize 输入和字节跳动的 DataTester 输出

那么是怎样从输入到输出的吗?

即怎么实现A/B测试?

这就是本文核心内容,构建完整的A/B测试原理架构。

怎么实现A/B测试?

我们先给出A/B测试中常见的统计术语,统一度量衡便于沟通交流。

A/B测试中常见的统计术语


1. A/B测试基础

A/B测试基础的目录


1.1. A/B测试的概念

什么是A/B测试?

A/B测试是一种随机测试(试验),将两个不同的东西(A、B)进行假设比较。

A/B测试的概念

A/B测试也称对照试验(Controlled Experiments)、双盲试验(Double Blind Clinical Trial)。

A/B测试的核心步骤:假设、检验。

A/B测试的核心步骤:假设、检验


1.2. A/B测试的本质

A/B测试的本质是试验,具体就是对照试验。

A/B测试的本质是试验

那么试验与实验有什么区别?

试验是探索未知。比如空间试验、医药试验。

实验是测试已知。比如物理实验、化学实验。

但生活中人们常常不对“试验”与“实验”进行区分,统称“AB实验”。

为了简便,本文也不对实验和试验进行区分。

试验与实验有什么区别?

很多大型互联网公司都有试验文化,比如亚马逊、微软等。

你的老板有试验基因?

你的公司有试验文化?

你的 leader 有试验思维?

亚马逊、微软的试验文化


1.3. 伪A/B测试

那么从反面看,什么不是A/B测试?

比如:假设不清楚,与目标不相关,用户分流不科学等。

什么不是A/B测试?


1.4. A/B测试的流程

A/B测试的流程:假设、抽样、检验、结论。

A/B测试的流程:假设、抽样、检验、结论

A/B测试的统计学基础:试验设计、抽样理论、假设检验。

A/B测试的统计学基础:试验设计、抽样理论、假设检验

A/B测试串联统计学的基础知识。

A/B测试串联统计学的基础知识

为此,我们先补充一些统计学基础知识。


1.5. 统计学基础

A/B测试涉及的统计学基础知识的三级目录如下:

A/B测试涉及的统计学基础知识的三级目录


1.5.1. 大样本、小样本

大样本、小样本之间并不是以样本量大小来区分的。

大样本、小样本


1.5.2. 正态分布

什么是正态分布?

什么是正态分布?

正态分布的期望不同、标准差不同的对比图如下:

正态分布的期望不同、标准差不同的对比图


1.5.3. Z 分布

什么是Z分布?

什么是Z分布?

Z分布的Python实现如下:

Z分布的Python实现


1.5.4. t 分布

什么是 t 分布?

什么是 t 分布?

t 分布的Python实现如下:

t 分布的Python实现

从上图很容易发现:当 n=30 , t分布与Z分布近似。


1.5.5. χ^2 分布

什么是卡方分布?

什么是卡方分布?

卡方分布的Python实现如下:

卡方分布的Python实现


1.5.6. 中心极限定理

习惯于把 和的分布 收敛于 正态分布 的那 一类定理 都叫做“中心极限定理”。

中心极限定理


1.5.7. 原假设、备择假设

统计学中, 假设是关于总体的陈述 ,可分为原假设和备择假设。

原假设、备择假设

A/B测试中的 原假设是指AB组指标 无显著差异; 备择假设是指AB组指标 有显著差异

A/B测试中的原假设、备择假设


1.5.8. 第Ι类错误、第ΙΙ类错误

统计假设可能会存在两种决策错误(误判):真、伪。

统计假设可能会存在两种决策错误(误判):真、伪

什么是第Ι类错误、第ΙΙ类错误?

什么是第Ι类错误、第ΙΙ类错误?

假设检验中各种可能结果的概率及统计意义如下:

假设检验中各种可能结果的概率

怎样减少第Ι类错误、第ΙΙ类错误?

怎样减少第Ι类错误、第ΙΙ类错误?


1.5.9. 显著性水平

显著性水平(significance level),使得犯第 Ι 类错误的概率 控制在一给定的水平下 ,这个水平就是显著性水平,在此基础上使犯第 ΙΙ 类错误的概率尽可能小。

显著性水平


1.5.10. p 值

定义1:p 值(probability value, p -value)在观测数据下拒绝原假设的最小 显著性水平

定义2:p 值是指拒绝原假设 犯第 Ι 类错误 的最小概率。

定义3:p 值代表观察到的 随机因素 产生的差异概率。

p 值的定义

p 值的计算:

p 值的计算


1.5.11. 统计功效

统计功效(statistical power),不犯 第ΙΙ类错误( 1-β 的概率。

A/B实验中的统计功效:当AB两组差异真的存在时,能正确判断的概率。

统计功效

统计功效的计算:

统计功效的计算

从统计功效计算公式可知,统计功效的影响因素:两总体差异(效应量)、显著性水平 α、样本量 n。但是,在这 3 个影响因素中,显著性水平 α 是提前给定,只有样本量 n 是可以控制的。

统计功效的影响因素:两总体差异(效应量)、显著性水平 α、样本量 n


1.5.12. 置信区间、置信水平

什么是置信区间(Confidence Interval)、 置信水平(Confidence Level)

什么是置信区间(Confidence Interval)、置信水平(Confidence Level)?

置信水平也称为置信度、 置信系数、统计显著。

正态分布的置信区间的公式推导如下:

正态分布的置信区间的公式推导

正态分布的置信区间的例子计算如下:

正态分布的置信区间的例子计算

其中95%置信区间的含义 :若反复抽样多次,每个样本值确定一个区间,在这么多的区间中,包含 μ 的约占95%,不包含 μ 的约仅占 5%。


1.5.13. 效应量

效应量(Effect Size,又称效应值),提供了对效应大小的具体测量。

效应量

效应量的特征:不依赖样本量,不依赖测量尺度,效应量的正负号仅表示效应的方向,其绝对值才是实际的效应大小。

效应量的特征

效应量的计算——Cohen`s d

效应量的计算——Cohen`s d

效应量的计算——Cramer`s V

效应量的计算——Cramer`s V


1.5.14. MDE、MDES

Minimum Detectable Effect (MDE) ,即最小检测效应,也称检验灵敏度。

MDE、MDES

Minimum Detectable Effect Size (MDES),MDE 与 MDES 是等价,但 MDE 的使用更普遍。

MDE 的计算公式可分为:Z 检验的 MDE 公式和 t 检验的 MDE 公式。

Z 检验的 MDE 公式和 t 检验的 MDE 公式

P值、置信区间、效应量是衡量试验结果的三个最重要的指标。

P值、置信区间、效应量是衡量试验结果的三个最重要的指标



2. A/B测试原理

A/B测试原理的目录

A/B测试原理的三级目录如下:

A/B测试原理的三级目录


2.1. 试验设计

试验设计(Design of Experiment,DOE)。

利用数学和统计学的方法来设计试验方案,称为统计试验设计,简称试验设计。

试验设计


2.1.1. 试验误差

试验误差可分为:随机误差、系统误差、过失误差。

什么是试验的随机误差?

试验的随机误差

什么是试验的系统误差、过失误差?

试验的系统误差、过失误差

精心设计试验 ,可以减少系统误差,避免过失误差的干扰。所以,在科学试验前提下,我们忽略系统误差、过失误差。


2.1.2. 试验设计的基本原则

试验设计的基本原则:重复、随机化、分区组。

也可以说:不符合重复、随机化、分区组原则的,不是科学试验。

试验设计的基本原则:重复、随机化、分区组


2.1.3. 试验设计的变量

试验中需考察的变量称为因素或因子。

在科学试验的前提下,影响试验只有:因素和随机。

试验设计的变量


2.1.4. 试验设计的方法

试验设计的方法有因子试验设计(Factorial Experimental Design)、正交试验设计(Orthogonal Experimental Design)等。

A/B测试用的是因子试验设计中的单因素试验方法。

单因素试验是指一个试验中只选择了一个要考虑的因素。

试验设计的方法

为什么A/B测试用的是单因素试验?

因为多因素试验无法 控制变量 ,无法控制即无法量化效果。

多因素试验无法控制变量,无法控制即无法量化效果。


2.2. 抽样理论

抽样(Sampling)就是从研究总体中选取一部分 代表性样本 的方法。

抽样理论

2.2.1. 分层抽样

将抽样单元按某种 特征 或某种 规则 划分为不同的层,然后从不同的层中独立、随机地抽取样本。

分层抽样

A/B测试使用用户画像来进行分层抽样,获得代表性样本。

更多用户画像知识可参考:

举个利用用户画像进行抽样的例子。

利用用户画像进行抽样


2.2.2. 确定样本量

试验前,通常要设置样本量大小。

确定样本量

举个计算样本量的例子。

计算样本量的例子


2.3. 假设检验

假设检验(Hypothesis Testing)是用来判断样本与样本, 样本与总体的差异 是由抽样误差引起,还是由本质差别造成的统计推断方法。

假设检验

假设检验的步骤:

第一步:先对总体的特征作出某种假设;

第二步:然后通过抽样研究的统计推理;

第三步:对此假设应该被拒绝还是接受作出判断。

假设检验的步骤


2.3.1. Z 检验

Z检验( z test)用 Z 分布 理论来 推断差异发生的概率 ,从而判定平均数的差异是否显著。

Z检验

两个总体均值之差的估计(大样本的估计):

两个总体均值之差的估计

举个 Z 检验的例子:

举个 Z 检验的例子

Z 检验的Python实现如下:

Z 检验的Python实现


2.3.2. t 检验

t 检验(Student‘s t test)用 t 分布理论来 推断差异发生的概率 ,从而判定两个平均数的差异是否显著。

t 检验

两个总体均值之差的估计(小样本的估计):

两个总体均值之差的估计(小样本的估计)

两组样本时, Z 检验与 t 检验的对比如下:

两组样本时,Z 检验与 t 检验的对比

怎样选择 Z 检验和 t 检验?

A/B测试通常样本量很大,用 Z 检验、t 检验都可以。

怎样选择 Z 检验和 t 检验?

注意,假设检验也有局限:

  • 假设检验更多地关注数据而非假设
  • 显著性并不能反应业务价值的大小
假设检验也有局限


2.3.3..X^2 检验

卡方检验是指用 χ^2 分布 理论来检验样本数据与总体分布是否符合,从而判定样本偏差是否显著。可以用于检验抽样是否合理。

卡方检验

举个卡方检验的例子。

卡方检验的例子

至此,我们知道A/B测试的理论基础:试验设计、抽样理论、假设检验。

A/B测试的理论基础:试验设计、抽样理论、假设检验

小结一下,从试验设计、抽样理论、假设检验,可知A/B测试具有如下:预测性、科学性、并行性、不确定性、应用性强、数据依赖等特点。

A/B测试的特征


3. A/B测试应用

A/B测试应用的目录

A/B测试广泛应用于互联网产品、设计、搜索、推荐、广告、增长、数据分析、运营、营销等领域。这里举几个典型的A/B测试实践应用的案列,比如:产品设计领域的Microsoft的A/B测试;搜索领域的Airbnb的A/B测试;推荐领域的推荐系统的A/B测试;生物医药领域的新冠疫苗的A/B测试等等。

A/B测试广泛应用于互联网产品、设计、搜索、推荐、广告、增长、数据分析、运营、营销等领域


3.1. Microsoft的A/B测试

假设:改变配色方案会增加点击率。

Microsoft的A/B测试


3.2. Airbnb的A/B测试

假设:搜素结果增加房屋的图片、位置会增加点击率。

Airbnb的A/B测试


3.3. 推荐系统的A/B测试

假设某APP的日活DAU是20万,最近上线一个新推荐模型FM(旧LR),现在进行A/B测试。

原假设 :LR 与 FM 推荐结果没有差异;

备择假设 :LR 与 FM 推荐结果有差异。

选择点击率 CTR 指标 来进行量化评估。

推荐系统的A/B测试

置信区间、p 值、效应量计算如下:

推荐系统的A/B测试的置信区间、p 值、效应量计算

MDE的计算:

因为效应量 d > MDE,所以拒绝原假设, LR 与 FM 推荐结果有差异,而且非常显著。

推荐系统的A/B测试的MDE计算

即说明新的推荐模型FM效果提升明显。

更多FM内容可参考:

推荐系统的A/B测试的Python实现如下:

推荐系统的A/B测试的Python实现


3.4. 新冠疫苗的A/B测试(双盲试验)

新冠疫苗需要进行三期试验,观察疫苗是否能够防止人感染,主要评估指标是保护率,也称有效率。那么,怎么计算疫苗的保护率(有效率)?

新冠疫苗的A/B测试(双盲试验)

举个例子:2020年11月18日,美国辉瑞公司(Pfizer)宣布最新实验结果:他们研制的新冠疫苗有效率为95%。那么,这个95%有效率是怎么计算得到呢?

辉瑞新冠疫苗有效率为95%的计算


3.5. A/B测试的主要工具

A/B测试工具有很多,比如国内的字节跳动的DataTester、热云的Appadhoc(吆喝)等;国外的 Evan's Awesome 、Optimizely 、VWO 等。国内外主要的A/B测试工具如下表所示:

国内外主要的A/B测试工具


4. A/B测试总结

A/B测试总结的目录


4.1. A/B测试的本质的本质

实验是科学研究的主流方法,其背后的指导思想是什么?

是实证主义,还是证伪主义?

实证主义和证伪主义

对照试验<——试验<——证伪主义

对照试验&amp;amp;amp;amp;amp;amp;lt;——试验&amp;amp;amp;amp;amp;amp;lt;——证伪主义

A/B测试的本质是对照试验。

A/B测试的本质的本质是证伪。

在A/B测试中,若试验没有统计显著性(差异),可以快速跳过继续下一个试验。

A/B测试的本质的本质是证伪


4.2. A/B测试的价值

A/B测试的价值:数据化驱动决策、降低风险、科学验证想法。

A/B测试的价值:数据化驱动决策、降低风险、科学验证想法


4.3. A/B测试不适用

A/B测试不适用:变量多、产品不成熟、缺乏统计思维。

A/B测试不适用:变量多、产品不成熟、缺乏统计思维


4.4. A/B测试的经验

特别注意心理学对A/B测试的影响。因为人往往证明自己正确很容易,但证明自己错了很难。

A/B测试的经验

A/B测试可能是消极的、或者不显现的。

A/B测试可能是消极的、或者不显现的


A/B测试的参考文献(1)

A/B测试的参考文献(1)

A/B测试的参考文献(2)

A/B测试的参考文献(2)

A/B测试的参考文献(3)

A/B测试的参考文献(3)


总结:

互联网领域,A/B测试(AB实验)是一种实现用户增长、业务增长的重要手段。但是A/B测试(AB实验)的最终的目的是商业价值实现,所以要把A/B测试放在整个商业生态中考虑。

数据时代,频繁、大量的A/B测试(AB实验)有助于数据驱动增长,发现你的增长机会。


结束语:

由于个人的经历、能力和水平是有限的,我的可能是片面的,也可能是错的,这里抛砖引玉。

能力和水平有限,我的可能是错的

理论本身是务虚的,需要实践、实践、再实践。

你的反馈,正的负的都是有价值的,有助于我加速迭代升级——更深入、更全面。

你可能会有更好的理论、实践案列,欢迎在评论区留言,咱们一起讨论。

编辑于 2023-11-03 23:43 ・IP 属地北京

文章被以下专栏收录