AB测试

一 、ABTest与统计学

数据分析告诉我们要不要去做一件事情,ab 实验反馈告诉我们我们做得好不好,哪里有问题,以及衡量可以带来多少确定性的增长。

ABTest的目的是为了快速验证一个版本是不是比另外一个版本要好。

统计学能告诉我们如何抽样才能具有充分的代表性,如何从样本反应出的信息中推测总体状况

理论基础

1、中心极限定理:

大量相互独立的随机变量,其均值(或者和)的分布以正态分布为极限(意思就是当满足某些条件的时候,比如Sample Size比较大,采样次数区域无穷大的时候,就越接近正态分布)。而这个定理amazing的地方在于,无论是什么分布的随机变量,都满足这个定理。

2、大数定理

​ 简单的可以描述为,如果有一个随机变量X,你不断的观察并且采样这个随机变量,得到了n个采样值,然后求得这n个采样值得平均值,当n趋向于正无穷的时候,这个平均值就收敛于这个随机变量X的期望。

3、置信区间和统计显著性

​ 置信区间是(用来对一个概率样本的总体参数进行区间估计的) 样本均值范围,它展现了这个均值范围包含总体参数的概率,这个概率称为置信水平;

置信水平代表了估计的可靠度,一般而言,我们采用95% 的置信水平进行区间估计。

置信区间在ABtest中的意义:(两个总体的均值之差的置信区间)

由t检验大样本检验公式计算得出Z值(由均值、样本量、方差计算出来的统计值,通过这个统计值再结合分布公式,也可以计算出p value从而作出是否拒绝原假设的决策),再根据两个总体的均值、标准差和样本大小,利用以下公式即可求出两个总体均值差的95%置信区间:

img

值得注意的是,置信区间的上下限同为正或负,只能说明试验是统计显著的(也就是试验版本和对照版本有差异),但是这个差异有可能是非常小的,在实际应用中微不足道的。因此,只有兼备统计显著和效果显著两个特征的结果,才能说明该版本是可用,值得发布的。

二、如何抽样

要保证样本具有足够的代表性需要做到2点:

1、随机抽样

2、足够的样本量

随机抽样

随机抽样可以保证样本中的每个研究个体均有相等的机会被抽中的抽样方法。常用的随机抽样法有:

·简单随机抽样(simple randomsampling)

·系统抽样(systematicsampling)-也称等距抽样

·分层随机抽样(stratified randomsampling)

·整群抽样(cluster sampling)

ABTest中的样本(实验组和对照组用户群)是根据个体(具体某个用户)的某个属性(userId,cookie等)进行hash取模后抽取出来的。hash算法保证了抽取的随机性。因为互联网数据海量以及获取方便的特点,简单随机抽样是最常用的抽样方法。

足够的样本量

足够的样本量怎么保证呢?我们在这里先不展开讲样本量如何影响最终结果的。但我们可以先建立一个定性的认识:样本量越大,通过样本去评估总体的误差就越小。当误差小于我们需要的精度时,样本量就足够了。

三、 如何估计总体

经过抽样,我们得到了实验组和对照组的用户群。并通过观测收集(数据上报),得到这些用户当天是否活跃的数据。

定理结论

“随机变量之和的分布函数向正态分布收敛。“

凡是在一定条件下断定随机变量之和的极限分布是正态分布的定理,在概率论中被统称为“中心极限定理”。

理解

该定理的着眼点是“变量之和的分布”,一个变量服从正态分布的并不多,但多个变量之和的分布服从于正态分布则是普遍存在的。

例如均值,我们知道均值就是多个变量值之和的变换形式,是变量之和的平均值,故样本均值也是服从正态分布的。

中心极限定理揭示了大部分社会经济现象表现为正态分布的原因,正是中心极限定理让正态分布有了如此广阔的应用。在考虑随机因素总和的极限分布时,只要那些因素对总体的影响均匀的小,同时又是独立的,总和达到一定数量,则可认为其服从正态分布。

中心极限定理解读

1、样本均值约等于总体平均值;

2、不管总体是什么分布,任意一个总体的样本均值总会围绕在总体均值左右,呈现正态分布。

如何应用?

如上可知,我们不知道总体的数量和均值,有了中心极限定理我们就可以通过一个抽样得到的样本,来推断总体的特征,这为我们研究总体的特性指明了一条路。具体标准作业流程如下:

1、直接抽取样本,其容量为n

2、求出均值和标准差s

3、根据标准差s,求出标准误差SE=

4、根据置信水平,如95%,查Z表,求出标准分

5、均值加减标准分个标准误差,即得出置信区间的上下限

至此我们会得出一个可信度为95%的区间,也就是说总体均值有95%的可能性落在这个区间里。这样我们仅通过一个样本的分析,就得到了不可能知晓的总体的均值的一个范围。

需要注意的是,大样本的估计本质上是,根据中心极限定理应用正态分布,求Z值,来计算置信区间。

四、AB test和离线评估的优缺点和使用场景

1、AB test 系统搭建和维护需要一定成本,对技术也有一定要求,如果该系统做得不好,用了反而有害;ab系统更多是用于方便衡量算法/产品优化带来的效果,对于用人紧缺的创业公司其实不是必要的;

2、离线评估最重要是模拟真实线上场景,如果模拟不好,离线测试的结果也不可信;

  但是,当公司的ab test系统还没有搭建好的时候,离线评估还是很有必要,起码有一些明显的算法问题可以通过离线测试看出来,模型选择和调优也需要离线测试,而且离线测试不会对线上造成影响,ab实验则会;

3、当产品在市场上的竞争环境激烈,项目上线需要争取有利时机时,往往凭借战略决策来决定上线与否而不是ab实验,ab实验有一段观察期而且需要外部条件相对稳定才能得出客观的结论,适用于产品的发展期处于相对比较平稳的时候,防止决策错误导致数据下降;

  因此,实时数据分析是有必要的,实时ab test必要性不是很强;

4、多数的ab test系统并不具备决策推全后仍然持续观察的能力,有一些关乎实现公司或者产品长期战略目标的功能/算法,可能短期内会导致指标下降或者没有明显增长,但是也必须要上线;

5、AB test 帮助你在现有流量中获取更多的收益,或者在现有流量中提升ROI,或者说在现有用户基础上提升活跃度,但是在衡量对用户量增长或者获取新流量是否有帮助上,ab test或者所起作用不大。

6、AB test还有一个缺点,就是只能做小范围的效果比较,比如作用于同一个场景使用不同算法的效果比较;比如它不能告诉我们,A业务的推荐算法是否比B业务的推荐算法做得好;也就是说它不能衡量一个模型的迁移和泛化能力;

到这里,我们已经实现了对版本A和版本B 全量发布后的用户日均使用时长的估计。那么,这是否可以得出版本B比版本A好的结论呢?

-------------本文结束感谢您的阅读-------------