上一节,介绍了显著性校验的基本概念, 显著性检验从统计学的角度来解释差异产生的概率,这与数值的差异有根本的区别。常用的显著性检验的方法有方程分析(F校验)、t校验、卡方校验等等。本节将着重介绍F检验。
方差分析
方差分析(Analysis of variance),也叫F校验,用来检验多组样本的均值是否有显著差异,它有四个假设前提
- 随机性:样本是随机产生的
- 独立性:不同组样本之间是相互独立的
- 正态分布性:同一组样本的数据来自于同一正太分布
- 方差齐性:不同组正太分布,方差相等或相差不大
σ ,方差分析只要计算均值是否相等就可以。
我们利用方差分析来校验上节中A、B两个算法产生的结果是否具有显著差异。我们把转化率称为因变量,算法为因素,由于只有算法这一个因素,本次的方差分析也被称为单因素方差分析。因素的取值是离散的,称为“水平”,我们比较的算法a和b就是因素的两个“水平”。
我们只有两个算法参与了A/B测试,为了校验这两组算法产生的数据之间是否具有显著差异,我们进行了为期十天的转化率实验测试,实验数据如下表。
算法 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
a | 0.29 | 0.36 | 0.32 | 0.29 | 0.34 | 0.24 | 0.27 | 0.29 | 0.31 | 0.27 |
b | 0.29 | 0.33 | 0.31 | 0.30 | 0.31 | 0.26 | 0.25 | 0.30 | 0.28 | 0.29 |
Yij表示数据,其中i表示第i天,j表示第j个水平(或算法)。
算法产生的转换率看作一个数据分布,算法a产生的数据分布的均值记为μ1,算法b产生的数据分布的均值记为μ2,根据方差分析的四个假设前提,我们可以定义原假设和对立假设。
H0:μ1=μ2 H1:μ1<>μ2
方差分析需要计算三个指标:SST、SSM、SSE
SST为所有采样数据的因变量方差(Total sum of square),计算公式如下。
Yij表示第i天,第j种算法的转化率,
为两种算法20个转换率的平均值
SSM为数据分布引起的方差,模型平方和(Sum of square for model)
nj为第j个水平下观测数量,本文是10
为第j个水平的平均值
SSE为采样引起的方差,计算公式为
SST、SSM、SSE三者之间的关系为
如果SSM占比大,说明因素对差异具有显著影响,如果SSE占比大,则说明采样误差对差异具有显著影响。
用两部分的比例来平衡显著性,这个比例称为F。计算公式为。
S水平的个数,n为数据的总数,s-1为分布的自由度,n-s 为误差的自由度
自由度(degree of freedom),简称df,是指采样中能够自由变化的数据的个数,对于n个采样数据,方差一定的情况下,那么自由n-1个数据可以自由变换,最后一个数据由方差和其他n-1个数来确定。
在我们的案例中,s=2,为算法的个数 ,采样数据的个数为n,n=20
SSM=0.00018 SSE=0.01652
F=(0.00018/(2-1))/(0.01652/(20-2))=0.196125908
我们可以根据F校验值的临界表来查找对应的P值。
如图所示
由图可知,通过查表以及n、m的值,可以知道在α=0.05情况下F的临界值,如果大于这个临界值,则P<α,否则P>α,在我们的案例中n=20,m=s-1=1,对应的F临界值为4.414。我们算出来的F值远远小于4.414,因此接受原假设,即两个算法的结果来源于 同一数据分布。