你的A/B测试结果真的靠谱吗?

6 评论 17225 浏览 89 收藏 10 分钟

曾几何时,我们抱着一个AB测试的异常数字欣喜若狂,又在下一次测试的效果反转中怅然若失,最终于数据波动中浮浮沉沉,一声嗟叹,蹉跎半生~

之前在《增长策略:如何用AB测试进行活动评估及优化?》一文中,我们谈到了如何用AB测试评估活动的效果,但是AB测试中隐藏着大大小小的坑,比如:样本的数量就会严重影响到实验结果。

那么,我们又该如何评估AB测试的结果是否可靠呢?

知识点1:抽样分布

在回顾知识点的时候,大家不要慌张,让我们循序渐进,用讲人话的方式来重新认识课本上这些晦涩难懂的公式定理。

在讲抽样分布之前,我们先来复习一下,什么是随机抽样。

通俗一点来讲,比如:要统计北京180cm以上的人口占比,因为总体的量级很大,我们无法挨家挨户去观察记录,因此一般都采用随机抽样的方法。

我们可以在北京的路边闭着眼睛随机抓100个人,这100个人就是随机抽取的样本,然后再记录下180cm以上的人群占比,发现是20%,而这个20%就是我们抽样统计的结果。

那么,抽样分布又是什么呢?

先看看百度百科的解释:以样本平均数为例,它是总体平均数的一个估计量,如果按照相同的样本容量,相同的抽样方式,反复地抽取样本,每次可以计算一个平均数,所有可能样本的平均数所形成的分布,就是样本平均数的抽样分布。

沿用上面的例子,我们继续闭着眼睛抓人,一共抓了1000组人,每组都有100个,接下来,我们统计一下各组180cm以上的人群占比,把最终得到的1000个占比数据排到一起,发现有100个19%,200个20%,100个21%……

根据数据,我们画出了下面这张图,这张图就是我们占比的抽样分布图。

根据一些其他知识,我们知道,这其实是一个伯努利试验,也就是经典的抛硬币试验,结果只有两种,当重复的次数足够多的时候,其分布近似正态分布,这里最中间的数值p=20%就是该抽样分布的均值,而p*(1-p)就是该分布的方差。

知识点2:假设检验

基于抽样的结果,我们可以大致估计出总体差不多也这样儿,但单独某一次的抽样不能完全代表总体,毕竟我们抽了1000组人,很多组的占比结果都不一样,甚至有的样本组占比差异很大。

书归正传,我们在做AB测试的时候,其实是假想有同一拨儿人,存在于多个平行宇宙,我们在每个平行宇宙的总体用户中随机抽出一组人参与不同的实验,最终其实是用这几个样本组的差异来预测平行宇宙不同总体之间的差异。

讲的有点玄乎了,说白了,我们最终要做的事就是来判断,将哪个实验方案推广至总体用户后效果最好。

但我们不可能按照同样的实验条件反复做几百次,所以这几个样本组的结果是否能代表总体?他们之间的结果差异是否能反应这几个总体的真实差异呢?

为了验证这一点,我们就要用到假设检验了,假设检验说到底无非就两步,第一,先提出假设,第二,进行检验,看假设是否成立。

那么,我们可以首先提出这样一个假设:H0:两个组其实没啥差别。

我们所做的AB测试其实都属于伯努利试验,当样本量足够大的时候,根据中心极限定理,其抽样分布都近似于正态分布,那么做假设检验的时候我们就应该用Z检验,话不多说,先上公式:

其中:

  • x1,x2是样本1,样本2的平均数;
  • S12,S22是样本1,样本2的方差;
  • n1,n2是样本1,样本2的容量。

计算完Z值后,比较计算所得Z值与理论Z值,依据Z值与差异显著性关系表作出判断,具体如下:

应用题

看到这里多少会有点懵,但至于中心极限定理是啥,Z检验又是啥,为什么用这个公式,置信度是啥,都不用太关心,我们只需要结合常识来看看,这个Z值的公式蕴含着什么意义。

如果我们要验证两种不同活动方案的效果差异,首先随机抽取用户分成AB两组,其中A组人数为n1,B组人数为n2。然后对两组用户施加不同的活动干预,最后得到两组用户的转化率分别是p1和p2,那么对应的方差就应该是:

  • S12=p1*(1-p1)=p1q1
  • S22=p2*(1-p2)=p2q2

最终,这个公式就变成了:

根据AB测试的常识我们知道,参与实验的每个组的人数,也就是n1和n2应该足够大。

想象一下,当n1和n2都非常大,甚至接近正无穷的时候,这个公式的分母会趋近于0,p1和p2但凡有一点点差异,这个Z值都会非常大,Z检验的结果也会非常显著。而如果样本量n1和n2不是很大的话,那么就需要p1和p2的差值足够大,才能保证结果的显著性。

这也就是为什么很多时候,在小样本的AB测试中,会出现对照组转化率略高于实验组的原因,如果要引入Z检验的话,最终的判定结果多半都是不显著。

我们以实际的例子来看一看,做AB测试的检验时,应该怎么用。

假设我们有两个实验组,分别施以不同的活动策略,两组的相关指标数据如下:

通过上述的公式,我们可以计算得到:Z=1.66<1.96

因此,虽然组2的转化率是组1的两倍,但Z检验的结果表明两组的差异并不显著。

于是,我们又为组2补了100个用户,发现组2的转化率仍能保持在10%,按照组2的样本量为200个,转化率10%来重新计算Z值发现:Z=2.34>1.96

证明实验结果显著,两种活动方案的转化率有明显差异,说明如果把方案2推广至总体用户的话,其转化效果会明显优于方案1。

到这里我们已经可以证明AB测试结果的显著性了,通过Z检验,我们能判断数字表面上显现出的差异是否可以反应总体真实的差异。

我们可以验证方案2确实优于方案1,但是方案2的转化率是否真的可以达到方案1的两倍呢?这还需要引入另一个概念,那就是置信区间,下次有机会再做分享。

好了,今天的墨叽小课堂就磨叽这么多了,下回某一时间,我们相见随缘。

 

作者:Mr.墨叽,公众号:墨叽说数据产品

本文由 @Mr.墨叽 原创发布于人人都是产品经理。未经许可,禁止转载

题图来自Unsplash,基于CC0协议

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 在做实验的时候 组1有1000人,但是组2只有100人,这样是否公平呢

    来自广东 回复
  2. 作者大大好,请教下判断实验组和对照组显著性的时候,Z检验和p值有什么区别呢,两者都可以用来判断?还是各有不同的应用条件呢,看很多资料都说的是看p值

    回复
    1. Z检验给出的公式算出来的是z值,z值用来和p值比较。p值是客观值,是通过z值表找出来的。比较两者大小得出原假设是否成立。
      你的疑惑来自于不了解显著性检验,可以先看看书了解下统计学上的显著性检验哈

      来自广东 回复
    2. 楼上说的对。

      来自北京 回复
  3. 题图有点文不对图了

    来自广东 回复
    1. 排版是有点问题

      来自北京 回复