AB test学习笔记

AB Test 介绍:

https://vwo.com/ab-testing/算法

AB Test 的意义:

数据分析告诉咱们要不要去作一件事情,ab 实验反馈告诉咱们咱们作得好很差,哪里有问题,以及衡量能够带来多少肯定性的增加。工具

1、理论基础

 
1、中心极限定理:
 
大量相互独立的随机变量,其均值(或者和)的分布以正态分布为极限(意思就是当知足某些条件的时候,好比Sample Size比较大,采样次数区域无穷大的时候,就越接近正态分布)。而这个定理amazing的地方在于,不管是什么分布的随机变量,都知足这个定理。
 
2、大数定理
 
    简单的能够描述为,若是有一个随机变量X,你不断的观察而且采样这个随机变量,获得了n个采样值,而后求得这n个采样值得平均值,当n趋向于正无穷的时候,这个平均值就收敛于这个随机变量X的指望。
 
三、置信区间和统计显著性
参考:

https://zhuanlan.zhihu.com/p/22987913优化

 

 概念:样本、整体
 
置信区间是(用来对一个几率样本的整体参数进行区间估计的) 样本均值范围,它展示了这个均值范围包含整体参数的几率,这个几率称为置信水平;
 
置信水平表明了估计的可靠度,通常而言,咱们采用95% 的置信水平进行区间估计。
 
置信区间在ABtest中的意义:(两个整体的均值之差的置信区间)
 
由t检验大样本检验公式计算得出Z值(由均值、样本量、方差计算出来的统计值,经过这个统计值再结合分布公式,也能够计算出p value从而做出是否拒绝原假设的决策),再根据两个整体的均值、标准差和样
本大小,利用如下公式便可求出两个整体均值差的95%置信区间:

 

 

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

2、AB testing的实验注意点

 
一、时间一致性;
 
二、数据分布的一致性;
 
三、统计显著的结果才能够引导决策;
 
四、实验分组设计上(流量分布要均匀):
 
算法对用户的误差没有反映到实验分桶上,会放大算法之间效果的差距,从而产生辛普森悖论;
 
五、置信
 
要得到一个可信的试验结果须要必定的流量(样本)和时间,若是流量(样本)过小或者分不均匀,试验结果会存在偶然性,可能没法得出可信的结果;试验运行时间过短的话同理;
 
六、时间
 
实验周期中也要避免外部因素的影响,尽可能在平稳时期进行,减小外部因素的干扰;
 
有时候为了保证明验效果的置信,防止小流量分布不均匀,能够在试验过程当中,逐步增大流量分配,同时监控关键指标的数据走势,从而获得置信的结论;
 

3、分流及分桶原理

须要保证:spa

(1)同一实验中不一样分桶之间是随机的;设计

(2)不一样的场景、实验,分桶会被从新打散;orm

(3)实验设计时,须要考虑验证哪一个因子,则能够按照那个因子来进行分桶;blog

 

分桶和分流之间的关系:three

  分流是指,从整体中随机抽样百分之几来作实验;get

  分桶是指,在实验的流量里面根据某个须要验证的因子随机分桶;

4、分桶不平衡的验证办法

 
一、AA testing
 
A/A测试能够理解成对两个相同版本进行的A/B测试。一般,这样作的目的是为了验证正在使用的工具运行试验在统计上是公平的。在A/A测试中,若是测试正确进行,控制组和实验组应该没有任何区别。
 
若是说A/B测试用来测试比较几个方案的优劣,那么A/A测试就是验证A/B测试及工具置信度的有效方式。
 
应该考虑运行A/A测试的惟一种状况:
 
(1)你刚安装了一个新的测试工具或更改了测试工具设置;
 
(2)你发现了A/B测试与数据分析工具结果之间存在差别;
 
通常在AB测试以前进行AA测试,或者在ab测试中同时进行A/A/B测试,观察两个相同的A组之间是否有统计显著的不一样,从而肯定分桶规则是否靠谱。一些分析代表,这种方式还不如直接让控制桶(a桶)是实验桶(b桶)的两倍大(所谓的 池化)
 
二、多项检验的统计方法;
 
 

5、分桶不平衡的解决办法

 
一、由AA实验演变的A:B=2:1的流量大小分配方式;
 
二、经过逐步放大流量作对比的方式;
 
 

6、AB test的应用

 
一、方案优选;
二、系统测试;
三、因果推断;
 

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

一、AB test 系统搭建和维护须要必定成本,对技术也有必定要求,若是该系统作得很差,用了反而有害;ab系统更可能是用于方便衡量算法/产品 优化带来的效果,对于用人紧缺的创业公司其实不是必要的;
二、离线评估最重要是模拟真实线上场景,若是模拟很差,离线测试的结果也不可信;
  可是,当公司的ab test系统尚未搭建好的时候,离线评估仍是颇有必要,起码有一些明显的算法问题能够经过离线测试看出来,模型选择和调优也须要离线测试,并且离线测试不会对线上形成影响,ab实验则会;
三、当产品在市场上的竞争环境激烈,项目上线须要争取有利时机时,每每凭借战略决策来决定上线与否而不是ab实验,ab实验有一段观察期并且须要外部条件相对稳定才能得出客观的结论,适用于产品的发展期处于相对比较平稳的时候,防止决策错误致使数据降低;
  所以,实时数据分析是有必要的,实时ab test必要性不是很强;
四、多数的ab test系统并不具有决策推全后仍然持续观察的能力,有一些关乎实现公司或者产品长期战略目标的功能/算法,可能短时间内会致使指标降低或者没有明显增加,可是也必需要上线;
五、AB test 帮助你在现有流量中获取更多的收益,或者在现有流量中提高ROI,或者说在现有用户基础上提高活跃度,可是在衡量对用户量增加或者获取新流量是否有帮助上,ab test或者所起做用不大。
六、AB test还有一个缺点,就是只能作小范围的效果比较,好比做用于同一个场景使用不一样算法的效果比较;好比它不能告诉咱们,A业务的推荐算法是否比B业务的推荐算法作得好;也就是说它不能衡量一个模型的迁移和泛化能力;
 
 

算法ab test 与数据分析的关联:

 一、使用deep模型作算法,ab test衡量算法end-to-end的效果;而后用统计分析方法或者ml的方法作模型解释,或者是建模前的特征分析。
 
 

其余:

 
1、验证达尔文系统流量分配不均的问题解决办法:设置AA testing
 
2、对照组的设置要和优化baseline一致,实验设计要和咱们须要验证的结论相一致才行;
 
3、模型究竟是否须要 fine tuning?(权衡模型调优与新算法尝试之间的选择:看目标究竟是要精准仍是要召回高?实际上是准确率和召回率的平衡。抛开业务需求,一个好的模型,是在准确率和召回率趋向接近的基础上,二者还能达到一个比较高的值;那若是是有业务需求,那么就根据业务需求使用相应特色的模型)
 
四、在线模型里面究竟是抽样训练仍是全量样本训练比较好?(训练样本抽样方面的优化)(须要实验验证)
 
五、特征优化包括特征的全面性完善和特征加工方式的多样性完善;
 
 数据分析->基础特征加工->模型设计->平台工具(特征工程、模型训练及预测)->实验设计及验证->(反馈到前面任意步骤再顺序执行)
 

 附:

ab test tutorial

具体计算方法及工具:

 
贾俊平 《统计学》5~8章
相关文章
相关标签/搜索