如果老板问你,什么是A/B Testing,你该怎样回答?

AB Testing是一个基于假设检验的实验方法。上一篇我们说了AB Testing如何帮Bing多赚了$100M,今天我们来做个实验!顺便说说AB Testing背后的原理。

 

01.究竟什么是AB Testing?请说人话

实际工作中,我们会遇到很多情况需要我们评估各种不同的方案,以及应该采用哪些策略来测试我们的产品或广告。A/B testing就是一个帮我们选出更好的方案的办法。

当进行A/B测试时,通常会采用两个(或多个)组:A组和B组。A组是对照组,B组是实验组,B组在某些因素上与A组不同。

然后,把用户随机地分到这两组,比较这两组的用户行为是否有显著的差异。如果有,那我们就会认为,导致这个行为差异的原因,是B组里的那些与A组不同的因素。如果B组的用户产生了更多的购买行为,我们就可以下结论:B组中那些与A组不同的因素能够显著提高用户的购买行为。

 

02.   AB Testing能解决什么问题   

1.png

举2个例子——

1. Landing Page Optimization

如何让更多的用户在进入Landing Page后产生深度网页交互行为甚至购买行为?也就是,如何才能获得最大的Conversion Rate。Conversion Rate的常用计算方法是:有购买行为或深度网页交互行为的用户数占网站访问总用户数的比率。

这里就要考虑到Landing Page的形式和内容了。你可能会有无数个备选方案,希望能够从候选集合中选出最好的Landing Page。这时你就可以用到AB Test来比较不同的方案。最终促使来访的用户与网站深度交互或者产生购买行为,使得Conversion Rate最大化。

2. Ad Creative Optimization

线上广告提出了许多适合机器学习技术应用的挑战,其中之一就是如何选择广告的形式和内容。当我们决定将要进行广告展示,以及确定了广告的价格后,在这个广告位上选择放置什么广告呢?我们需要对大量的决策进行测试,选出正确的广告创意组合。

注意!实验来了!

比如我们刚推出的A/B Testing101这门课,有两个版本的课程封面图。有些同学看到的是蓝色,有些看到的是橙色。颜色不同的封面图,真的会给课程订阅数带来显著的差异吗?

3.png
前方高能:以下涉及serious statistics,不喜勿入!

03. AB Testing的统计原理   

假设我们已经构建了两组数目较大的用户组,这些用户组的区别仅在于他们到达的landing page。我们现在希望能测试两组间的conversion rate在统计上是否存在明显差异。由于样本量大,我们可以采用双样本单尾z-检验(two-sample, one-tailed z-test)。另外,对于较小的样本集合,我们可以依赖于t-检验。

z检验(z-test)是在数据是正态分布和随机抽样的假设下运行的,目的是验证测试集(B组)是否与该对照集(A组)有显著不同,但是如何执行这个测试呢?

这里就不得不提到一个概念——假设检验。其实每一个实验就是一个检验你实验假设的过程。在landing page这个例子中,我们的假设就是:landing page的某个元素的改变能够让用户的conversion rate发生显著的变化。在假设检验中,零假设(null hypothesis)指的是假设不成立的情况,在我们的例子中,就是两组群体的转化率没有显著的正差异。备择假设(或称对立假设,alternative hypothesis)指的是假设成立的情况,也就是——不同人群间的转化率确实存在着正差异。

我们可将样本转化率视为一个正态分布的随机变量,也就是说,样本的转化率是在正态分布下对转化率的一个观测。每当对某组进行抽样时,可通过样本转化率获得整体转化率的估计,对于A组和B组都是如此。为此我们提出一个新的正态随机变量,它是A和B组的随机变量的组合,是差值的分布。让我们用X来表示这个新的随机变量,定义为:

5.png
 
4.png
 

其中,Xe 表示实验组的转化率的随机变量, Xn表示对照组的转化率的随机变量。现在我们可以写出零假设和备择假设。

零假设可以表示为:

5.png

 

这表示实验组和对照组是相同的。两个随机变量Xe和Xn分布在相同的整体平均值周围,所以我们的新随机变量X应该分布在0左右。

我们的备择假设可以表示如下:

6.png

实验组的随机变量的期望值大于对照组的期望值;该群体的平均值较高。

我们可以在零假设的前提下,对X的分布执行单尾z检验,以确定是否有证据支持备择假设。为了达到这个目的,我们对X进行采样,计算标准分,并测试已知的显著性水平。

X的采样等效于运行两个实验,确定它们各自的转化率,并将对照组和实验组的转化率相减。按照标准分的定义,可以写作:

其中,P experiment是实验组的转化率,P control是对照组的转化率,SE是转化率差值的标准差。

为确定标准误差,注意到转化过程是符合二项分布的,因此访问该网站可以被看作单次伯努利试验(single Bernoulli trial),而积极结果(完成转化)的可能性是未知的。假设样本数量足够大,我们可以使用广泛采用的Wald方法将该分布近似为正态分布。为了捕获特定转化率的不确定性,我们可以将标准误差(SE)写入实验组和对照组,其中p是转化的可能性,n是样本数量,具体如下:

8.png

从二项分布(np(1-p))的方差得到分子,而分母表示当采用更多的样本时,转化率的误差会随之下降。请注意正面结果的概率等同于转化率,并且因为两个变量的标准误差可以通过相加来合并,得到如下结果:

 

通过替换,可获得如下的z检验公式,这是一个符合二项分布的Wald(或正态)区间的公式

10.png

 

z的值越大,反对零假设的证据就越多。为了获得单尾测试的90%置信区间,我们的z值将需要大于1.28。这实际上这是指在零假设(A组和B组的人口平均值是相同的)的条件下,等于或大于这个转化率差值的偶然发生的概率小于10%。 换句话说,在对照组和实验组的转化率来自具有相同平均值的分布的假设前提下,如果运行相同的实验100次,只会有10次具有这样的极端值。我们可以通过95%的置信区间,更严格的边界和更多的证据来反对零假设,这时需要将z值增加到1.65。

研究影响z大小的因素会带来很多有用的帮助。很显然,如果在一个给定的时间点从一个实验集和一个对照集中提取两个转化率,转化率的差值越大将导致z分数越大。因此就有了更多的证据表明两个集合分别来自不同的人群,而且这些人群带有不同的均值。然而样品的数量也很重要,如你所见,大量样本将导致总体较小的标准误差。这表明运行实验的时间越长,转化率的估算越准确。


讲了这么多,你明白A/B Testing是怎么回事了吗?

当然,在实际工作中,并不需要你写出统计公式,但你会面对更多需要考量的问题:

  • 如何确定优化指标?

  • 需要测试多长时间?

  • 需要设置多少预算?

  • 分组不够随机、用户量不够大到可以忽略组间差异,或者不希望大规模A/B test长期影响一部分用户的体验时,该如何实践呢?

如果你有以上的困惑,或者你对A/B Testing非常好奇,就来报名我们的A/B Testing 101课程吧!

本文部分节选自达观数据(http://www.datagrand.com)