一.A/B测试理论基础
1.指标的统计属性
指标的统计属性,指的是什么?
在实际业务中,我们常用的指标其实就是两类:
均值类的指标,比如用户的平均使用时长、平均购买金额、平均购买频率,等等。
概率类的指标,比如用户点击的概率(点击率)、转化的概率(转化率)、购买的概率(购买率),等等。
很明显,这些指标都是用来表征用户行为的。而用户的行为是非常随机的,这也就意味着这些指标是由一系列随机事件组成的变量,也就是统计学中的随机变量。我们可以用概率分布来表征随机变量取不同值的概率和范围。所以,A/B 测试指标的统计属性,其实就是要看这些指标到底服从什么概率分布。
在这里,我可以先告诉你结论:在数量足够大时,均值类指标服从正态分布;概率类指标本质上服从二项分布,但当数量足够大时,也服从正态分布。
1.1正态分布:
在统计上,如果一个随机变量 x 的概率密度函数(Probability Density Function)是:
那么,x 就服从正态分布。其中 ,μ为 x 的平均值(Mean),σ为 x 的标准差(Standard Deviation),n 为随机变量 x 的个数,xi 为第 i 个 x 的值。
随机变量 x 服从正态分布时的直方图(Histogram)如下:
直方图是表征随机变量分布的图表,其中横轴为 x 可能的取值,纵轴为每个值出现的概率。通过直方图你可以看到,距离平均值μ越近的值出现的概率越高。
除了平均值μ,你还能在直方图和概率密度函数中看到另一个非常重要的参数:标准差σ。σ通过计算每个随机变量的值和平均值μ的差值,来表征随机变量的离散程度(偏离平均值的程度)。
为了方便理解,我们用 Python 做一个简单的模拟,选取服从正态分布的随机变量 x,其平均值μ=0;分别把 x 的标准差σ设置为 1.0、2.0、3.0、4.0, 然后分别做出直方图。
通过这个直方图去看标准差σ对随机变量分布的影响,是不是就更直观了?σ越大,x 偏离平均值μ的程度越大,x 的取值范围越广,波动性越大,直方图越向两边分散。
有了方差(方差就是标准差的平方,标准差σ和方差在表征离散程度上其实是可以互换的)和标准差,我们就可以描述业务指标的离散程度了,但要计算出业务指标的波动范围,我们还差一步。这一步就是 z 分数。
要解释 z 分数,就要引出一种特殊的正态分布,也就是标准正态分布(Standard Normal Distribution),其实就是平均值μ=0、标准差σ=1 的正态分布。
标准正态分布的直方图如下所示:
这里的横轴就是 z 分数(Z Score),也叫做标准分数(Standard Score):
1.2 中心极限定理
这其实是均值类变量的特性:当样本量足够大时,均值类变量会趋近于正态分布。这背后的理论基础,就是中心极限定理。
那么,这个足够大的样本量到底是多大呢?
统计上约定俗成的是,样本量大于 30 就属于足够大了。在现在的大数据时代,我们的样本量一般都能轻松超过 30 这个阈值,所以均值类指标可以近似为正态分布。
1.3二项分布
定义:n个独立的是/非试验中成功的次数的离散概率分布
只有两种结果事件概率分布的
这里我们还是结合着社交 App 的例子,来学习下二元分布。
这款社交 App 在网上投放了广告,来吸引人们点击广告从而下载 App。
现在我们想通过数据看看 App 下载率的分布情况:下载率 = 通过广告下载 App 的用户数量 / 看到广告的用户数量。
因为单个二元事件的结果,只能是发生或者不发生,发生的概率要么是 100% 要么是 0%,所以我们要分析下载率就必须把数据进行一定程度的聚合。这里,我们就以分钟为单位来举例,先计算每分钟的下载率,再看它们的概率分布。
我们有一个月的用户及下载数据,一个月一共有 43200 分钟(60*24*30),因为我们关注的是每分钟的下载率,所以一共有 43200 个数据点。通过数据分析发现,每分钟平均有 10 个人会看到广告,下载率集中分布在 0-30% 之间。
下图是每分钟下载率的概率分布:
你可能会说,概率在某种程度上也是平均值,可以把这里的下载率理解为“看到广告的用户的平均下载量”,那我们已经有 43200 个数据点了,样本量远远大于 30,但为什么下载率的分布没有像中心极限定理说的那样趋近于正态分布呢?
这是因为在二项分布中,中心极限定理说的样本量,指的是计算概率的样本量。在社交 App 的例子中,概率的样本量是 10,因为平均每分钟有 10 人看到广告,还没有达到中心极限定理中说的 30 这个阈值。所以,我们现在要提高这个样本量,才能使下载率的分布趋近正态分布。
提高样本量的方法也很简单,可以计算每小时的下载率。因为每小时平均有 600 人看到广告,这样我们的样本量就从 10 提高到了 600。
下图是每小时下载率的概率分布:
现在再看这张直方图,每小时下载率的分布是不是就趋近于正态分布了!图中下载率的平均值大约为 10%。
在二项分布中,有一个从实践中总结出的经验公式:min(np,n(1-p)) >= 5。其中,n 为样本大小,p 为概率的平均值。这个公式的意思是说,np 或者 n(1-p) 中相对较小的一方大于等于 5,只有二项分布符合这个公式时,才可以近似于正态分布。这是中心极限定理在二项分布中的变体。
在我们的例子中,计算每分钟下载率的概率分布时,np=10*10%=1,小于 5,所以不能近似成正态分布;计算每小时下载率的概率分布时,np=600*10%=60,大于等于 5,所以可以近似成正态分布。
2.假设检验
假设检验 (Hypothesis Testing) 是什么?
检测通过样本数据产生的假设在总体数据(即事实)上是否成立。
2.1“假设”?
在假设检验中的“假设”是一对:零假设(Null Hypothesis)和备择假设(Alternative Hypothesis),它们是完全相反的。在 A/B 测试的语境下,零假设指的是实验组和对照组的指标是相同的,备择假设指的是实验组和对照组的指标是不同的。
2.2检验
单尾检验又叫单边检验(One-sided Test),它不仅在假设中说明了两个比较对象不同,并且还明确了谁大谁小,比如实验组的指标比对照组的指标大。
双尾检验又叫双边检验(Two-sided Test),指的是仅仅在假设中说明了两个比较对象不同,但是并没有明确谁大谁小.
单样本检验是一组样本数据和一个具体数值进行比较
双样本检验是两组样本数据进行比较
配对检验是比较同一组样本数据发生变化前和发生变化后
T 检验:当我们不知道总体方差时
Z 检验:当我们已知总体方差,且样本量大于 30 时
总结:对于 A/B 测试来说,对于概率类指标,要选用双尾、双样本的比例检验(Z检验);对于均值类指标,要选用双尾、双样本的T检验
2.3结果
第一类错误(Type I Error):统计上的定义是拒绝了事实上是正确的零假设。在 A/B 测试中,零假设是两组的指标是相同的,当假设检验推断出两组指标不同,但事实上两组指标相同时,就是第一类错误。
发生第一类错误的概率用α表示,也被称为显著水平(Significance Level)。显著水平一般为 5%
第二类错误(Type II Error):统计上的定义是接受了事实上是错误的零假设。在 A/B 测试中,当假设检验推断出两组指标相同,但事实上两组指标是不同时,就是第二类错误。发生第二类错误的概率用β表示,统计上一般定义为 20%
P 值法
在统计上,P 值就是当零假设成立时,我们所观测到的样本数据出现的概率。在 A/B 测试的语境下,P 值就是当对照组和实验组指标事实上是相同时,在 A/B 测试中用样本数据所观测到的“实验组和对照组指标不同”出现的概率。
- 当 P 值小于 5% 时,我们拒绝零假设,接受备择假设,得出两组指标是不同的结论,又叫做结果显著。
- 当 P 值大于 5% 时,我们接受零假设,拒绝备择假设,得出两组指标是相同的结论,又叫做结果不显著。
置信区间法
定义:对于一个随机变量来说,有 95% 的概率包含总体平均值(Population mean)的范围。
A/B 测试本质上就是要判断对照组和实验组的指标是否相等,那怎么判断呢?答案就是计算实验组和对照组指标的差值δ。因为指标是随机变量,所以它们的差值δ也会是随机变量,具有一定的波动性。
这就意味着,我们就要计算出δ的置信区间,然后看看这个置信区间是否包括 0。如果包括 0 的话,则说明δ有可能为 0,意味着两组指标有可能相同;如果不包括 0,则说明两组指标不同。
小结:
第一,对于 A/B 测试来说,要选用双尾、双样本的比例检验(概率类指标)或 T 检验(均值类指标)。这决定了你在计算分析 A/B 测试结果时如何选取检验的参数,所以很重要。
第二,在 A/B 测试实践中,计算样本量大小、指标波动性和分析测试结果的时候,会用到这些统计概念。
计算样本量大小时,会用到: 第一类 / 第二类错误及其概率α和β。
计算指标波动性时,会用到:方差和置信区间。
分析 A/B 测试结果时,会用到:各类检验、置信区间、P 值。