目录

定义

相关概念

1. 白名单

2. 流量正交&正交实验

3. 灰度发布

4.检验灵敏度

AB Test 完整的实验流程

1. 流程

2. 注意事项

3. 假设检验

4. 实验

5. 分流

6. 确定最小样本量

7. 确定实验时长

8. Z检验

9. T检验

不显著现象及解决


定义

为了验证一个新策略的效果,准备原策略A和新策略B两种方案。 随后在总体用户中取出一小部分,将这部分用户完全随机地分在两个组中,使两组用户在统计角度无差别。将原策略A和新策略B分别展示给不同的用户组,一段时间后,结合统计方法分析数据,得到两种策略生效后指标的变化结果,并以此判断新策略B是否符合预期

相关概念

1. 白名单

实验正式开启之前,通常需要先选择几名用户进入测试阶段,观察实验是否能够正常获取想要收集的数据,或客户端是否有bug等。参与这一步的用户被称为“白名单用户

2. 流量正交&正交实验

互斥组=互斥层=实验层

每个独立实验为一层,一份流量穿越每层实验时,都会随机打散再重组,保证每层流量数量相同。

举个例子。假设我现在有2个实验。

  • 实验A(实验组标记为A1,对照组标记为A2)分布于实验层1,取用该层100%的流量;
  • 实验B(实验组标记为B1,对照组标记为B2)分布于实验层2,也取用该层100%的流量。

要注意,实验层1和实验层2实际上是同一批用户,实验层2只是复用了实验层1的流量 。

如果把A1组的流量分成2半,一份放进B1组,一份放进B2组;

再把A2组的流量也分成2半,一份放进B1组,一份放进B2组。

那么两个实验对于流量的调用就会如下图所示。此时实验A和实验B之间,就形成了流量“正交”。

流量正交有什么意义呢?

我们可以发现,因为A1组的一半流量在B1中,另一半流量在B2中,因此即使A1的策略会对实验B产生影响,那么这种影响也均匀的分布在了实验B的两个组之中;

在这种情况下,如果B1组的指标上涨了,那么就可以排除B1是受A1影响才形成上涨。这就是流量正交存在的意义。

对与分层实验有个很重要的点就是每一层用完的流量进入下一层时,一定均匀的重新分配。

3. 灰度发布

是指在黑与白之间,能够平滑过渡的一种发布方式。AB test就是一种灰度发布方式,让一部分用户继续用A,一部分用户开始用B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。

4.检验灵敏度

MDE是什么:Minimum Detectable Effect (MDE),最小可检测单位,即检验灵敏度,是实验在当前条件下能有效检测的指标diff幅度。有效检测,指检出概率大于等于80%(type II error小于等于20%)。

通过比较指标MDE与指标的目标提升率,以避免实验在灵敏度不足的情况下被过早作出非显著结论 而结束,错失有潜力的feature。

AB Test 完整的实验流程

1. 流程

  • 确定需要对比的两个方案及试验目标-确定目标以及创建辩题

  • 生成假设

  • 确定评估指标:确定衡量优化效果的指标(如:CTR,停留时长等)

  • 确定实验用户群体和最小实验的样本数

  • 分配流量:确定实验分层分流方案,以及实验需要切分多少流量,一般根据最小样本量确定
  • 确定实验有效天数:实验的有效天数即为实验进行多少天能达到流量的最小样本量。
  • 上线实验
  • 收集数据
  • 分析AB test 结果评估,采用t、z和f检验计算相关统计量和p值,p小于,则拒绝原假设。

2. 注意事项

  • 保证变量单一(实验组和对照组只有一个变量不同,控制变量)
  • 保证样本量合适、实验时长合适
  • 用户分流分层合适
  • 指标确定合理(统计功效方面)

3. 假设检验

  • 假设检验是用来判断样本与样本,样本与总体的差异是由抽样误差引起,还是有本质差别造成的统计推断方法。
  • 假设检验是先对总体的参数提出某种假设,然后利用样本数据判断假设是否成立的过程。逻辑上运用反证法,统计上依据小概率思想。

小概率思想是指小概率事件(显著性水平 p < 0.05)在一次试验中基本上不会发生

具体到AB Testing,就是假设实验版本的总体参数(优化指标均值)等于对照版本的总体参数,然后利用这两个版本的样本数据来判断这个假设是否成立。

  • 原假设H0:这项改动不会对核心指标有显著的影响
  • 备选假设H1:这项改动会对核心指标有显著影响

假设检验工具:Evans awesome AB Tools

4. 实验

  • 正交实验:如果实验之间共享同一份流量实验效果之间不干扰,这样的实验我们叫正交实验,这种情况下,流经两个实验的流量是可以共享的,流经实验一的流量也可以流经实验二
  • 互斥实验:如果分层共享同一份流量就有可能出现实验效果之间相互干扰的问题,这样的实验叫互斥实验,也就是如果实验一和实验二是互斥关系,那么经过实验一的流量就不能进入到实验二

5. 分流

  • 实验有了,怎么分流也很重要。分流指的是根据分流算法策略为每层的每个实验分配相应的流量,从请求角度来说,是让每个请求都能在各层能准确稳定的命中到相应实验。
  • 每一层的每个实验的实验组和对照组就是一个分组,每层的流量一共是100,假设这一层有两个实验分别是实验一和实验二,流量配比各为50%,每个实验各有一实验组和对照组,实验组和对照组平分流量各得25%,那么这里每层实验就有4个分组。
  • 整体流量按分组划分,从0开始编号的话,可以认为,实验一组一的分组装的是0~24的编号,实验一组二的分组装的是25~49编号,类推,实验二组二的分组装的是75~99的编号。一个流量请求在每一层中只能命中到一个实验组,也就是说只能被分到一个分组内。
  • 一般我们会选择用用户id和实验层id哈希取模(mod=f(uid, layer)%100),得到的值在哪个分组内,该请求就命中哪个实验的那个组,这样 保证了用户在每层命中的实验是随机且是稳定的

6. 确定最小样本量

  • 每一个实验组所需的样本量计算公式如下:

置信水平:

统计功效:为样本标准差,为组间预期差值

  • 当观测指标为绝对值类指标时:

​​​

其中:n为样本数量,为样本均值

当观测指标为比率类指标时:

其中 分别为对照组和实验组的观测数据

计算样本量比较常见且好用的在线计算工具:Evans awesome AB Tool

7. 确定实验时长

  • 试验进行多少天能达到流量的最小样本量
  • 同时还要考虑到用户的行为周期和适应期
  • 试验结果的置信区间的收敛速度。如果置信区间达到3%-5%已经可以决策了,就可以停止试验

8. Z检验

  • 一般要求总体方差已知,或者方差未知但是样本量足够大(一般需要大于30,可以用样本的方差代替总体方差)

  • 用于检验一个样本的均值是否与某个固定值有显著性差异,或者两个样本的均值是否有显著性差异

9. T检验

  • 当总体方差未知并且样本个数比较少(少于30)时,一般用t检验。

  • t检验需要样本满足正态分布,用于正态分布总体均值的显著性检验问题。

不显著现象及解决

  • 统计显著!= 实际显著

可能的原因是我们在AB测试当中所选取的样本量过大,导致和总体数据量差异很小,这样的话即使我们发现一个细微的差别,它在统计上来说是显著的,在实际的案例当中可能会变得不显著了。

对应到我们的互联网产品实践当中,我们做了一个改动,APP的启动时间的优化了0.001秒,这个数字可能在统计学上对应的P值很小,也就是说统计学上是显著的,但是在实际中用户0.01秒的差异是感知不出来的。

  • AB测试效果统计上不显著,就直接放弃?

对于这种情况,我们所选取的一种通用的方式是将这个指标去拆分成每一天去观察。

如果指标的变化曲线每一天实验组都高于对照组,即使他在统计上来说是不显著的,我们也认为在这样一个观测周期内,实验组的关键指标表现是优于对照组的,那么结合这样一个观测,我们最终也可以得出这个优化可以上线的结论。

  • 实验组优于对照组就能上线?

不一定。举个例子,比如说有的时候我们想要提升产品的视觉展现效果。但是这种优化可能是以用户等待内容展现的时间作为代价来进行提升的。

所以一个方面的优化可能会导致另一个方面的劣化。在做这个优化的时候,可能会对其他部门产生一些负向的影响,进而导致公司收入的下降。

所以我们在进行AB测试的时候,必须要综合评估所有方面的一些指标变动,同时对于收益和损失来做一个评估,才能确认这个优化可以最终上线。

  • AB测试是必须的么?

如果只是验证一个小按钮或者一个小改动,我们可以在界面上去设置一个开关,用户可以通过开关的形式自行决定采用哪一种方式。

那么我们最后就可以通过这个开关的相关指标去判断用户对于哪一种形式又有更大的倾向性。

或者有的时候我们可以去做一些用户调研,比如说通过访谈或者说是设计问卷的形式,去收集一些用户的反馈。或者他们关于这些小变动的体验,所以并不是绝对的。


后续会更新:假设检验原理,其它必要统计学知识。

点个赞再走,这次一定~~

最详细的A/B test 原理相关推荐

  1. 最详细易懂的CRC-16校验原理(附源程序)

    from:http://www.openhw.org/chudonganjin/blog/12-08/230184_515e6.html 最详细易懂的CRC-16校验原理(附源程序) 1.循环校验码( ...

  2. 可能是最详细的Android图片压缩原理分析(二)—— 鲁班压缩算法解析

    本篇文章已授权微信公众号guolin_blog(郭霖)独家发布 稀土掘金链接 前言 通过上一篇,我们了解了一些关于图片压缩的基础知识,这篇文章我们主要讲解一下鲁班压缩的算法逻辑,很多博客都是从Gith ...

  3. 可能是最详细的Android图片压缩原理分析(一)—— Android图片压缩必备基础知识

    本篇文章已授权微信公众号guolin_blog(郭霖)独家发布 稀土掘金链接 前言: 最近在研究图片压缩原理,看了大量资料,从上层尺寸压缩.质量压缩原理到下层的哈夫曼压缩,走成华大道,然后去二仙桥,全 ...

  4. 老徐WEB:最简单详细的轮播图原理和制作过程(一)

    老徐利用空闲时间,制作了一个最简单的轮播图,主要介绍轮播图的原理和制作过程,只要大家能认真看完这篇文章,并理解文中内容,就能完全掌握轮播图的制作了.之后工作中碰到复杂的轮播图,自己也能思考制作出来了. ...

  5. mysql数据库视图原理_详细分析mysql视图的原理及使用方法

    前言: 在MySQL中,视图可能是我们最常用的数据库对象之一了.那么你知道视图和表的区别吗?你知道创建及使用视图要注意哪些点吗?可能很多人对视图只是一知半解,想详细了解视图的同学看过来哟,本篇文章会详 ...

  6. PS图层混合模式超详细解答-图层混合模式的原理(Part1)

    PS图层混合模式超详细解答-图层混合模式的原理 ☕ 前言 本教程非常详细,请用心看完 本教程如果有如何问题,欢迎评论区留言讨论 本教程为了避免冗余,一些不必要的截图就省略了 本教程只讨论8bit的情形 ...

  7. 运维必看,zabbix详细攻略,监控原理、监控流程、部署流程

    Zabbix简介 zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案. zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系统管 ...

  8. 超全面详细的身份证号码编码原理,拿走不谢!

    身份证号码是国家为每个公民从出生之日起编定的唯一的.终身不变的的代码.身份证上的号码你知道都代表什么意思吗?为什么有些人身份证号码最后一位是X?今天博主就向大家仔细的介绍一下身份号码的组成.含义以及编 ...

  9. 全网最详细安装 IntelliJ IDEA (原理+方法)看了不后悔

    文章目录 原理 安装JDK 安装 IntelliJ IDEA 小结 原理 很多小伙伴在一开始学习Java的时候,常常会听到 jdk,jre,jvm 这3个词,其实我一开始学的时候也是听老师讲这3个词一 ...

  10. 详细分析SNAT和DNAT原理与应用

    SNAT原理与应用 一. SNAT原理的应用 1.1 原因环境和原理 1.2 开启SNAT的命令 1.3 SNAT转换 1.3.1 SNAT转换1∶固定的公网IP地址∶ 1.3.2 SNAT实验 1. ...

最新文章

  1. 代码和产品发布的几种方式
  2. 安装 Windows8 后值得做的十多项简单优化,让Win8速度快上加快!
  3. elasticsearch配置小记
  4. 鼠标马赛克图像部分区域
  5. Golang gorouting 并发控制 sync.WaitGroup 介绍与使用
  6. boost::multiprecision模块debug_adaptor相关的测试程序
  7. 良性计算机病毒对计算有没有危害机系统,154、计算机病毒有良性和恶性之分,其中, – 手机爱问...
  8. Grafana、M3DB、Prometheus 集成 关于M3DB集成的文章本就不多,快来瞅瞅吧!!!说不定有用呢?
  9. Gnofract 4D 3.0
  10. SpringBoot配置详解
  11. python优点是代码库支持、灵活_C++和Python混合编程的利器
  12. 单线程无阻塞IO模型在Node.js中的工作方式
  13. Project Euler Problem 48: Self powers
  14. canvas beginPath()的初步理解
  15. 防火墙透明模式下虚拟系统配置实例
  16. 基于SpringBoot在线电影订票系统
  17. HTML中图片文件名字有括号,文件批量顺序重命名去掉括号
  18. Supplier和Vendor的区别
  19. 蘑菇街测试开发实习生面经
  20. 作为互联网人,这些潮流词汇你懂吗?

热门文章

  1. CC00007.CloudOpenStack——|OpenStack组件.V02|——|openstack-keystone|controller节点下部署Key
  2. 小米手机如何关闭系统扩展服务器,小米手机如何关闭广告?MIUI12系统这样操作就够了...
  3. 【 linux 从入门到放弃(全网最详细虚拟机及c7安装)】
  4. 南柯服务器压力,性能/负载/压力测试 - Mr.南柯 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
  5. 全新数据增强 | TransMix 超越Mix-up、Cut-mix方法让模型更加鲁棒、精度更高
  6. 豆瓣评论数据词云画像()
  7. matlab 将子文件下同名称文件移植到同一文件夹下并按序排列重命名n.bmp,n=1,2,3...
  8. Exiting intel PXE ROM.Operating system not found
  9. Mac OS X pl2303 的驱动下载
  10. 程序员节你们公司都有什么活动