AB实验原理与实践

  • 1、AB实验介绍
    • 1.1、什么是AB?
    • 1.2、AB实验有什么用?
  • 2、AB实验过程与原理
    • 2.1、AB实验前需要明确的几点
      • (1)明确实验要素与目标;
      • (2)明确核心指标
      • (3)提出假设
    • 2.2、AB实验流程
      • (1)明确目标(最小预计提升MDE)
      • (2)基于MDE预估样本量
      • (3)基于预估样本量预估实验时长
      • (4)AA实验对比
    • 2.3、根据实验结果进行决策
      • (1)AA&AB实验结果计算方法
      • (2)根据实验结果做出决策
  • 3、设计一个AB实验【基于火山引擎】
    • 3.1、ABtest平台介绍
    • 3.2、 建立一个简单的试验(以推送试验为例)
    • 3.3、 编辑试验信息
    • 3.4、 根据试验结果进行最终决策
  • 4、总结
  • 5、参考

关于数据科学工程实践一书的学习笔记与实践拓展,不足之处,望笔者多多指正。

1、AB实验介绍

1.1、什么是AB?

A/B 实验也被称为分离式组间实验或对照实验,是一种科学的因果推断统计方法,被广泛应用于科研领域(药物测试)。随着商业领域产品和活动的精细化运营,尤其是互联网行业中,A/B 实验也受到了越来越多的关注。简单描述 A/B 实验在产品优化中的应用方法:在产品正式迭代发布之前,为同一个目标制定方案,将用户流量对应分成几组,在保证每组用户特征相同的前提下,让用户分别看到不同的产品或者活动策略(可以是策略 1 与策略 2,也可以是实验组或对照组),根据几组用户的真实数据反馈,科学地帮助产品经理进行决策。

1.2、AB实验有什么用?

因果关系是很多互联网、生物等领域的核心关注点,如:今天用户为什么涨?怎样可以让用户多购买、活跃性更高?而探究事物的因果关系是该试验的根本目的。通过科学的AB试验可以解决如下两个统计学问题:

  • 相关性缪误:比如国家的综合实力与国民博士数量成正比,所以国家的综合实力高可以导致国民博士数量增加;显然无法通过相关推出因果【有因果一定相关,有相关不一定有因果】,而通过AB控制单因素的差异进行试验,可以科学地推断事物间的因果关系。

  • 潜在结果与因果效果:潜在结果即未加入影响因子前的结果,因果结果未加入影响因子后的结果,即分别为AB实验各自的结果。举个例子:如果去超市搞打折营销,某用户购买了4个苹果,如果做不做AB的实验的因果探究得到的结果可能恰恰相反。

2、AB实验过程与原理

2.1、AB实验前需要明确的几点

(1)明确实验要素与目标;

开始实验前,分析师与业务方应该明确以下的几类要素:

  • 实验目的:是想通过改变哪几类影响因子改变哪几类指标,即探究哪几类事物间的因果关系;
  • 实验单元:可以说是实验对象,如某APP双11打折促销,实验对象是打开APP的这类用户;
  • 操作因子:即实验中的自变量,如上述例子的操作因子是折扣券;
  • 操作因子水平:操纵因子在实验中设置的水平,即操纵因子可能的取值。因此,操纵因子水平决定了实验组的数量,例如在上述实验中,操纵因子水平为是否有折扣券,所以只有一个实验组,即发放折扣券的用户,而对照组则是空白对照,即无折扣券的用户。实际上,操纵因子水平可以有多个,当实验目标为折扣大小对于App浏览– 下单率的影响时,操纵因子水平可以是不同折扣,这样就有了多个实验组。
  • 因变量:随着操作因子变动的变量,以上述案例为例:因变量为下单率;
  • 效能:操作因子导致因变量变化的量,如上述例子有促销后下单率上升了3%,那么3%就是实验效能;
    注意的是可以影响实验效能的除了操作因子,也会受到如:背景因子、偏执因子以及混淆因子等要素的影响。

(2)明确核心指标

核心指标是衡量实验组是否优于对照组的重要指标,明确核心指标有助于我们在复杂的指标大盘结果中找到重点,快速做出决策。特别是在同时订阅多个指标时,一般将一些指标作为关注指标,将一个指标作为核心指标。

(3)提出假设

A/B 实验的本质是假设检验,它首先对实验组和对照组的关系提出了某种假设,然后计算这两组数据的差异并确定该差异是否存在统计上的显著性,最后根据上述结果对假设做出判断。A/B 实验的原假设是两组没有差异,备择假设是两组有差异,所谓有无差异是对于这个实验的指标而言的,有一点反证法的意思。因此整个实验过程的核心目标为拒绝原假设,证伪后说明原假设不成立。一般情况下提出的原假设内容为:p1=p2=0,p1、p2为AB两组试验的指标值p_1=p_2=0,p_1、p_2为AB两组试验的指标值p1​=p2​=0,p1​、p2​为AB两组试验的指标值

2.2、AB实验流程

(1)明确目标(最小预计提升MDE)

简言之,在进行AB实验前,业务和分析同学需要建立一个心理预期,比如实验中用户的点击率至少提升2%的效果时,才算达到预期的目标,那此时的MDE也就是下文中的Δ\DeltaΔ;

(2)基于MDE预估样本量

预估样本量的目的是为了保证实验过程中保证测试的相对准确(第一类错误α\alphaα)与足够好的统计功效(第二类错误β\betaβ)的,关于两类错误含义的简单介绍可见下表:
假设检验的几类情况

决策 接受H0H_0H0​ 拒绝H1H_1H1​
H0为真,AB无用p1H_0为真,AB无用p_1H0​为真,AB无用p1​ 正确决策,TN(1-α\alphaα) 第一类错误(拒真),α\alphaα
H0为假,AB有用p2,H_0为假,AB有用p_2,H0​为假,AB有用p2​, 第二类错误(取伪),β\betaβ 正确决策(1-β\betaβ)

两类错误的关系可见下图便于理解;

在统计学知识体系中,考虑不同的因素,得到的对应的样本量计算公式也有所不同,这里,主要据笔者了解主要使用的样本量计算公式如下:

  • 只考虑第一类错误α\alphaα的样本量预估
    n=2σ2∗z1−α/22Δ2n=\frac{2 \sigma^{2}*z_{1-\alpha / 2}^{2}}{\Delta^{2}}n=Δ22σ2∗z1−α/22​​
  • 同时考虑第一类α\alphaα与第二类的错误β\betaβ额样本量预估
    n=2σ2(z1−α/2+z1−β)2Δ2n=\frac{2 \sigma^{2}\left(z_{1-\alpha / 2}+z_{1-\beta}\right)^{2}}{\Delta^{2}}n=Δ22σ2(z1−α/2​+z1−β​)2​

其中:
Δ\DeltaΔ:样本均值预期最小提升;
σ2\sigma^{2}σ2 :样本方差,一般情况下取σ2=p(1−p)\sigma^{2}=p(1-p)σ2=p(1−p),p为关键比率(指标)
Z:正态分布累计概率为 x 时对应的分位数,(一般α=0.05时,z1−α/2=1.96\alpha=0.05时,z_{1-\alpha / 2}=1.96α=0.05时,z1−α/2​=1.96,β=0.1时z1−β=1.28\beta=0.1时z_{1-\beta}=1.28β=0.1时z1−β​=1.28)
α\alphaα:第一类错误(拒真)
β\betaβ:第二类错误(取伪)

(3)基于预估样本量预估实验时长

一般来说,如果业务同学与分析同学将放量限死(考虑影响用户数量尽可能的小),比如限制在10%的用户流量是1000,但是实验预估样本量是5000,那么预估的实验时长就是5天(对于比较看重交易日的互金领域就是一周),一般在实际的业务中取一周的比较多。

(4)AA实验对比

在开始AB实验,需要先进行或同步进行一组等量等时长的AA实验,主要目的为:

  • 检查分组流量的分组是否均匀,消除组内差异对实验的影响;
  • 根据AA的实验结果参考,可以判定AB实验结果是否需要矫正(其实可上面的点差不多);

2.3、根据实验结果进行决策

在统计学中,根据样本量的大小的不同(一般以30为界),大样本量使用Z检验,小样本量使用t检验;这里按照比例进行Z检验计算。

(1)AA&AB实验结果计算方法

A/B 实验结束后,样本量达到实验预期提升所需数量,对关键指标(购买、点击率、转化率、留存率等)进行显著性检验,计算公式为:
z=xˉB−xˉASA2nA+SB2nBz=\frac{\bar{x}_{B}-\bar{x}_{A}}{\sqrt{\frac{S_{A}^{2}}{n_{A}}+\frac{S_{B}^{2}}{n_{B}}}}z=nA​SA2​​+nB​SB2​​​xˉB​−xˉA​​
其中:
A:对照组
B:实验组
xˉA\bar{x}_{A}xˉA​::对照组样本均值;
xˉB\bar{x}_{B}xˉB​:实验组样本均值;
SA2S_{A}^{2}SA2​:对照组样本方差;
SB2S_{B}^{2}SB2​::实验组样本方差;
nAn_{A}nA​:对照组样本量;
nBn_{B}nB​:实验组样本量

(2)根据实验结果做出决策

实验的结果的评估方式一般为两种

  • 根据显著性检验的Z检验值进行决策,一般取α\alphaα=0.05,对应的Z临界值为1.96,(>1.96拒绝原假设,<1.96接受原假设)
  • 根据置信区间进行决策,相当于Z临界的另外一种公式的体现,根据关键指标是否在置信区间内(在接受原假设,不在拒绝原假设)

3、设计一个AB实验【基于火山引擎】

3.1、ABtest平台介绍

该平台为字节火山引擎下的一个子功能(AB试验平台),通过申请账号与试用可以得到为期两周的试用

3.2、 建立一个简单的试验(以推送试验为例)

(1)新建试验

(2)类型选为推送

3.3、 编辑试验信息

(1)编辑名称

(2)AB版本设置

(3)关键指标设置
评价AB两个版本的好坏的需要选定一个关键评价指标进行对比对位最终评判的依据,同时,一个版本的上线也需要关注其他一些指标,但关键评价指标一般只有一个。

(4)根据预期目标计算预期样本量

可定义的变量指标有:

  • WAU周活
  • 核心指标基准线(核心评价指标的历史均值)
  • 校验灵敏度MDE
  • 统计功效power(1-β\betaβ)
  • 试验天数
    设置好试验流量后,即可开始调试,完成试验创建

3.4、 根据试验结果进行最终决策

由于试用版本展示无法将实际的放进去进行试验,但是试验列表给出几个完成测试的试验报告如下图:

  • 一个测试失败的AB

  • 一个测试成功的AB

4、总结

本文介绍的AB实验将策略或者新产品的潜在效果与实际效果进行对比,帮助我们科学、有效地比较两个策略的效果。但是运用于实际业务的过程中仍然有以下不足与待解决的疑问:

  • 用户特征多差异大的情况下,如何做到科学的分流,本文暂未提出方案(具体解决方案可见试验设计一书);
  • 在较多AB实验需求用户流量较多的情况,那些实验流量需要进行互斥、那些进行正交实验,仍有待后文进一步的详细阐述;
  • 在用户流量的较少的情况的下是否还适用AB实验?
    最后,目前认为分析同学需要对AB保持客观的认知,比如:
  • 版本迭代过程中,没有最好的版本,只有最合适的版本,AB测试的目的是进行科学的决策;
  • AB测试不是万能的,实验前后同时需要业务同学根据经验判断实验的合理性,但是不会AB对于分析同学而言是万万不能的;
  • AB并不是最好的评估方式,AB的局限在于在实际的业务侧里并不是所有的业务场景都满足使用AB的实验要求;

5、参考

谢梁、王子玲等《数据科学工程实践》
火山引擎

数据科学工程篇_AB实验原理与实践相关推荐

  1. Python数据科学-技术详解与商业实践视频教程

    Python数据科学-技术详解与商业实践(八大案例) 网盘地址:https://pan.baidu.com/s/13QrR_5Er6LgWCWzSb7qOrQ 提取码:s7vw 备用地址(腾讯微云): ...

  2. python数据科学课后答案_Python数据科学-技术详解与商业实践-第五讲作业

    作者:Ben,著有<Python数据科学:技术详解与商业实践>.<用商业案例学R语言数据挖掘>.<胸有成竹-数据分析的SAS EG进阶>作者.2005年进入数据科学 ...

  3. python数据挖掘商业案例_Python数据科学-技术详解与商业实践-第八讲作业

    作者:Ben,著有<Python数据科学:技术详解与商业实践>.<用商业案例学R语言数据挖掘>.<胸有成竹-数据分析的SAS EG进阶>作者.2005年进入数据科学 ...

  4. 数据工程 数据科学_10篇关于数据科学和数据工程的伟大文章

    数据工程 数据科学 数据科学和程序设计是一个快速发展的专业,很难跟上Google,Uber,Netflix和一位工程师的所有文章. 过去几周我们一直在阅读一些内容,并希望在2019年4月这一周分享一些 ...

  5. 精通数据科学_10篇文章变得更加精通数据科学

    精通数据科学 当领英发布其第三份年度新兴工作报告时 ,各地的工程师都说:"阿们". 超过一半的清单是工程角色,并且首次出现了新的领域,例如机器人技术. 但是数据科学也有很强的表现. ...

  6. 数据科学教育白皮书联合发布!顶级数据人才成长路径

    Datawhale原创 联合发布:和鲸科技.腾云大学.AWS.Datawhale 寄语:为什么要加快推进高校的数据科学教育?数据科学的知识体系包括哪些内容?数据科学人才的成长路径及教育方法论?我们希望 ...

  7. 大数据应用技术课程教学改革与实践

    点击上方蓝字关注我们 大数据应用技术课程教学改革与实践 夏大文1,2, 王林1,2, 张乾1,2, 魏嘉银1,2, 冯夫健1,2, 李华青3,4 1 贵州民族大学数据科学与信息工程学院,贵州 贵阳 5 ...

  8. Python数据科学|第一章:数据科学家的武器库

    本系列教程为<Python数据科学--技术详解与商业实践>的读书笔记.该书以Python为实现工具,以商业实战为导向,从技术.业务.商业实战3个维度来展开学习.本书共19章(Python环 ...

  9. 万亿数字化市场,数据科学为何能扛起“价值担当”?

    数据科学家,被誉是"21世纪最性感的职业". 如今,一股数据科学的热潮正席卷国内各大高校.今年十月底,一系列数据科学的网络直播课在多所大学火爆异常,吸引来自北大.清华.北师大.哈工 ...

  10. 独家 | 2018年Analytics Vidhya上最受欢迎的15篇数据科学和机器学习文章

    作者:Pranav Dar 翻译:陈之炎 校对:丁楠雅 本文约4200字,建议阅读10+分钟. 本文为你整理了多个高质量和受欢迎的数据科学培训课程.学习文章及学习指南. 简介 Analytics Vi ...

最新文章

  1. freemarker中运算符_如何在Web应用系统表示层开发中应用Velocity模板技术
  2. 划词翻译软件QTranslate 6.7.3 中文绿色版
  3. Kubernetes 入门(2)基本组件
  4. 前端学习(2185):tabberitem传入active图片
  5. 计算机教师专业发展规划,信息技术教师成长规划_信息技术教师专业成长浅谈...
  6. 探究call 和 apply 的原理
  7. 如何基于链表实现 LRU 缓存淘汰算法?
  8. oracle get wkt,Bing Maps开发扩展:Oracle Spatial的空间数据渲染
  9. 全国计算机网络考试和答案,全国计算机三级《网络技术》复习题及答案2017
  10. 储量级别122b_储量级别代码是什么
  11. java获取本机ip和端口_java获取本机ip和端口
  12. 十二时辰及经络走向图
  13. 计算机英语格式怎么写,26个英文字母,正确的书写格式,孩子真的会吗?
  14. 怎么解决java.lang.NoClassDefFoundError错误 ,以及类的加载机制
  15. 浅谈APP开发报价单的组成
  16. php新闻系统毕业论文指导记录,毕业论文指导记录(精选多篇)
  17. web 端 打开qq对话框
  18. LabVIEW同时使用NI 的GPIB和Keysight 的HPIB控制器
  19. css属性选择器诸如Class^=,Class*= ,Class$=释义
  20. 注册表usbstor删除不了_删除电脑中U盘使用记录三部曲

热门文章

  1. docker-compose listing workers for Build: failed to list workers
  2. 超声波传感器测距c语言编程,如何DIY一个属于你的超声波测距传感器三:程序的构思和设计...
  3. python 动态执行 内存变化_深入理解python数组的动态扩容机制以及摊销分析
  4. matlab里面的取整函数
  5. 矩阵快速幂codevs 3332 数列
  6. kdj买卖指标公式源码_KDJ胜率极高的买入机会,死记一个指标(附KDJ背离指标源码)...
  7. highchart图表drilldown钻取功能及event点击事件添加(1)
  8. 计算机bios设置翻译,bios设置中文翻译的操作教程
  9. 幼儿园带括号算式口诀_巧记数学公式,背熟这41组数学顺口溜就对了!
  10. 【VBA研究】用VBA创建数据透视表