您的位置  > 互联网

AB测试原理和具体的过程

在上一篇文章中,我们描述了AB测试的由来和适用场景,并简单描述了AB测试的三个阶段。

在这篇文章中,我们将详细讲解其原理和具体过程。

AB测试原理简介

AB测试的核心原理无外乎四个字:假设检验。 检验我们提出的假设是否正确。 对应AB检验,就是检验实验组和对照组的各项指标是否有显着差异。

既然是假设检验,首先要做假设,然后收集数据,最后根据收集到的数据进行检验。

我们先来谈谈假设。

假设一般成对出现,分为原假设和备择假设。

AB检验中,原假设为:实验组和对照组各项指标相同,无显着性差异; 备择假设则相反,实验组和对照组的各项指标不同,且存在显着性差异。

例如。 我们优化了一个算法,想要提高页面的点击率。 对于这种场景下的AB测试,原假设是新算法和旧算法的页面点击率没有显着差异,备择假设是页面点击率有显着差异。通过新算法和旧算法的速率。

我们来谈谈检查。

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

指标可分为两类:

1、绝对值指标。 也就是我们通常可以通过直接计算得到的,比如DAU、点击数等。我们通常统计一段时间内指标的平均值或者汇总值,两者之间不需要互相计算价值观。

2.相对价值指标。 与绝对值指标相反,我们无法直接计算它们。 例如,对于某个页面的CTR,我们使用页面点击数/页面展示数。 我们需要计算点击数和展示数,并将它们相除以获得指标。 同样还有XX转化率、XX点击率、XX购买率。 在我们做的大部分AB实验中,我们都想提高这些指标。

根据这些指标,我们可以知道如何计算最小样本量、实验周期以及相应的测试方法。

AB测试详细流程

我们先看一张图片。 结合本次实验的流程图,我们来一点一点解释一下:

选择指标

在进行AB测试之前,我们必须知道我们实验的目标是什么。 并在多项具体指标上得到落实。 这些指标对于我们衡量实验结果非常有帮助。 但指标也必须是分层的,一个核心指标+多个观察指标。

核心指标用于衡量我们实验的效果并计算相应的样本量。 观察指标用于衡量实验对其他数据的影响(例如对市场留存的影响、对网络延迟的影响等)。

建立假设

建立假设 如上所述,我们建立原假设和备择假设。 原假设通常是没有影响,备择假设是有影响。

选择实验单位

大家应该以用户粒度作为实验单位,但一般来说,实验单位一般分为三类。 我们不需要知道,但是很多时候面试官都会问,大家可以作为参考。

1、用户粒度:这是最推荐的,即使用用户的唯一标识符作为实验样本。 优点是分桶单元唯一,符合AB测试,不会造成一个实验单元分在两个桶中,导致数据不可信。

2、设备粒度:以一台设备标识作为实验单位。 相对于用户粒度来说,如果一个用户有两部手机,也可能会出现一个用户在两个桶中的情况,所以也会造成数据不信任。

3、行为粒度:以一种行为为实验单位,即用户使用该功能一次,即为实验桶。 下次他使用它时,他可能会切换到基线桶。 这会导致大量用户处于不同的桶中。 强烈不推荐这种方法。

计算样本量

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

根据正态分布,我们可以计算出相应的样本量并进行假设检验。 具体的样本量计算和推导过程,如果有需要的可以关注加我微信私聊。 我将把结论贴在这里。

整体公式如下:

因为指标可以分为绝对值指标和相对值指标。 相应地,我们在计算绝对值指标和相对值指标时,标准差的计算方法也会有所不同。 详情如下:

我们举两个例子来说明一下,以便大家更好的理解。

案例 1 - 相对价值指标:

产品点击率为1.5%,波动范围为[1.0%,2.0%]。 优化该功能后,需要进行AB测试来计算样本量。

P:1.5%,p:2.0%(由于波动范围为[1.0%,2.0%],因此至少为2.0%

总样本量 = 16 * (1.5%* (1-1.5%) + 2.0%* (1-2.0%)) / (2.0%-1.5%) ^2 = 22000

情况 2 - 绝对值指标:

某商品购买金额的标准差是25,优化这个功能后,预计绝对会有至少5元的提升。 需要AB测试来计算样本量。

σ=25,Δ=5

总样本量=16*25*25*2/5*5=800

总样本量是指我们的实验单位,必须满足这个数量,实验结果中的数据检验才可信。 也就是说,我们的实验桶和基线桶的总和必须达到这个流量,我们才能收集数据和测试指标。

流量分段

削减流量有两种方式:分流和分层。

分流是指我们直接把整个用户切成几块,用户只能在一次实验中。 但这种情况是很不现实的,因为如果我想同时发起多个实验而流量不够怎么办? 为了达到最小样本量,我们不得不延长实验周期。 如果我们进行实验,需要几个月的时间。 相信我,你的老板一定会和你谈论你的人生理想。

另一种方式,分层。 也就是将同一批用户随机化后放入不同的桶中。 换句话说,一个用户将进行多次实验。 只要实验不互相影响,我们可以无限次削减用户。 这样保证了每次实验都能满流切割,也保证了实验数据的可信度。

这两种方式用图形表示如下:

实验周期计算

相应地,考虑到最小样本量,我们除以流量,就知道实验桶一天可以容纳多少个样品(如果产品的流量足够大,也可以按小时计算)。 我们可以直接用实验桶的最小样本量/日均流量来得到对应的实验周期。

在线验证

很多公司不会做网上验证。 当然,不验证也没有关系,但是可能会遇到麻烦,所以还是建议大家在实验启动后进行在线验证。

在线验证主要有两个方向。 一是验证实验策略是否真正被触发。 就是我们推出的实验桶是否真正落地到了产品上。 比如优化一个产品功能,你可以实际体验一下,看看实验桶产品是否真的优化了。

另一个是验证同一个用户只能在同一个中。 如果同时出现在两个桶中,则后面的数据将不可信。 这一点上面已经提到过。

数据检查

您可能听说过数据测试。 比如Z检验、T检验、单尾检验、双尾检验、计算P值、计算置信区间等。我们先说一下哪种情况用Z检验,哪种情况用T检验。 因为这个问题经常遇到,所以也是AB测试中面试官必问的问题。

大家应该都看过这张图:

这张图收录在贾俊平老师的书中。 书中详细介绍了具体的公式和原理。 关注公众号后收到的“资料”中包含本书的PDF电子版。

根据上述指标分类,一般情况下,绝对值指标采用T检验,相对值指标采用Z检验。 因为绝对指标的整体方差,所以需要知道每个用户的价值,这在AB实验中肯定是不可能的。 相对价值指标是二项分布。 可以根据样本量的值计算总体值。 例如,如果10万人的页面点击率为10%,那么如果从这10万人中随机抽取1万人,点击率也会是10%。 相同的。

我们来说说具体的检查。 一般我们可以采用两种常用的方法:

1.计算P值,即计算原假设为真时观察到样本数据的概率。 统计上,5%被视为小概率事件,所以一般用5%来比较计算出的P值。 当P值小于5%时,拒绝原假设,即两组指标不同; 反之,当P值大于5%时,接受原假设,两组指标相同。

2. 计算置信区间。 一般来说,我们使用95%作为置信水平。 也就是说,当前95%的数据估计包含了整体参数的真实值。 这么说可能会让人费解,但我们可以简单理解为整体数据有95%的概率在这个范围内。

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

当然,我们也可以直接计算出Z值或T值并查表进行比较。 不过这并不是很常用,P值和置信区间仍然是主流。

也有一些公司将所有指标计算为不同流量范围内的自然波动。 比如我有三个指标,日活是100万,那么我可以把它拆成多个流量范围,比如1w、2w、5w、10w、20w、50w、100w,然后依次计算这三个指标。 低于自然波动阈值,如果高于阈值,我们认为实验有效。 这样会方便很多,但不够严谨。

最后说一下单尾测试和双尾测试。 单尾检验的前提是我们不仅认为两组指标不同,而且要明确其大小。 一般来说,我们都认为实验组的效果高于基线组。 双尾检验仅认为两组指标不同,而没有明确其大小。 一般来说,我们更喜欢使用双尾检验。 为什么?

因为实验本身就是一种利用数据来做决策的方法,所以我们不应该再人为地引入主观假设。 相反,我们使用双尾检验。 我们不仅可以量化它增加了多少,还可以量化它减少了多少。 因为实验结果有正有负,不一定总是有作用(正),也可能有负作用。 ,我们还可以将有负面影响的实验记录下来,积累到知识库中,避免后期实验中出现陷阱。

当然,生活中的一些事件可以使用单尾测试来测试。 例如,如果我们优化了灯泡的制造工艺,提高了灯泡的质量,那么我们就可以使用单尾检验来进行灯泡的质量检验,因为我们只关心灯泡的质量是否合格符合预期或有所改善。

知识点总结

上面我们就讲完了AB测试的整体流程以及过程中需要用到的知识点。

总结一下知识点:

1、实验流程为选择指标——建立假设——选择实验单元——计算样本量——流程分割——实验周期计算——在线验证——数据检验。

2. 假设分为原假设和备择假设。 原假设一般是实验无效(指标没有差异),备择假设是实验有效(指标有差异)。

3、指标可分为绝对值指标和相对值指标。 相应地,建议对绝对值指标使用T检验,对相对值指标使用Z检验。

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

以上就是今天的内容。 如果您有任何疑问,请在后台留言。

以上就是本期的内容。 关注公众号,定期更新数据分析相关知识点以及国家数据相关岗位。