更多技术交换、求职机会,欢送关注字节跳动数据平台微信公众号,回复【1】进入官网交换群
本文将针对日常开设 A/B 试验过程中一个不太正当的应用办法——AABB 试验进行具体的解释,通知大家为什么不倡议开 AABB 试验。
在开始之前,先来回顾一下“什么是 A/B 试验”,A/B 试验是针对想调研的问题,提供两种不同的备选解决方案,而后让一部分用户应用计划 A,另一部分用户应用计划 B,最终通过试验数据比照来确定最优计划。
一:什么是 AABB 试验
家喻户晓,AB 试验就是咱们在总流量中分流出两组用户,一组应用原策略 A,一组应用新策略 B,比拟两个策略的成果。
那么 AABB 试验是什么呢?
简略来说,在做试验的时候,会从总流量中分流出 2 个原策略组(A1、A2)和 2 个新策略组(B1、B2)。两个原策略组的试验配置截然不同,两个新策略组的配置也是截然不同的。实验者会综合比拟 A1、A2、B1、B2 各组之间的指标差别(但其实少数实验者剖析的办法并没有理论依据,文章前面会作出解释),这样的试验被称为 AABB 试验。
当然,也有实验者会分流出更多策略组(AAABBB、AAAABBBB 等),或者引入多个不同的新策略(AABBCCDD 试验等)。这些试验与 AABB 试验存在的问题趋同,本文中权且先以 AABB 试验为次要剖析对象。
二:为啥总有人想开 AABB 试验
在进行了局部用户调研后,火山引擎 DataTester 团队发现,开设 AABB 试验的实验者通常想解决以下问题:
验证用户分流是否“平均”
局部实验者放心火山引擎 DataTester 平台的用户分流不迷信,因而开设 AABB 试验,通过比拟 A1 与 A2、B1 与 B2 之间的试验指标差别,来测验用户分流是否正当。
现实状态下,如果用户分流是随机的,那么雷同的策略组(A1 和 A2 之间),在试验中检测出的指标差别应该很小。这是用户对于试验后果指标的预期。这时候,如果试验后果中,A1、A2 的指标呈现很大的差别,甚至于出现“显著”,实验者就会认为,是火山引擎 DataTester 后盾的分流机制有问题。然而,这个判断是不迷信的。为什么呢?请浏览下文中的谬误 No.1。
比拟“AA 组内差别”和“AB 组间差别”
有的实验者认为:开设 AABB 试验,如果 AA 之间的试验后果差别很小,AB 之间的试验后果差别较大,那么在这种状况下,我的 B 策略应该就是有用的。这种想法自身没有问题,然而火山引擎 DataTester 的大部分指标提供了置信度性能,此时这种做法就显得有些画龙点睛了。具体的起因参考下文中谬误 No.2 和谬误 No.4。
三:AABB 试验到底错在哪儿
No.1 AA 组内指标差别显著 / 相信并不代表分流不迷信
A1、A2 组之间的试验指标差别大,甚至呈现显著,就能阐明分流不迷信吗?其实并不能。实际上,在比照 AA 组间指标差别时,以下的几种状况都是齐全可能产生的:
1.AA 组内的指标必然存在差别:尽管 A1、A2 两组所采纳的策略齐全一样,但进入 A1、A2 组的用户是齐全随机的,这是随机抽取的两份样本,必然存在抽样误差,因而指标值不可能齐全一样。
2.AA 组内的指标差别可能还不小:如果样本中的用户量太少,或样本用户中存在极其个例(比方抽 20 集体算中国人的平均收入,抽样的时候抽到了农夫山泉董事长钟睒睒和月薪 5000 元的某人),那么在察看常见的均值等类型指标时,AA 组内指标差别很可能还“不小”。
3.AA 差别可能“显著”:在测验假如的过程中,咱们容易犯的一类谬误是:策略本来无用,但试验结果显示该策略有用。A1、A2 组指标差别显著,正是对应了这类谬误——其实两个策略是一样的,然而试验结果显示 A2 有用。在 A/B 试验中,这类谬误呈现的概率是 5%。也就是说,如果你开 100 次 AA 试验,呈现 5 次显著是正当的。如果 AA 试验指标差别出现统计显著,也不过是一个概率问题,并不代表分流不迷信。
综上,咱们再来回顾一下什么是“统计显著”。顾名思义,这是一个统计术语,并不等同于指标在理论业务中产生了“显著变动”。更不能以此推论出“因为 AA 有差别,且 AA 的策略雷同,所以分流后果有问题,AB 的论断也不可信”。
No.2 AABB 试验中,统计指标更容易犯错
先来明确一点,目前火山引擎 DataTester 的统计学原理是双样本假设检验。也就是说,目前火山引擎 DataTester 的假设检验都是依照一个对照组(旧策略组 A)和一个实验组(新策略组 B)来设计的。在 1 次比拟中,咱们犯第一类谬误的可能是 5%。AABB 试验中,实际上有 6 组比照(排列组合一下:A1A2,A1B1,A1B2,A2B1,A2B2,B1B2)。组合增多,那么咱们犯错的概率必然会增大。
如果实验者将实验组增多(AAABBB),或者参加试验的策略增多(ABCDE,AABBCCDD 等多个新策略),那么排列组合就会更多了,犯错的概率就会越来越大。再加上在试验中,咱们可能会察看多个指标,这样咱们犯错的概率就更大了。
No.3 AABB 试验肯定水平上会影响试验的灵敏度
试验调用的样本量越多,试验后果就越灵活。相较于 A/B 试验(只设置一个 A 组和一个 B 组)来说,AABB 试验将实验组的数量减少到了 4 个。此时实验者不得不面临几个抉择:
1. 试验总流量不变,各实验组的流量缩小一半,这会造成试验灵敏度降落;
2. 单实验组的流量不变,将分流进试验的总体流量增加一倍,这意味着实验者可能会承当更大的危险(如果新策略造成负向影响,会有更多的用户受到影响);
3. 也有一些聪慧的实验者抉择缩短试验时长,让更多用户进入试验之中,但这会产生更多的工夫老本。
既然如此,咱们为什么不罗唆把 AABB 试验合并为 A/B 试验呢?这样反而能够使得试验更灵活、危险更小、后果更牢靠。
No.4 p-value 曾经帮忙咱们比拟了“AB 差别”与“AA 差别”
通过一些用户访谈,咱们理解到大多数用户开设 AABB 试验的动机是:判断“AB 差别”是否高于“AA 差别”,并以此辅助本人进行决策。事实上,认真了解显著性程度的原理,咱们就会发现,p-value 曾经从更迷信的角度帮忙咱们实现了这个工作:p-value 小于 0.05,就是在保障了“AB 差别”肯定大于 95% 以上的“AA 差别”。
既然 p-value 曾经帮咱们比拟了“AB 差别”与“AA 差别”,咱们为什么还要本人开设 AABB 试验进行比拟呢?从某种程度上说,利用一次 AABB 试验来察看“AB 差别”是否大于“AA 差别”,仅仅是在节约试验资源而已。
四:外围:让危险“可量化”且“可控”
总体来说,A/B 方法论的外围是要让危险“可量化”且“可控”,火山引擎 DataTester 团队围绕这个目标应用假设检验范式设计了一整套零碎。AABB 的实验设计作为一种客观存在,并没有什么相对的对错,只是依据火山引擎的察看,对于绝大多数实验者和绝大多数业务场景,它的 ROI 是远远不足以让你抉择的。
点击跳转 A/ B 测试 DataTester 理解更多