AB测试详细过程

AB测试详细过程

  • 1 AB测试原理简介
  • 2 选取指标
  • 3 建立假设
  • 4 选取实验单位
  • 5 计算样本量
  • 6 流量分割
  • 7 实验周期计算
  • 8 线上验证
  • 9 数据检验
  • 10 知识点总结

1 AB测试原理简介

AB测试最核心的原理,就四个字:假设检验。
检验我们提出的假设是否正确。对应到AB测试中,就是检验实验组&对照组,指标是否有显著差异。

既然是假设检验,那么就是先假设,再收集数据,最后根据收集的数据来做检验。

先来说说假设。

假设一般成对出现,分为零假设 和 备选假设。
在AB测试中,零假设是:实验组&对照组 指标相同,无显著差异;备选假设则相反,实验组&对照组 指标不同,有显著差异。

举个例子。我们优化了某算法,想提高页面的点击率。针对这个场景的AB测试,零假设就是 新算法&老算法的页面点击率无明显差异,备选假设是 新算法&老算法的页面点击率有显著差异。

再来说说检验。

一般来说,我们是通过具体的指标属性来找寻相应的检验方法。那么问题来了,指标如何分类呢?

指标可以分为两种类别:
1、绝对值类指标。也就是我们平常直接计算就能得到的,比如DAU,点击次数等。我们的一般都是统计该指标在一段时间内的均值或者汇总值,不存在两个值之间还要相互计算。

2、相对值类指标。与绝对值类指标相反,我们不能直接计算得到。比如某页面的CTR,我们是用 页面点击数 / 页面展现数。我们要计算点击数和展现数,两者相除才能得到该指标。类似的,还有XX转化率,XX点击率,XX购买率一类的。我们做的AB实验,大部分情况下都想提高这类指标。

根据指标我们可以知道,该如何计算最小样本量,以及实验周期,以及对应的检验方法。

对于AB测试详细流程,大体可以分为以下7步:

  1. 选取指标
  2. 建立假设
  3. 选取实验单位
  4. 计算样本量
  5. 流量分割
  6. 实验周期计算
  7. 线上验证
  8. 数据检验

2 选取指标

在做AB测试之前,我们一定要清楚,我们实验的目标是什么。并落地到具体的几个指标上,这几个指标对于我们度量实验结果,有非常明显的帮助。但是,指标也要分层级,唯一一个核心指标+多个观察指标。

核心指标用来度量我们这次实验的效果,以及计算相应的样本量。观察指标则用来度量,该实验对其他数据的影响(比如对大盘留存的影响,对网络延迟的影响等等)。

3 建立假设

建立假设就如同上文所说,我们建立了零假设和备选假设,零假设一般是没有效果,备选假设是有效果。

4 选取实验单位

大家应该都使用用户粒度来作为实验单位,但是总体说来,实验单位一般有3种。我们不用掌握,但是很多情况下面试官会问到,大家可以作为了解。

1、用户粒度:这个是最推荐的,即以一个用户的唯一标识来作为实验样本。好处是符合AB测试的分桶单位唯一性,不会造成一个实验单位处于两个分桶,造成的数据不置信。

2、设备粒度:以一个设备标识为实验单位。相比用户粒度,如果一个用户有两个手机,那么也可能出现一个用户在两个分桶中的情况,所以也会造成数据不置信的情况。

3、行为粒度:以一次行为为实验单位,也就是用户某一次使用该功能,是实验桶,下一次使用可能就被切换为基线桶。会造成大量的用户处于不同的分桶。强烈不推荐这种方式。

5 计算样本量

样本量计算,我们需要了解一下中心极限定理。具体书面定义和推导过程,大家可以在网上百度一下就好,我们这里就通俗的解释一下。中心极限定理的含义,就是只要样本量足够大,无论是什么指标,无论对应的指标分布是怎样的,样本的均值分布都会趋于正态分布。

基于正态分布,我们才能计算出相应的样本量和做假设检验。具体的样本量计算推导过程,大家如有需要,可以关注后加我微信私聊,这里就放结论。

整体公式如下:
AB测试详细过程_第1张图片
此外我们也可以通过以下一个线上工具进行求解

AB测试详细过程_第2张图片

6 流量分割

流量切割有两种方式:分流和分层。

分流是指我们直接将整体用户切割为几块,用户只能在一个实验中。但是这种情况很不现实,因为如果我要同时上线多个实验,流量不够切怎么办?那为了达到最小样本量,我们就得延长实验周期,要是做一个实验,要几个月,相信我,你老板一定会和你聊聊人生理想的。

另一种方式,分层。就是将同一批用户,不停的随机后,处于不同的桶。也就是说,一个用户会处于多个实验中,只要实验之间不相互影响,我们就能够无限次的切割用户。这样在保证了每个实验都能用全流量切割的同时,也保证了实验数据是置信的。

7 实验周期计算

相应的,最小样本量有了,我们切分了流量,知道了实验桶一天大概能有多少样本量(也可以算小时,如果产品的流量足够大)。我们直接用 最小样本量 / 实验桶天均流量 即可以得到相应的实验周期。

8 线上验证

很多公司不会做线上验证。当然,不验证也没关系,就是有可能会踩坑,所以还是建议大家在实验上线后进行线上验证。

线上验证主要是2个方向,一个是验证实验策略是否真的触发。即我们上线的实验桶,是否在产品上实际落地了。比如你优化了一个产品功能,你可以去实际体验下,实验桶产品是否真的有优化。

另一个是验证同一个用户只能在同一个桶中,要是同时出现在两个桶中,后期数据也会不置信。

9 数据检验

大家应该都看过这个图:
AB测试详细过程_第3张图片

按照上文我们说的指标分类,一般情况下,绝对值指标用T检验,相对值指标用Z检验。

因为绝对指标的的总体方差,需要知道每一个用户的值,这个在AB实验中肯定不可能。而相对值指标是二项分布,可以通过样本量的值计算出总体的值,就如同10W人的某页面点击率是10%,随机从这10W人中抽样1W人,这个点击率也是10%一样。

再来说说具体的检验。一般情况下我们可以用两种常用方法:

1、算P值,也就是算当零假设成立时,观测到样本数据出现的概率。统计学上,将5%作为一个小概率事件,所以一般用5%来对比计算出来的P值。当P值小于5%时,拒绝零假设,即两组指标不同;反过来,当P值大于5%时,接受零假设,两组指标相同。

2、算置信区间。一般情况下,我们都会用95%来作为置信水平。也就是说,当前数据的估计,有95%的区间包含了总体参数的真值。这么说可能比较绕,我们可以简单理解成 总体数据有95%的可能性在这个范围内。

我们计算两组指标的差异值,如果我们算出的差异值置信区间不含0,我们就拒绝零假设,认为两组指标不同;但是如果包含0,我们则要接受零假设,认为两组指标相同。

当然,我们也可以直接算出Z值或者T值,查表对比。但是这种不是很常用,还是以P值及置信区间为主流。

10 知识点总结

我们来总结下知识点:
1、实验流程是 选取指标 – 建立假设 – 选取实验单位 – 计算样本量 – 流量分割 – 实验周期计算 – 线上验证 – 数据检验。

2、假设分为零假设和备选假设,零假设一般都是实验无效(指标无差异),备选假设是实验有效(指标有差异)。

3、指标可以分为 绝对值指标 和相对值指标,相应的,绝对值指标推荐用T检验,相对值指标推荐用Z检验。

4、检验数据是否有效,可以算P值,高于5%就接受原假设,两组指标相同;也可以算置信区间的差异值,如果差异值包含0,则接受原假设,两组指标相同。

你可能感兴趣的:(#,ABtest)