on
也谈AB测试
前一阵子,团队做了一套AB测试的通用解决方案。在这里,不想聊具体怎么实现的。反而想聊一下怎样才是正确AB测试。因为在内部推广的时候,发现大家对AB测还是不明白。 - 不明白为什么要AB测试 - 不明白如何做AB测试
聊聊现实¶
现实中,不做AB测试,而是想当然
的例子很多。例如:
1. 感冒了,吃了感冒药,第2天感冒好了,所以感冒是感冒药治好的
2. 暑假期间,播放产品进行了改版,运营也上了新的播放内容,DAU涨了。但原因说不清楚了。
- 产品说:是播放产品改版的原因
- 运营说:是因为上了新内容的原因
- 其他人说:是因为假期来了,自然流量增长
现在让我们看看这两个例子。
在例1中:其实还有一部分人吃了感冒药后,第2天感冒并没有好,而是再过几天才好的。也有一部分人没有吃感冒药,第2天感冒也好了。很明显,吃了感冒药第2天好的,只是感冒人群的一部分。所以,不能以偏概全。因此,例1的结论是站不住的。
在例2中:DAU上涨,其实有3个条件共同作用的结果。 - 产品改版 - 新内容上线 - 暑假期间
但是再仔细想想上面的每一个条件: - 产品改版就一定是正向的?也许改版后并没有提升用户体验,甚至某些地方反而是降低了用户体验的。 - 新内容上线就一定是正向的?也许新的内容并不一定适合这段时间的人群特征,也许反而使得用户流失。 - 暑假期间从理论上讲会使得自然流量上涨。嗯,是的!貌似只有这个能站住脚,但是这个也只是经验之谈。
上面的例子,本质上是自认为得到了一个因果结论。但是请注意:每当我们得出一个因果结论的时候,一定要加倍小心,一定要再三的反问自己,这个因果是真正的因果么?我们是不是把一个经验结论当成了一个因果结论?
其实因果关系,需要用一套行之有效的科学方法和科学标准来检验。只有这样,才能确定它是否真正反映了事物的因果关系。而这种科学方法和标准就是对照实验
对照实验¶
什么是对照实验呢?通俗来说,对照实验就是将实验对象随机分成两个组,一个实验组 (treatment group),一个对照组 (control group)。对实验组人为地修改某一个控制变量,来实施实验,而对照组仅是用来做对比。通过实验组和对照组的比较,从而退出控制变量和结果之间是否有因果关系。
来看一个正确的
对照实验的例子:
『坏血病』在历史上曾是严重威胁人类健康的一种疾病,尤其在远洋航行的水手中更为严重。在18世纪,一位英国船长发现,在一些地中海国家的海军舰艇上服役的船员没有坏血病。他注意到,这些船员的食物配给中含有柑橘类(citrus)水果。于是,为了弄清真正的原因,这位船长将他的船员们随机
分为两组:其中一组在日常饮食中加入酸橙(limes),而另外一组维持原来的食谱不变。结果通过对比发现,定期食用酸橙的一组船员,真的防止了坏血病的发生。后来,定期食用柑橘类水果就变成了英国水手必须遵循的一种规定。
上述的例子就是一个典型且成功
的对照实验。为什么这么说呢?因为船长对于船员进行分组时有一个很关键的细节:是随机
分组的。首先,两个组的船员都来自同一艘船,他们平常的生活条件大体相同。如果不是来自同一艘船,就会引入额外的干扰因素,比如船员的航线不同,出身不同,整体健康状况可能也不同,最终导致实验失败。其次,两个组是随机
分派的,这样就避免了「选择性偏差」。
再来看一个错误的
对照实验的例子:
产品改版,为判断这个改版是否正确。在上线前,做了AB测试。随机的挑选了一部分男性用户,将其随机分成了两组,分别使用新版本(实验组)和老版本(对照组)。根据一段时间内,用户的使用时长作为判断依据。发现新版本用户使用时长明显高于老版本,所以,得出新版本优于老版本的结论。
上述例子就是一个典型且失败
的对照实验。它犯了一个很明显的错误:就是在一开始挑选用户的时候,都为男性。这样,实验对象并不随机,从而得出了错误的因果关系。因为这个结论,其实只能说明:在男性用户中,新版本要优于老版本。
来看另外一个错误的
对照实验的例子:
同样的是产品改版,为判断这个改版是否正确。在上线前,做了AB测试。把全量用户分成了两组,实验组用户数占比10/256,对照组用户数占比246/256。根据一段时间内,两组用户的使用时长作为判断依据,从而得出新版本是否优于老版本的结论。
上面是我司真实的案例,而且基本上所有产品功能上线前全部都是这样的方式来做对照实验。
为什么分配比例是以256为分母?因为互联网产品经常会为设备(终端)生成一个16进制的设备号。然后设备号的前两位是从00到FF,刚好是256的范围。
为什么是10/256,246/256的分配比例?说实话,10 和 246 是拍脑袋想的,但基本上都遵循一个原则:实验组必须先拿少量来测试。因为这样不会影响整体的数据。
这个例子也犯了相同的的错误:就是在一开始挑选用户的时候,不随机,一部分占比10/256,一部分占比246。这样也得出了错误的因果关系。
由上可见,我们设计实验来探索或验证因果律的时候,需要加倍小心。因为实验本身就可能存在陷阱和选择性偏差。
结论¶
通篇说了这么多,也就是为了来解答本文开始的这两个问题。最后做个总结吧。
- 不明白为什么要AB测试
答: AB测试能够科学的、严谨的得到因果关系。这样的因果关系,才是正确的、合理的,而不是经验性的。所以,需要AB测试。
- 不明白如何做AB测试
答: AB测试的关键在于对照实验
。要保证对照实验
的正确性
,需要严格遵守下面的规则:
- 要对足够随机的挑选实验对象
- 要把实验对象分成两组:
实验组
和对照组
- 实验过程中,只能改变一个因素,从而得出一个因素带来的结果。因为如果改变了多个因素,结果是多个因素的叠加,不具备唯一变量。