导读:这里是A/B Testing的第二篇文章,如果希望了解A/B Testing 实际应用的指标说明,可以只读当前文章这部分。如果你希望了解一些理论基础,可以先看第一篇。
五、置信区间 与 置信度(置信水平)
- 置信区间是什么?
概率论与数理统计讲述的是一个通过抽样和分析来预估总体数据的一门科学。实验其实是希望通过抽样的数据来预估整体的效果。
我们在高中的时候就已经学过,所有的测量和评估都是有误差的。一个量的观测值或计算值与其真实值之差,特指统计误差,即一个量在测量、计算或观察过程中由于某些条件或通常由于某些不可控制的因素的影响而造成的变化偏离标准值或规定值的数量就称之为误差。同时非常重要的一点是 ”误差是不可避免的“。
因此,这里有两个预估策略,一个是点估计,一个是区间估计。从上帝的视觉来看,真相只有一个,比如说,中国人的平均身高是多少,上帝可以把14亿的中国人的身高都扫一眼,然后就知道平均身高了。但是作为人类是不可能做到这一点的,因此就需要通过抽样进行预估。比如预估平均身高是170cm,那么这个值就是点估计。而范围预估则是,预估平均身高是170cm,但是有±3cm的误差,那么这里[167,170]的预估,就是区间预估。
统计学上描述区间估计(interval estimate)是在点估计的基础上,给出总体参数估计的一个区间范围,该区间通常由样本统计量加减估计误差得到。
很显然,区间预估会比点预估更严谨。这里的根据误差得到的一个数值区间在统计概率中就叫做置信区间。简单来说,置信区间就是误差范围。误差范围理论上越小越好。比如预估中国人身高,你给的范围是0到10米,当然不能说你错,但是误差范围太大,区间太大了,太不靠谱。从上面所说的中心极限定理我们知道,抽样的均值一定在总体均值的左右范围波动,并且呈现正太分布。因此,我们需要通过给出足够小的误差范围,同时能明确的知道这个范围有多少的概率包含总体均值。
因此,在一定的误差范围内评估某个区间包含总体均值的概率的值,就是置信度或者置信水平。假设我需要的置信水平是95%,也就是说如果我做100次抽样,会有95个置信区间包含了总体平均值—这个也是置信度的最直接的理解。计算某个误差范围内包含总体均值的概率的值,就是“置信水平”或者“置信度”。
这里必须重复明确下,有两个概念,一是误差范围所要表达的区间,是置信区间,置信区间这个数值范围包含总体均值的概率叫置信度或者置信水平。换个说法来说,就是置信区间并不是完全置信,实际上只是一个评估区间,需要有个评估指标来评估它的置信水平。
上面的结论里提到:置信水平越高,区间越宽,置信区间包含总体平均值统计量的概率越大。
我们日常使用的置信水平大部分是95%。为什么是95%?我觉得有两个原因
1)95%的置信度,在正太分布里,误差范围刚好是2个标准差σ(也被称为标准偏差,或者实验标准差,在概率统计中最常使用作为统计分布程度上的测量依据。)范围不算大,同时置信水平也相对较高。如下图:
2)置信水平是95%这个数字并不是必然的,而是人为设定的。
有些实验要求的误差范围要小写,比如上图的一个标准差σ的范围,置信度则为68%。但,过小误差范围导致置信度太小,从而导致实验效果难以评估,因此,就拍了个差不多的数字。现在95%的置信区间基本已形成了默认的规范。主要原因首先是误差范围不太大,只有2个标准差,其次,置信度有95%也比较高了。
数据不置信怎么办?实验由于数据积累较少,很可能无法快速收敛到置信区间出来。那么这个时候,就需要延迟实验时间 或者 多放一些流量进行实验。当前的产品,通常都有比较明显的周末与工作日效应,很多实验都建议能够累计超过7天的数据进行分析。
总结:95%置信区间就是我们想要找到的一个均值预估范围区间,如果我做100次抽样,会有95个置信区间包含了总体平均值—这个也是置信度的最直接的理解。
六、显著性
显著性是实验非常重要的一个特性,是AB 实验中用于判断实验组相对于对照组是否有明显差异的一个核心指标。从实际应用来说,实验中指标一旦确定,经常使用的指标就是置信区间 以及 实验效果是否显著。那么,如何解读实验的显著性就成了至关重要的一个事项了。
显著性,简单来理解就是,实验的指标是否跟对照组在指标在数值上有“足够”的区分度;
如何判断实验是否显著?
显著性的判断在实际的应用中非常常见,是属于应用频率最高的一个实验特性了。
一个概念如果比较难以理解通常比较难以推广并且不利于记忆。所以理解显著性,我们先从简单容易操作的知识点说起。
简单记忆并理解显著性,要理解显著性,只要记住这两点
1.同向为正,则提升显著:若关注指标的提升幅度置信区间(通常95%的置信度)上下限同为正,同时实验指标与对照组指标提升也是为正,那么就可以认为实验指标提升显著;如下表数据显示。若置信区间的上下限的两个指标一个是正一个是负的(如图2),这个时候即使提升指标为5.26%是比较大的提升,但是由于置信区间是[-3%,8], 实际的整体指标从-3%到8%的范围都是有可能的, 5.26%的提升点正好是在这个置信区间里面,你没有把握说实验放量之后一定会是提升的。
组别 | 点击率 | 提升比例 | 置信区间 |
---|---|---|---|
实验组 | 10% | 5.26% | [3%,8%] |
对照组 | 9.5% |
2. 同向为负,则效果显著负向:若关注指标下降的幅度的置信区间(通常95%的置信度)上下限同为负,同时实验指标与对照组的指标下降也是为负,那么就可以认为实验指标显著下降。如下表:
组别 | 卸载率 | 下降比例 | 置信区间 |
---|---|---|---|
实验组 | 9.5% | -5% | [-8%,-3%] |
对照组 | 10% |
3.若置信区间是一正一负,则效果不显著。从置信区间可以看出,实际的整体指标会在这个区间之内都是有可能,所以放量之后不一定显著下降;但是如果是同为负的并且实验指标也是负,就可以比较肯定的说明实验指标显著下降。
组别 | 点击率 | 提升比例 | 置信区间 |
---|---|---|---|
实验组 | 10% | 5.26% | [-3%,8%] |
对照组 | 9.6% |
简单记忆就是,实验指标区间上下限同为正,实验指标提升也为正,那么实验指标显著提升;实验区间指标上下限同为负,指标也为负,那么实验指标显著下降。
- 复杂的理论:
显著性的解读,在目前的统计学中,通常将阈值发生几率小于5%的事件称之为“不可能事件“,统计分析中,习惯上把α<0.05的概率,称为具有“显著性”。常用的检验方式有Z检验和T检验。
由于实际的理论还是比较复杂的,这里篇幅有限,目前暂时按下不表,后面看情况再定是否要单独分享下我的理解。如果有兴趣的同学可以去看下《概率论与数理统计》(第四版)盛骤主编,上海交通大学出版社出版的版本里面的第八章“假设检验”里有详细的描述显著性的计算和证明。
七、实验流量分流与用户分层
- 实验流量分流原则:
我们所做的实验,都是通过抽样来完成,那么抽样的用户分布尽可能的接近总体用户分布,这样实验结果就越能反馈实际的效果。所以针对流量分流有几个原则
1. 均匀,即两个实验里面的用户的抽样要尽可能的分布均匀,属性一致。比如地域,城市,年龄,男女比例,操作系统等等。如果分布不均匀,就很容易出现“辛普森悖论”。
2. 随机,在满足均匀和实验需求的情况下,对于用户的抽样应该尽可能的随机。目前互联网上比较常规的做法是使用HASH 算法根据用户的某个ID(通常是设备号,用户ID)进行取模,选取其中的一部分进行抽样。
3.样本充足,样本过小会使得实验数据波动过大从而不置信或者导致实验周期过长,最终影响实验的分析效率。不过大型的互联网公司的产品DAU都上千万,抽样2%或者5%已经比较多了,通常不会有什么问题。若有,可以从这个网站上看看至少该抽样多少:https://www.evanmiller.org/ab-testing/sample-size.html。
样本分流之后,如果实验用户只有一层,那么你同时可以做的实验非常得少。拿广告来说,有针对样式形态的实验,有针对广告位置策略的实验,有针对预估模型的实验。如果实验流量只有一层,在一些实验放量10%的情况下,一层的流量只能同时开展10个实验。这个实验的效率是非常低的。因此就有了用户分层的逻辑。
- 用户分层有两个原则:
1.正交分层:同一份流量可以分多个实验层,主要保证每一层的实验用户都均匀的分布到另外的实验层里,达到用户“正交”的效果。
所谓的正交分层,其实可以理解为互不影响的流量分层,从而实验流量复用的效果。
“正交”从字面上理解就是垂直不互相干扰的意思,实际上是上一层每一个实验的影响均匀的分布到下一层里面,使得效果互相抵消,从而不影响下一层的实验评估,这句话才是重点。实际上每一层的影响都会对另外一层有效果,只是用户分层的时候通均匀影响下一层的流量,使得最终互相抵消。用图形表达,如下图,一共有两个实验层,分别是UI层和策略层,在UI层启动了两个优化UI样式的实验分别是蓝色和白色的实验,当UI层的两个实验,分别均匀分布到策略层下面的50%的实验的时候,UI层的实验的影响就会相互抵消。从而,使得在策略层做实验的时候,就可以单独考虑策略层因素的影响效果。
- 实验分层方式
实验流量的分层根据业务的需求通常有多种的划分方法,理论上一个流量可以划分N个层。如下图是一种流量分层的结构,其中一个是贯穿层,用于进行某些对所有功能都有影响的运营活动或者能力,比如春节的红包运营,由于活动是整体的,对UI,策略,内容等模块都会配合修改,因此要评估春节红包活动的时候就会使用贯穿层来评估。而剩余的流量,则会划分为多个层,比如UI层,推荐策略层,内容模块层等。
2. 不同的实验层,逻辑要互斥。
简单来说就是,不同的业务逻辑需要放同不同的层,同时相同的业务逻辑只能在同一层进行。比如,广告的实验,调整样式形态和文案的,只能放在同一层里面进行实验。如果有两个层都进行样式形态或者文案的调整,那么这两个层就会相互影响。
再直白点说就是,一个用户ID的请求,会同时命中多个实验ID,如果存在两个相同的逻辑在不同的层,就会导致逻辑混乱,开发同学在处理逻辑的时候发现有两个实验ID的逻辑都是调整广告样式,一个是调整为动态,一个调整为静态,最终只能有一个生效,就会出现逻辑混乱。
八、单一因素原则
“The last but not the least”,我们在做实验的时候,需要确保每一个实验的评估的因素都是单一因素。即一次实验不要糅合多个影响因素,否则会导致实验效果难以区分是哪个因素的影响。