AB实验的坑有哪些?
[从假设检验到AB实验——面试前你要准备什么?](https://mp.weixin.qq.com/s/sDZpYd88xM0n5Gje5gmwIw)
**AB实验的作用很大,但是AB实验的实现并不简单,往往会踩坑无数。**
# AB实验的坑有哪些?
## 1、人群不同质
AB实验需要切分流量到不同方案,如果不能正确切分,使得分到不同方案的用户群体特征分布一致,那么实验将没有任何意义。**为了便于理解,我们来看一个例子**:
**如果我们要对人群G做一个AB实验来找到发放什么礼品才能使用户的注册转化率更高?** A、B分别代表发放不同的奖品BB霜与剃须刀,G由子群G1与G2构成(G1、G2分别代表女生、男生,且各占50%)。按照同质用户的要求,分给这两方案的用户流量中男女比例必须与总体一致,也即女:男=1:1。
这时,发生了一些意外……
实验中分给方案A的群体不幸都是G1(女生),分给方案B的群体是G2(男生),最终一种奖品比另外一种奖品有更高的注册转化率,比如A高于B,那么这时能下结论“奖品A比奖品B更受用户喜欢,应该给所有用户发放奖品A”么?
肯定是不能的。这个决策相当于认为女生喜欢的就是男生喜欢的,根据实验结论,你应该对所有的用户G都发放注册转化率更高的礼品A。试想下男生领到BB霜时他们内心是何种感受?

这里的问题就是不同方案分得的人群是不同质带来的。上述举的例子为了便于理解,故比较绝对,实际过程中遇到更多的是A方案、B方案都是男女混合的群体,但是比例却与总体1:1的分布不同,这样同样带来错误的实验结论。
所以设计合理的分流算法,确保分流到每个方案的都是同一特征分布的人群是AB实验结论可信的前提。达尔文AB实验系统经过一年多的探索,已形成一套相对可靠的分流算法。
## 2、实验不同时
在上面的例子中,如果方案A与方案B都是分到同一特征分布的群体G,那么数据一定具有可比性么?不一定。**还是用极端的例子帮助理解**。假设第一天,A方案分到100万个用户流量,B方案分到0个用户流量,第二天A方案分到0个流量,B方案分到100万个用户流量,从整体看,这两天的A方案与B方案的累计实验流量都是100万,且人群是同质的,实验结果应该可信,但事与愿违,如果这是一个社交网站,实验是为了观察不同产品版本A和B下用户的主动加好友数量,则A方案明显优势大很多,毕竟用户多了一整天的时间去添加好友,这种情况下任何时间截面数据B都处于劣势,且这种劣势并不是方案不同造成的。同理,一个博客网站,如果对比不同方案下用户的博客开通率、撰写率,也可能犯同样的错误。
另外一种情况是,在一些特殊日子中,用户的活跃度会暂时性增高,如果A方案的作用时间刚好是节日,方案B的作用时间非节日,那么显然这种比较对于B方案是不公平的。
上文提到的公式:**“指标结果=F({隐变量列}、{显变量列(含方案变量)})”**,隐变量、显变量中很大一部分跟时间相关,时间不同,这些变量的取值也不同,从而就破坏了控制变量法的前提,得不出正确的实验结论。
**最后列举一个我们参与的一个case让大家感受下:**

样式1的文案:《葵花宝典》带你轻松使用XXX
样式2的文案:哪些功能最热门,我来告诉你
**由于早期未规范实验管理规范,两个样式的实验并非同时开始:**
1、样式1,在4月7日的10:00开始实验
2、样式2,在4月7日的0:00开始实验
**最终统计的表现不一:**
如果看4月7日10:00之后进入实验的用户数据,样式2比样式1的CTR只提升了大约0.3%,符合实验同时的前提条件,因此结论可信;
但如果看4月7日全天的数据,样式2比样式1的CTR提升了大约1%,这个不符合我们提到的实验同时做的条件,结论不可信;
**此处也告诉我们:**
1、进行对比的各个实验版本(上文的样式1与样式2)一定要同时开启实验
2、实验过程中不能随意修改每个版本的流量,这也会间接导致上述问题
## 3、没有AA实验的意识
AA实验是AB实验的孪生兄弟,有的互联网公司也叫空转实验。AA指的是实验中的各个方案都是一致的。这么做的目的是啥?**这是为了测试埋点、分流、实验统计的正确性,增加AB实验的实验结论可信度。**
设命题1为:“如果实验的埋点、分流和统计都没有问题,那么AA实验中各个方案的数据表现一定一致”,若命题1成立,则其逆否命题2:“如果AA实验中各个方案的数据表现存在显著差异,则实验的埋点、分流和统计肯定至少一项有问题。”也必定成立。
**严格意义上讲AA实验的通过并不能证明上述三项(埋点、分流、统计)绝对没有问题,但是AA实验不通过一定能证明上述三项至少一项存在问题。**
所以具备AB实验素养的团队,一定会在AB实验前布置AA实验。
>[做AA测试,不如看AA波动](https://zhuanlan.zhihu.com/p/134085246)
[聊聊AA实验的波动性](https://zhuanlan.zhihu.com/p/47339375)
## 4、实验反转
**假如一个实验布置到线上第一天,方案A比方案B好,能否代表第二天,第三天的数据表现还是如此?**
用户进入到新方案中,很可能因为好奇而表现的更加活跃,但随着时间推移,逐渐趋于冷静,数据表现回到本该有的水平,如果实验观察期设置的过早,则容易得出错误的结论。反过来也如此,有的改版用户很不习惯,但用了熟练之后发现比老版更便捷,数据会逐渐回暖。
另外一方面,做实验的样本量太少,也可能出现反转,抛100次硬币和抛100万次硬币正面的频次很可能不一样,根据大数定律,随着随机实验的次数增加,随机变量的频次分布趋向于其概率分布。在这里,假设实验的第一天只有100个用户进入,由于样本量太少,实验结果的随机性太强,随着天数增加,实验样本也增加,实验结果可能会反转。
**一般情况下,我们不建议样本量小于1000用户的产品进行AB实验,因为实验结果很难得到保证。**
## 5、延滞效应
记得我们在上化学实验课时,老师一定是先让你把试管洗干净吧?这么做可不只是为了卫生。**待实验的化学药剂如果与试管中残留的药剂混合,则实际实验的则是这种“被混合的药剂”,实验结果当然不可信。上述说的问题就是carry over——延滞效应。**

**同样在互联网产品实验中,也存在这样的问题**。举个例子,编号为00001-10000与编号10001-20000的用户之前被分到不同的实验方案(A和B)进行实验,这个实验结束后团队开始要进行一个新的实验,如果没有特殊处理,则可能00001-10000及10001-20000的用户也是被分到两个方案中(A1,B1),此时实验结果可信么?00001-10000的用户之前经历过方案A,现在全部落在了方案A1上,10001-20000的用户之前经历了方案B,现在全部落在了方案B1上,也许在做第一个实验前两个用户群是同质的,但做了第一个实验后,这两个群体已经不同质,要进行第二个实验则必须采用一定的算法将两个用户群重新打散,获得 一个新的编号排列,再切分出两个同质人群进行第二个实验,或者重新拿出新的号段出来实验,比方20001-30000,30001-40000。
**以上列举的只是一些常识性的坑,实际过程中还会遇到更多…..**
在国内的顶级互联网公司BAT中,AB实验已非常普遍,百度同时有上千个AB实验并行,阿里巴巴和腾讯也有自己的AB实验系统用以支持多业务大规模并行的AB实验。
**“如何把AB实验文化根植到公司的基因中去?”,时代正在向所有的互联网公司发出提问。**
---
转载:[BAT都在用的方法,详解A/B测试的那些坑!](http://www.opp2.com/84497.html)