数据分析3–对比法(AB test)

  • Post author:
  • Post category:其他


在对比方法中,A/B试验是一种较为典型的方法,它通过线上试验对比在相同干预条件下对照组和试验组之间的差异,从而得出结论。本章重点介绍A/B试验,会着重从A/B试验的设计、统计学原理出发详细介绍每一个环节的操作流程,还会利用公开数据集介绍A/B试验相关的分析流程。

A/B试验本质上是假设检验的过程,在试验之初需要产品经理、运营人员、数据分析师和前后端工程师相互配合,共同完成试验组和对照组的配置,数据分析师基于对照组和试验组提出某种假设,然后收集试验组和对照组的数据,通过假设检验验证两组数据是否在统计学上存在差异。

7ccfdfec5aa8469fb7616bcf577680c3.png

1.1 对比的多个层面

(1)在产品层面,可以通过与相似产品进行对比以分析次日留存率是否正常。例如,可以对比抖音和快手用户的次日留存率,发现快手用户的次日留存率略高于抖音,这时抖音可以推出某些促活活动,从而提高次日留存率。

(2)在地区层面,可以将关键指标拆分到不同的地区,然后分析该指标在不同地区的表现。例如,可以将11月份的GMV拆分到各个地区,分析各个地区对于GMV的贡献,找出可提升GMV的方案。

(3)在用户层面,可以将用户分组,对比不同组别用户在某一指标下的差异;也可以选定一个用户群体,比较该用户群体在不同日的留存率表现,即同期群分析。例如,根据用户的付费信息将用户分为高付费用户、中等付费用户、低付费用户及零付费用户,对比各个组别的付费率。

(4)用户和产品交叉分析也是常用的分析思路,通常来说就是A/B试验,比如选定某一群体的用户,将其分为两组,分别给他们展示不同颜色的网页,对比其点击率,以评判哪种颜色的网页更受欢迎。

1.2 可比性原则

确定对比的对象是数据分析的第一步。对比的对象可以是自己,也可以是行业。如果是和自己比,可以通过某段时间的业务平均值、中位数等统计指标来衡量业务的整体大小;也可以通过变异系数来衡量业务整体的波动;还可以使用同比、环比等指标来衡量业务的变化趋势。如果是和行业比较,可以通过行业趋势与业务发展趋势进行对比,以判断业务发展是否健康;当然也可以和行业标准进行对比,以确定业务发展是否达到行业标准,进而调整业务发展方向和策略。

1)坚持对比对象相似的原则,就是说对比的对象要是同类型的,属于同一领域,例如,抖音和快手相比,淘宝和拼多多相比。不能将淘宝的GMV与B站的GMV相比。

2)坚持对比指标同质的原则,包括指标口径相同、指标计算方式一样和指标计量单位一致。例如,数据分析师不能用抖音2020年的平均用户留存率与快手2019年的平均用户留存率相比,因为指标口径不同;同样地,数据分析师也不能用2020年抖音的用户留存率与流失率进行比较,因为指标计算方式不一致;

1.3 A/B试验

A/B试验可以通过控制变量对比同一App不同版本的打开率、对比相同网页不同颜色的按钮的点击率。通过对用户进行随机分组,根据

单一变量的原则为

每一组用户分配一个试验方案,在相同的时间维度观察用户的反应以确定最佳方案。

以网页皮肤优化为例,原方案A中网页颜色为绿色,调整后的方案B网页颜色为黄色,如图7-5所示。为了确定用户对网页颜色的偏好,数据分析师设计了A/B试验,将特征相似的用户随机分成A、B两组,让其分别打开不同颜色的网页,观察两组用户的网页点击率。

A/B试验能解决什么问题?

A/B试验之所以能在数据分析领域得到广泛应用,是因为它能够解决大多数关于选择的问题,通过A/B试验选择出来的方案大部分情况下会

使得投入产出比最大化

。总之,A/B试验可以辅助业务方选出最优方案并且在现有流量中获得更高的投入产出比。

1. 评估方案优劣,选择最优方案A/B试验的主要目的之一是判断两个方案中哪个更好,以辅助运营人员选择最优方案,达到最好的效果。以网页皮肤选择为例,通过A/B试验确定用户对网页皮肤的偏好,以提升用户点击率,降低用户跳出率。

2. 计算ROI,提升收益,通过A/B试验选择最优方案的终极目的还是提升收益、量化收益,计算

投入产出比(ROI)

也是数据分析师需要掌握的技能。对于不同的方案而言,成本都是可以直接计算出来的;而对于收益,则需要计算试验组与对照组收益的差值。


A/B试验的流程?

1.


设定比较指标


:选取哪些指标进行对比需要根据试验的目的来决定。A/B试验中的指标可以分为三类,即

核心指标、辅助指标、反向指标

,在进行A/B试验时建议同时选择三类指标作为试验指标。通过A/B试验确定用户对网页皮肤的偏好,就可以选择点击率作为比较的核心指标。为了排除同一个用户多次点击造成的统计偏差,这里将点击率的统计口径定为去重的点击人数与去重的页面访问人数的比值。除核心指标外,也需要一些辅助指标和反向指标。辅助指标可以根据用户行为漏斗进行设定;也可以选择重要的下游指标,如平均点击次数、下单成功率、复购率等;反向指标是可能对产品产生负面影响的指标,如回跳率、退货率、回撤率、应用删除率等。

2.


创建变量


:选定指标之后,就需要进行变量的创建,即对网页的元素进行更改,将之前绿色的皮肤改为黄色的皮肤。这部分工作由前端配合完成。

3.


生成假设


:有了变量之后,可以基于经验对试验结果做出假设。例如,可以假设用户更喜欢改版后的网页。

4.


确定分流(抽样)方案


:如何分配流量、分配多少流量关系到A/B试验的成败,尽量选择同质性较高的用户,也就是各个维度特征较为相似的用户进行测试,同时需要确定分流比例和其他分流细节。国内外很多开源网站都提供了A/B试验样本量计算器,evanmiller是其中的一种(只需输入目前大盘基准值、预期试验提升效果、置信度及功效等参数,即可计算出试验所需的样本值)。如果预期的指标是与均值相关的指标,如人均时长、人均付费等指标,估算样本量可能会稍微复杂。这时候需要运用

t检验

反算样本量,但同样可以使用各类开源的网页工具进行计算,如字节跳动的DataTester、腾讯的A/B试验平台及百度的峙一平台。

5.


确定试验时长试验


:即这个A/B试验要持续多久。试验时长不宜过短,否则参与试验的用户几乎都是活跃用户。试验时间的长短和所需样本量是密切相关的,步骤4中已经估算了所需样本量,因此问题转化成要达到95.4138万个试验样本需要多少天。目前平台每天能为这个A/B试验项目分配10万MB的流量,要达到95.4138万个样本则至少需要10天,这样一来试验时长基本确定。

6.


收集数据


:上面的准备步骤做完之后,就可以针对指定区域的假设,收集相对应的数据用于A/B试验分析了。

7.


分析数据


:最后就是基于统计学基础理论,分析数据结果,判断两个版本之间是否存在统计学上的显著性差异。统计学分析也可以借助evanmiller进行。

A/B试验常见的误区?

1. 忽略统计学意义:再回到网页皮肤优化的例子,A组的点击率是39.13%,B组的点击率仅为36.86%,是否可以直接说A组的效果优于B组,用户更喜欢A组的皮肤颜色呢?事实上,不能直接得出这个结论,因为缺少了关键的步骤——假设检验。假设检验的目的之一是排除运气、抽样误差等随机因素对于试验结果的误判,即通常所说的Ⅰ类错误;目的之二是排除由于漏报对于试验结果的影响,即Ⅱ类错误。为了避免Ⅰ类错误、Ⅱ类错误带来的误判和漏报,需要对试验结果进行严格的假设检验,类似于留存率、渗透率等率值相关指标可以采用

Z检验或卡方检验

(非正态情况下),而人均时长、用户购买量等指标可以使用t检验。A/B试验中涉及的统计学知识会在后面的章节中详细讲解。

2. 忽略新奇效应:对于试验的影响新奇效应也是A/B试验中常见的误区之一,思考以下两个问题。试验所需的样本量决定了试验的时间长短,为了尽快得出结论是否可以分配较大流量使得试验尽快收集到所需样本量?或者按照正常的流量分配,达到样本量之后立即停止试验?答案是否定的,面对以上两种情况需要考虑是否因为新奇效应的存在给结果带来了一定的影响。在统计学上,新奇效应也称为均值回归,即随着试验次数的增加,结果往往趋近于均值。在A/B试验中,试验早期用户可能会因为新的改动而产生好奇,从而带来点击率的提升,但是随着试验时间的增加,这个点击率会趋近于用户的真实点击水平。因此,数据分析师需要等到观测指标平稳之后才能停止试验,以避免新奇效应对于试验结果的影响。

3. 以偏概全——试验周期没有覆盖产品高低频用户:在流量分配的时候需要保证对照组和试验组的用户具有同时性、同质性、均匀性和唯一性。换句话说就是需要将用户属性相近的用户同时分配到A组或B组中且同时进行试验。即使这样还会遇到一个问题,用户虽然大部分特征是相似的,但其活跃周期可能不尽相同,因此同样可能出现以偏概全的误区。因此,试验时间的选择应该格外注意,切不可为了尽快获得试验结果而分配大量流量,需要考虑到用户群体的全覆盖,这个可以结合样本量估算以及用户流失周期等进行思考。

4. 随意切割试验流量比例而造成

辛普森悖论

:辛普森悖论是指在某个条件下的两组数据,分别讨论时都会满足某种性质,可是一旦合并考虑,却可能导致相反的结论。

在A/B试验中如果随意切割流量比例也会造成辛普森悖论,某个周五,微软试验人员为试验中的某版本分配了1%流量,到周六那天,又将流量增加到50%。现象:该网站每天有100万个访客,虽然在周五和周六这两天,新版本的转化率都高于对照组,但是当汇总数据时,该版本的总体转化率反而降低了:
e5a1c71491784a5e83ff53f8fed812f9.png

随意切割试验流量会使A/B试验得到错误的结果,合理的流量切割是试验结论正确的前提。如果在试验过程中确实需要进行流量的切割,那么切割后的流量必须满足对照组与试验组的流量比例为1∶1。

5. 设计正交试验:解决多个试验同时进行时流量分配的问题。数据分析师经常会遇到多个活动同时进行A/B试验的情况,那么这个时候你会思考一个问题——别人的试验是否会影响到自己正在进行的试验?如果情人节期间开展了一系列的活动,各个活动都在通过A/B试验测试活动效果。老板肯定想知道每个活动的效果如何?所有活动的叠加效果又如何?

设计正交试验时需要严格遵守两个原则,即正交和互斥。

1)正交:流量正交可以让业务关联度小的试验有足够的流量同时进行,实现流量的高可用性。正交一般情况下是对于不同试验层来说的,将上一层的流量随机打散到下一层的试验中,使得用户再进入其他试验时是均匀分布的,而不是集中在某一块区域。

2)互斥:流量互斥可以让关联度较大的试验分开进行,避免相互影响,从而保证结果的可信度。流量互斥一般情况下是对于同一试验层来说的,在同一试验层的几个策略中同一用户只能进入一个试验策略中。很多情况下,活动整体的效果并不等于各个子活动的叠加效果,有时候子活动之间有着相互放大的作用,使得1+1>2;而有的时候,子活动在本质上是相同的事情,从而使得1+1<2。因此,要量化一个活动的整体效果时,就需要一个贯穿所有活动的对照组,在A/B试验系统中称为贯穿层。与贯穿层相对应的就是试验层,试验层又可以根据活动需要分为不同的子试验层,如图:
f42cca9d856242478ac98ff1ed70a157.png

贯穿层与试验层是互斥的,两者流量之和等于100%的全域流量;而对于试验层来说,各个层级的流量是相等的,也就是试验填充层、试验B1层、试验B2层、试验B3层的流量之和与试验层的流量相等,相当于各层的流量都复用试验层的总流量,只是在复用上一层的流量时,遵循了正交的原则,将上一层的流量随机打散到下一层中。根据以上原则,可以在此模型中增加或减少流量域或者层级,从而满足不同的业务场景的要求。

按照上述的框架进行分层后,可以按照如下的方式量化贡献:

(1)计算活动的整体贡献:试验填充层与贯穿层;(2)计算活动B1的贡献:活动B1试验层中,试验组与对照组;(3)计算活动B2的贡献:活动B2试验层中,试验组与对照组;(4)计算活动B3的贡献:活动B3试验层中,试验组与对照组。

当数据分析师遇到选择最优策略的问题时用A/B试验总是没错的,它还能够计算投入产出比,从而在现有流量条件下获得最大收益。

A/B试验涉及的统计学原理?

试验组和对照组是数据分析师从全量样本中抽出来的样本,只是总体用户的一小部分。但数据分析师关心的并不是这一小部分用户,而是产品改版对于全量用户的影响,这就涉及统计学中的

中心极限定理和大数定律

。只要

抽样次数足够多,样本均值的抽样分布趋近于正态分布,样本就能在一定程度上代表总体

。因此,A/B试验的价值之一就是具有先验性,能够通过小部分样本验证新方案对于用户的影响,让数据分析师在事情尚未发生之前通过手头有限的资源和信息预估新方案的效果,以避免直接全量上线新方案造成用户损失等情况发生。

1、抽样

抽样是A/B试验的核心步骤之一,因为对于某一个新上的功能,数据分析师不可能统计到每一个用户的接受程度,所以只能从全量用户中抽取一部分用户作为代表进行研究,以部分用户对于新功能的接受程度代表总体对其接受程度。在统计学层面,某款产品的全量用户就是总体(Population),而每次通过特定的方法抽取出来做A/B试验的用户就是样本(Sample)。但是样本终究是样本,A、B两组样本在抽样的过程中可能存在波动(Variance),因此用样本估计总体是有偏差的。所以


A/B试验的实质是通过假设检验去判断A、B两组样本之间的差异是由抽样的随机误差引起的,还是由A、B两组样本本身之间的差异引起的。


样本在一定程度上是可以代表总体的

,在统计学上有几个著名理论支撑了这一结论:

①大数定律;②中心极限定理;③3δ原则。

1.

大数定律

是描述多次重复试验结果的定律。大数定律是指在单次试验中,随机事件可能发生也可能不发生,但随着试验次数的增加,随机事件发生的频率趋于一个稳定值,即该事件发生的概率。简单来讲,

大数定律揭示了随机事件的均值具有长期稳定性,事件发生的频率可以近似替代事件发生的概率;样本均值可以近似替代总体均值。

2.

中心极限定理

(Central Limit Theorem)是对抽样分布的描述,该定理指出了大量随机变量之和近似服从正态分布的条件,其内容是从总体抽取样本容量为n的随机样本,当

样本容量足够大时,样本均值的抽样分布近似为正态分布

。当样本容量达到30时,样本均值的分布会逐渐呈现一个钟形曲线,逐渐趋于正态分布,因此样本容量为30是大样本与小样本的区分标准。当总体服从正态分布时,只要抽样的样本容量大于或等于30,样本均值的分布都可以认为是正态分布,这也是之后要讲的假设检验的大前提。对于总体不服从正态分布的情况,也可以用中心极限定理确定样本均值的分布形状。同样地,对于非正态分布总体来说,当样本容量达到30时,样本均值的分布形态都近似于正态分布。对于数据分析师来说,在A/B试验中需要比较的指标无非两类,一类是均值类型的,如平均在线时长、平均付费金额等;另一类是率值相关指标,如转化率、付费率、留存率等指标。对于第一类指标样本均值,前面已经证明

无论总体的分布是否是正态分布,只要样本容量大于或等于30,其样本均值的分布为正态分布;对于第二类指标样本比率,其抽样分布为二项分布,但是当样本容量n足够大,且样本容量n和样本比率p满足np≥5和n(1-p)≥5时,比率的抽样分布可以用正态分布近似。

3.

3δ准则

:在A/B试验中,只要样本容量足够大,无论是样本均值还是样本比率的分布都可以近似为正态分布。在正态分布中δ代表标准差,μ代表均值。x=μ即图像的对称轴。

无论A/B试验研究的对象是样本均值还是样本比率,对于每一次抽样,其值几乎都会落在(μ-3δ,μ+3δ)

,这就是重要的3δ原则。

3δ原则描述了对于服从正态分布的样本进行抽样时,样本Y的概率分布范围,Y的数值分布如下:(1)Y值分布在(μ-δ,μ+δ)中的概率为0.6826;(2)Y值分布在(μ-2δ,μ+2δ)中的概率为0.9544;(3)Y值分布在(μ-3δ,μ+3δ)中的概率为0.9974。

可以认为,Y的取值几乎全部集中在(μ-3δ,μ+3δ]区间内,超出这个范围的可能性不到0.3%。统计学上,通常把±3δ的误差作为极限误差。对于正态分布的随机误差,落在±3δ以外的概率只有0.27%,它在测量中发生的可能性很小,故存在3δ准则。举个例子来说,数据分析师要研究有多少用户会点击某个按钮,但是用户数量庞大,数据分析师不可能一一调查用户,所以需要通过抽样来研究这个问题。对于点击这个行为来说,用户要么点击,要么不点击,其抽样结果服从二项分布,但抽样数量足够大就可将二项分布近似为正态分布。假设每次用户的点击概率为x,不管x落在距离总体均值μ多远的地方,总有68.2%的样本落在距离总体均值1个标准差(σ)的范围内,95.4%的样本落在距离总体均值2σ的范围内,99.7%的样本落在距离总体均值3σ的范围内。更重要的是,有95%的样本落在距离总体均值1.96σ的范围内。95%是统计学经常所说的置信水平,即数据分析师有95%的把握说样本比率落在距离总体均值1.96σ的范围内,落在此范围外的概率极小,仅有5%,无疑是一个小概率事件,这也是假设检验的本质。

通过假设检验判断A、B两组样本是否存在差异

假设检验(Hypothesis Testing)用来判断样本与样本、样本与总体的差异是由抽样误差引起的,还是由本质差别造成的。

其本质是利用小概率原理的反证法,即小概率事件在一次试验中实际上不可能发生。假设检验首先需要对总体参数提出某种假设(原假设),然后通过抽样判断应该拒绝该假设还是接受该假设。假设检验的目标是拒绝原假设,如果没有足够的信息证明原假设成立,就拒绝原假设;如果有足够信息证明原假设成立,就接受原假设。

在A/B试验中,数据分析师的目标是判断A、B两个方案中哪个是最优方案,所以对于均值类型的试验来说,其估计量为μA-μB,即对照组与试验组之间的样本均值是否存在差异;对于比率类型的试验来说,其估计量为PA-PB,即对照组与试验组之间的样本比率是否存在差异。因此,原假设是μA-μB=0或PA-PB=0,备择假设是μA-μB≠0或PA-PB≠0,数据分析师就需要通过统计学原理判定是接受原假设还是拒绝原假设。

但是由于抽样误差的存在,A/B试验的结果可能出现所示的四种情况。当原假设H0为真时,却错误地拒绝原假设,统计学上称其为Ⅰ类错误,也叫“误判”,其犯错的概率为α;而当原假设H0为假时,错误地接受原假设,统计学上称为Ⅱ类错误,也称为“漏报”,犯错概率为β。

H0位

348cd51316334ec88f363b529885b78f.png

如何通过样本估计总体 ?

数据分析师不可能通过样本均值或者样本比率准确估算出总体的均值或比例,所以通过样本估计总体均值或总体比率时需要加减一个被称为边际误差的值来计算总体的区间,这个估计称为

区间估计

。总体均值的区间估计必须利用总标准差δ或样本标准差s计算边际误差。

在此只对总体标准差σ已知的情况进行讨论,但在现实的工作中总体标准差通常是未知的,此时需要用样本标准差s估计总体均值的区间。

举个例子来说,在研究某项功能升级后对于用户平均在线时长的影响的试验中,数据分析师抽取了100个样本进行研究,其平均在线时长为96.56分钟,历史数据显示全部用户的平均在线时长服从标准差为20的正态分布。那么在95%的置信度下,估计某项功能升级后,全部用户的平均在线时长处于哪个区间?
a52dd3a726344aafb6b183814b7e5486.png

将已知条件代入公式,就可以计算出全部用户的平均在线时长:

8e1fe940b82045c19287550710dcb75f.png

如何确定足够的样本量,以达到所希望的边际误差?

到底选择多少个样本才是合适的?对于这个问题,统计学也给出了很好的答案。
fea64c9cb316410880c9e90e0d2144c2.png

但是在A/B试验中,样本容量的估算远比上面介绍的公式复杂得多,因为A/B试验中数据分析师需要从一个总体中抽出A、B两组样本用于比较两组样本均值或样本比率之间是否存在差异,所以除了置信度α、功效(1-β)等参数,这里还涉及A、B两组样本比例:

将A/B试验中不同情况下样本容量的计算公式总结:

39d60e76dad6486c8c467e248a01669b.png

如何衡量试验效果?

A/B试验的效果可以通过P值、效应量、最小检测效应来衡量。

1. (Significance Level)显著性水平(1-α)和

P值

:是判断试验结果是否具有统计显著性的重要指标。显著性水平将犯Ⅰ类错误的概率控制在一给定的水平下,这个水平就是显著性水平,在此基础上使犯第Ⅱ类错误的概率尽可能小。P值在统计学中用来衡量两样本由随机抽样误差(即犯Ⅰ类错误)而产生的差异,只要P值足够小,小到可以忽略,数据分析师就可以认为两样本之间的差异并不是由抽样误差引起的,而是样本本身就存在差异。

2. 效应量(Effect Size):又称为效应值,也是判断试验结果的一个指标之一,假如试验结果的P值在置信水平下显著,但效应量小,数据分析师仍然有理由认定试验结果是不显著的。A/B试验中

效应量是指对照组和试验组之间的差异大小

。效应量不依赖于样本容量,也不依赖于测量尺度,正负号仅表示效应的方向,其绝对值才反映实际效应的大小,效应量越大,差异越大。例如,Cohen’s d是计算组间均值差异的常用效应量,计算该效应量需要两组参数即两组均值及合并标准差,其计算公式如图:

5bdbf417f0db4039b5ba5680efcee6ee.png

3. 最小检测效应(Minimum Detectable Effect,MDE):也称为检测灵敏度,它与样本容量、样本标准差、犯Ⅰ类错误和Ⅱ类错误有关。

Z检验和t检验

的最小检测效应MDE的计算方式有所不同,Z检验的MDE计算公式如图:

70628137a4174320a09d9a9a7e3bce70.png

多重比较中P值修正的三方法

假设检验的基本原理是小概率原理,即小概率事件在一次试验中实际上不可能发生。当同一问题进行多次假设检验时,不再符合小概率原理所说的“一次试验”。如果对于同一问题进行n次检验,每次检验的误判率(犯Ⅰ类错误的概率)为α,则n次检验的误判率可以增至1-(1-α)n。此类情况在多个试验的比较、多个指标的比较或者是临床试验分析中较为常见[4,5]。

举个例子来说,假设数据分析师在95%置信度下计算10次试验,总体误报概率(至少误报一次)=1-没有误报的概率=1-(0.95)10≈40%,则大约40%的概率会检测到一个或多个误报[5]。在多重比较的场景下,想要避免此类问题的出现,需要调整显著性水平,即犯Ⅰ类错误的概率,可以采用Bonferroni法、holm’s step down法、Hochberg standby法。

实战

Kaggle开源的智能广告案例,通过Python实现对A/B试验数据的处理



版权声明:本文为weixin_43784274原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。