A/B Test

1. ab test 中的假设检验原理是什么跟ab test 结合的
2. 如何选择实验的样本量
3. 指标的提升怎么判断显著性
4. 实验做多长时间, 为什么
5. aa 检验怎么做, 怎么判断aa 做的科学
6. ab test 主要的应用场景
7. ab test流程

(1)ab test 中的假设检验原理是什么,它是怎么跟ab test结合的

  • 控制变量法下的假设检验
  • 假设检验的基本思想:“小概率事件”原理,其统计推断方法是带有某种概率性质的反证法。小概率思想是指小概率事件在一次试验中基本上不会发生。
  • 假设检验基本思路:在小概率事件原理的基础上,带有概率性质的反证法。

一、假设检验
1.思路

概率论中,如果我们能够证明零假设不成立,那么其备择假设肯定为真。即,零假设和备择假设为对立事件。

设立假设:

  • 零假设:A和B没有显著差异

  • 备择假设:A和B有显著差异

如果能找到足够强的证据来否定零假设(A和B没有显著差异),那么就能有效的说明零假设不成立,即备选假设成立。

证据:
计算零假设成立的前提下A和B没有显著差异的概率P.value,零假设为真的概率,若P值=0.01,显著性水平α为0.05,则零假设成立的概率=1% < 5%,而备择假设成立的概率大于95%,因此否定了零假设,可认为备择假设为真。

结论:
P.value<=α,拒绝零假设;P.value>α,不拒绝零假设

假设检验的两类错误: 注:弃真和取伪都是针对零假设的。

  1. I类错误——弃真错误,发生的概率为α,否定了真实的原假设。避免方法:可通过α水平控制,降低α水平
  2. II类错误——取伪错误,发生的概率为β,接受了错误的原假设。避免方法:可通过扩大样本容量

第一第二类错误

Type 1

  1. H0:他没有怀孕
  2. H1:他怀孕了

第一类错误:弃真错误。H0是真的,但是被拒绝了。

Type 2

  1. H0:她没有怀孕
  2. H1:她怀孕了

第二类错误:取伪错误。H0是假的,但是被接受了。

请添加图片描述

(2) 如何选择实验的样本量

​ 在线计算网址

1.数值类计算:需要填写方差

2.比值类计算:不需要方差

  1. 实验所需样本量的一般公式

    统计学里有最小样本量计算公式,如下:
    n = σ 2 △ 2 ( Z α 2 + Z β ) 2 n=\frac{\sigma^2}{\vartriangle^2}(Z_{\frac{\alpha}{2}}+Z_\beta)^2 n=2σ2(Z2α+Zβ)2

其中
n是每组所需样本量,因为A/B测试一般至少2组,所以实验所需样本量为2n;
α和β分别称为第一类错误概率和第二类错误概率,一般分别取0.05和0.2;
Z为正态分布的分位数函数;
Δ为两组数值的差异,如点击率1%到1.5%,那么Δ就是0.5%;
σ为标准差,是数值波动性的衡量,σ越大表示数值波动越厉害。

从这个公式可以知道,在其他条件不变的情况下,如果实验两组数值差异越大或者数值的波动性越小,所需要的样本量就越小。

  1. 比例类数值所需样本量的计算
    R和G*Power使用的样本量计算公式:
    n = ( Z α 2 ⋅ 2 ⋅ p 1 + p 2 2 ⋅ ( 1 − p 1 + p 2 2 ) + Z β ⋅ p 1 ⋅ ( 1 − p 1 ) + p 2 ⋅ ( 1 − p 2 ) ) 2 ∣ p 1 − p 2 ∣ 2 n=\frac{(Z_{\frac{\alpha}{2}} · \sqrt{2·\frac{p_1+p_2}{2}·(1-\frac{p_1+p_2}{2})}+Z_\beta·\sqrt{p_1·(1-p_1)+p_2·(1-p_2)})^2}{|p_1-p_2|^2} n=p1p22(Z2α22p1+p2(12p1+p2) +Zβp1(1p1)+p2(1p2) )2
  • 实际A/B测试中,我们关注的较多的一类是比例类的数值,如点击率、转化率、留存率等。
  • 这类比例类数值的特点是,对于某一个用户(样本中的每一个样本点)其结果只有两种,“成功”或“未成功”;对于整体来说,其数值为结果是“成功”的用户数所占比例。如转化率,对于某个用户只有成功转化或未成功转化。
  • 比例类数值的假设检验在统计学中叫做两样本比例假设检验。其最小样本量计算的公式如上图所示。
  • 上面式子中p1我们称为基础值,是实验关注的关键指标现在的数值(对照组);p2我们称为目标值,是希望通过实验将其改善至的水平;第一类错误和第二类错误上边已经提到,暂不多做说明,通常设定α为0.05,β为0.2 。
  1. 样本量的四个影响因素
    • 要确定所需样本量,首先得知道哪些因素会影响样本量大小。
    • 以独立样本T检验为例,在计算实验效果的时候,除了样本量,我们还会考虑下面4个指标。
      • 显著性水平(α)(第一类错误概率):显著性水平越低,对实验结果的要求也就越高,越需要更大的样本量来确保精度
      • 统计功效(1 – β)(第二类错误概率):统计功效意味着避免犯二类错误的概率,这个值越大,需要的样本量也越大
      • 均值差异( μ A − μ B μ_A-μ_B μAμB):如果两个版本的均值差别巨大,也不太需要多少样本,就能达到统计显著
      • 标准差(σ):标准差越小,代表两组差异的趋势越稳定。越容易观测到显著的统计结果
        请添加图片描述

在这个公式里:
n A n_A nA代表A组的样本数量, n B n_B nB代表B组的样本数量
K为 n A 与 n B n_A与n_B nAnB的比值,这个值一般情况下,我们都默认为1,即AB两组的用户数量相等,方便做严谨的AB实验对比。

(3)指标的提升怎么判断显著性

假设我们有了数据结果,策略A的转换率是10%,策略B的转换率是8%,那我们说策略A比策略B好,这样就可以了吗?不可以,因为可能是抽样误差引起的转换率差异,为了区分实验A和B的差异是由抽样误差引起的?还是本质差别引起的?我们需要做假设验证 (hypothesis testing)。统计学中有很多假设验证方法,例如:

  • T检验: 也称Student’s t test,适用: 样本量较小(如n<30),总体标准差未知,正态/近似正态分布的样本。目的: 比较平均值之间差异是否显著。
    • 单样本T检验: 总体样本vs抽样样本。
    • 配对样本T检验: 同一对象接受两种不同的处理。
    • 双独立样本T检验: 两组独立样本。
  • Z检验: 也称U检验,适用: 大样本量(如n>30),总体标准差已知,正态/近似正态分布的样本。目的: 比较平均值之间差异是否显著。
  • F检验: 适用: 正态/近似正态分布的变量。目的: 检验两个正态分布变量的总体方差是否相等。
  • 卡方检验: 也称chi-square test或X2 test,适用: 类别型变量。目的: 检验两个变量之间有无关系,例如性别和是否购买数码产品之间的关系。
    请添加图片描述

我们做AB Test,“如果样本量足够大,那么Z检验和t检验将得出相同的结果。对于大样本,样本方差是对总体方差的较好估计,因此即使总体方差未知,我们也可以使用样本方差的Z检验”。[6],但正常来说,除非是长期的实验(0.5-1年),例如算法,会选择Z检验。正常的短期AB Test基本是实验1个月内甚至说1-2周,那么此时建议选择T检验。

假设检验的检验有两种:单边假设检验双边假设检验,前者判断A、B是否显著优/劣于对方,后者判断A、B是否存在显著差异。

请添加图片描述

(4)实验做多长时间, 为什么

A/B 测试所需的时间 = 总样本量 / 每天可以得到的样本量

样本量n的计算公式为:
n = ( Z 1 − α 2 + Z 1 − β ) 2 ( δ σ p o o l e d ) 2 = ( Z 1 − α 2 + Z p o w e r ) 2 ( δ σ p o o l e d ) 2 n=\frac{(Z_{1-\frac{\alpha}{2}}+Z_{1-\beta})^2}{(\frac{\delta}{\sigma_{pooled}})^2}=\frac{(Z_{1-\frac{\alpha}{2}}+Z_{power})^2}{(\frac{\delta}{\sigma_{pooled}})^2} n=(σpooledδ)2(Z12α+Z1β)2=(σpooledδ)2(Z12α+Zpower)2

  • 其中:
  • Z 1 − α 2 Z_{1-\frac{\alpha}{2}} Z12α ( 1 − α 2 ) (1-\frac{\alpha}{2}) (12α)对应的 Z S c o r e Z Score ZScore
  • Z p o w e r Z_{power} Zpower p o w e r power power对应的 Z S c o r e Z Score ZScore
  • δ \delta δ为实验组和对照组评价指标的差值。
  • σ p o o l e d 2 \sigma_{pooled}^2 σpooled2为实验组和对照组的总和方差(Pooled Variance)

附录1:

实践中,大部分A/B测试会遵循惯例,即将显著性水平默认为5%,将 β \beta β默认为20%(即Power为80%)。

因此
n ≈ 8 σ p o o l e d 2 δ 2 n \approx \frac{8\sigma_{pooled}^2}{\delta^2} nδ28σpooled2
注意:此处的n是单样本(测试或者对照)的数量,按照对照组和实验组样本量相等,即1/1均分,则总样本还需 × 2 \times2 ×2;若为其他样本模式,则按照其他的进行计算。
n a l l ≈ 8 σ p o o l e d 2 δ 2 × 2 ≈ 16 σ p o o l e d 2 δ 2 n_{all} \approx \frac{8\sigma_{pooled}^2}{\delta^2} \times 2 \approx \frac{16\sigma_{pooled}^2}{\delta^2} nallδ28σpooled2×2δ216σpooled2
附录2:

δ \delta δ为对照组和实验组的差值

以A/B测试目标的指标差值作为依据。

第一种方法是从收益和成本的角度进行估算。

第二种方法是,如果收益和成本不好估算的话,我们可以从历史数据中寻找蛛丝马迹,根据计算指标波动性的方法,算出这些评价指标的平均值和波动范围,从而估算一个大概的差值。

附录3:

σ p o o l e d 2 \sigma_{pooled}^2 σpooled2为实验组和对照组的总和方差(Pooled Variance)

  1. 概率类指标。指标在统计上通常是二项分布,综合方差为:

σ p o o l e d 2 = P t e s t ( 1 − P t e s t ) + P c o n t r o l ( 1 − P c o n t r o l ) \sigma_{pooled}^2 = P_{test}(1-P_{test}) + P_{control}(1-P_{control}) σpooled2=Ptest(1Ptest)+Pcontrol(1Pcontrol)

其中, p c o n t r o l p_{control} pcontrol 为对照组中事件发生的概率,也就是没有 A/B 测试变化的情况,一般可以通过历史数据计算得出; p t e s t = p c o n t r o l + δ p_{test}=p_{control}+δ ptest=pcontrol+δ,得出的是期望的实验组中事件发生的概率。

  1. 均值类指标。通常是正太分布,在样本量大的情况下,根据中心极限定理,总和方差为:

σ p o o l e d 2 = 2 × ∑ i n ( x i − x ‾ ) 2 n − 1 \sigma_{pooled}^2 = \frac{2 \times \sum_i^n(x_i-\overline{x})^2}{n-1} σpooled2=n12×in(xix)2

  • 其中:

  • n n n为所取历史数据样本的大小。

  • x i x_i xi为所取历史数据样本中第 i 个用户的使用时长 / 购买金额等。

  • x ‾ \overline{x} x为所取历史数据样本中用户的平均使用时长 / 购买金额等。

附录4:

每天可以得到的样本量

根据此次每天可获得的样本量估计。

(5)aa 检验怎么做, 怎么判断aa 做的科学

1.分配流量,AA实验:

实际AB实验中可能出现抽样不均的情况,例如实验组恰好有很多土豪,那么结果就会产生偏差,为了保证实验数据的变化仅仅是实验本身引起的,可以一次性抽取4,5组流量,选择任意两组不加策略空跑,监控核心指标数据,选取两组数据最接近的上实验(控制变量)

  1. AA进行假设检验,检验AA是否有显著差异,如果随机分流稳定,AA不会有显著差异;
  2. 检查小样本的分流比例是否和设定的相差不多,例如,看新老用户分别的分流比例、2000家酒店detail页的分流比例等等;
  3. 顺着随机分流系统的代码规则,看一个用户是否被分到该分的组内(难度大,主要是看随机分流系统有无问题)
  4. 分流启动后分析个分组是否符合流量分配大小比例;分析各组用户属性,是否符合整体用户属性分布。

(6) ab test 主要的应用场景

  1. 体验优化

    • 用户体验永远是卖家最关心的事情之一,但已经完善的落地页随意的改动是一件很冒险的事情,因此很多卖家会通过AB测试进行决策,常见的是在保证其他条件一致的情况下,针对某一单一的元素进行AB两个版本的设计,并进行测试和数据收集,最终选定数据结果更好的版本。
  2. 转化率优化

    • 通常影响电商销售转化率的因素有产品标题、描述、图片、表单、定价等,通过测试这些相关因素的影响,不仅可以直接提高销售转化率,长期进行也能提高用户体验。
  3. 广告优化

    • 广告优化可能是AB测试最常见的应用场景了,同时结果也是最直接的,营销人员可以通过AB测试的方法了解到哪个版本的广告更受用户的青睐,了解到哪些步骤怎么做才能最吸引用户。
  4. 推荐及算法优化

    • 当有需要进行验证的算法时,可以通过AB测试来进行试验验证,相比全量更新,AB测试所进行的灰度测试更便捷,风险控制更精准。
  5. UI优化

    • 这是比较常见的场景。不像功能的设计,存在着很多逻辑上的思路,经常还是可以确定哪种方案好,哪种方案不好。UI的优化,往往是很“艺术”层面的。往往看到真实数据前,谁也难以说明哪种设计能带来更好的数据效果。
  6. 文案变化
    请添加图片描述

  7. 页面布局

  • 页面布局,主要指的是同页面中的不同元素的排列方式。

(7)ab test流程
请添加图片描述请添加图片描述

流程一

  1. 确认实验目标
    • 比如:找到召回沉默用户效率最高的策略
  2. 设计实验
    1. 明确目标用户
      • 过去30天-180天未下单老客
    2. 试验周期
      • 测试一周,周期内不进行打散
    3. 最小样本量
      • 参照**【(2) 如何选择实验的样本量】**
    4. 用户分组和分组策略
      • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sgIVLHLG-1642665909788)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20211021153154019.png)]
    5. 分流比例
  3. 上线实验与过程监控
    • 需要检测实验是否按照预期设定正常运行,在A/B实验中常出现的需要检查的问题有如下:
      • 空白组是否真的空白的,有无空白组用户领取到实验组1、实验组2、实验组3发的券,如果发现有领券的,那需要排查分流系统问题(一般需要产研根据log信息找到当时为什么判定给该用户发券)
      • 1个用户是否仅属于某一个组,有无存在多个组的情况
      • 分流是否和预先设定的分流比例一致,误差1%也要寻找原因
      • 实验样本是否是预先设定的目标实验样本,判断实验是否进行了用户筛选过滤,比如本实验是对沉默用户进行召回,有无近30天有交易的活跃用户也被发券,如果有那说明目标用户的圈选出问题,需要排查上下游看看是哪个环节出现问题
  4. 结果复盘:ROI评估

流程二

  1. 确定业务目标

    1. 明确要提升的业务指标
    2. 明确要改进的产品/策略
  2. 选择检验指标

  3. 哪些指标能够体现出因策略不同而引起的变化

  4. 确定统计量

  5. 明确要检验的指标,是平均值,是方差,还是比例

  6. 确定零假设和备择假设

  7. 样本量计算

    1. 根据确定的统计量指标,选择合适的假设检验方法进行结论验证,如T检验,Z检验,F检验,卡方检验等。
  8. 检验策略、分组策略选择

    1. A组:下单推荐页前12个推荐,9个C类店铺商品
    2. B组:下单推荐页前12个推荐,6个C类店铺商品
    3. C组:下单推荐页前12个推荐,3个C类店铺商品
    4. D组:不干预(对照组)
  9. 统计检验结果

    1. 通过统计量及统计量的P值来观测。
    2. 通过样本量分布和显著性水平来确定拒绝域和接受域,从而拒绝或者接受结果。
  10. 业务决策

  11. AB测试的条件的时候,如何解决问题

    • 没有系统:没有灰度发布系统,无法给不同用户发送不同版本。可以考虑手动进行分组,然后进行线下试验,或者手动给不同用户发送不同的版本;
    • 用户量不够:无法达到最小样本量。可以减少实验条件,或者重新设计实验;如果是统计量比例,可以延长实验周期;如果是小众用户,可以考虑配对样本T检验。
    • 时间成本高:如果是一个月度以上的实验,时间成本太高。可以研究以日为周期或周为周期对月度的影响,然后进行日实验或周实验。

流程三

ABtest本质上是一个:两总体假设检验问题,要检验A、B两个版本是一样,还是有所区别。和之前介绍的单总体假设检验一样,两总体假设检验,也分步骤:

  • 第一步:明确要检验的A、B两个对象
  • 第二步:明确要检验的指标,是平均值,还是比例
  • 第三步:根据检验目的,给出原假设/备选假设
    户,可以考虑配对样本T检验。
    • 时间成本高:如果是一个月度以上的实验,时间成本太高。可以研究以日为周期或周为周期对月度的影响,然后进行日实验或周实验。

流程四

ABtest本质上是一个:两总体假设检验问题,要检验A、B两个版本是一样,还是有所区别。和之前介绍的单总体假设检验一样,两总体假设检验,也分步骤:

  • 第一步:明确要检验的A、B两个对象
  • 第二步:明确要检验的指标,是平均值,还是比例
  • 第三步:根据检验目的,给出原假设/备选假设
  • 第四步:根据要检验的指标,选择检验统计量(是不是头都看大了,其实没关系,大部分统计软件,包括excel,都有提供两样本均值的t检验,直接用即可)
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐