From Enterprise to Cloud (1)
From Enterprise to Cloud (2) --- A/B Testing I
From Enterprise to Cloud (3) --- A/B Testing II
From Enterprise to Cloud (4) --- A/B Testing III
From Enterprise to Cloud (5) --- A/B Testing IV
From Enterprise to Cloud (6) --- 测量术 I
之前三篇,详述了A/B Testing是什么,如何做,对数据驱动的影响,以及三大策略中的随机策略和分配策略。我想讨论的最后一个问题是退出策略,即测试需要做多久可以停止?
退出策略,其实一个信心的问题,你有多大的信心来结束实验。样本越大,A和B的区分度越高,我们就越有信心。比如说,将一枚硬币投掷100次,其中有51次有数字的一面朝上,我们可以认为硬币分布是均匀的。但如果我们只做10次实验,6次是有数字的一面呢?我们还能有足够的信心得出相同的结论嘛?
并不是所有的实验都能做到样本足够大,区分度足够高的。于是,我们需要一些统计学的方法帮我们来量化信心。
这里我们需要用到统计学的假设验证。
以转化率为例。我们运行A/B Testing 一周,分别对1000个样本进行了测试。A的转化率为7.5%,B的转化率为9%,如下表。
| Total Visitors | Registered Vistors | Conversion Rate | |
| A | 1000 | 75 | 7.5% | 
| B | 1000 | 90 | 9% | 
我们有没有足够的信心认定B比A好?有多大的可能是因为一些随机的因素导致这样的区别呢?
假设验证可以有效的帮助我们回答这个问题。我们首先假设B的效果不会比A好,然后试图通过证据(样本)来推翻这个假设,如果样本足以推翻假设,那么我们就可以认为实验完成了,否则我们需要继续实验或者干脆就接受这个假设并把B的code扔掉了事。
好,我们先来定义我们的假设,即B不比A好。(如果我们的证据能够推翻这个假设,那么就说明B比A好,我们就应该用B的设计方案)
H0: Pb – Pa <= 0
上公式中Pb是B的转化率,Pa是A的转化率。
一个用户,要么注册,要么不注册。所以A和B都是满足二项分布的。即,
A ~ B(N, Pa)
B ~ B(N, Pb)
N是样本数目。
根据中心极限定律,A和B可以近似为正态分布,那么,我们关注的随机变量X = (Pb – Pa)的分布也为正态分布:
X ~ N (0, Pb(1-Pb)/N + Pa(1-Pa)/N)
关于以上二项分布之差为什么是正态分布,以及正态分布的期望和方差的求法请参考概率与统计相关的书籍。期望取0,是因为这是我们的假设。
我们可以对上述正态分布进行标准化(请查书),公式如下:
标准化之后,我们可以通过查询正态分布表获得X <= 0的概率。下面是张随机变量X标准化后的正态分布图。
然后,我们选择5%的区间作为拒绝域,即,如果X标准化后的值落在了最右端5%的面积里面,那么我们可以具有很强的信心(1-5%=95%)来拒绝我们的假设H0,即,判定B比A有效。
假设X标准化后的随机变量为Z,根据标准分公式,我们可以计算出,Z = 1.22。也就是说随机变量X的取值在95%点(1.645)的左边。这个值对应的概率大约是89%。也就是说,89%的概率下B比A好。但我们需要的标准是95%,所以上述样本不足以得出B比A好的结论。
正如之前所说,这种情况下,我们需要做更多实验。于是,我们又做了一周,A和B分别得到了2000个样本,转化率不变。这个时候我们有信心认为B比A好了吗?
| Total Visitors | Registered Vistors | Conversion Rate | |
| A | 2000 | 150 | 7.5% | 
| B | 2000 | 180 | 9% | 
仍然是套用上述公式求Z值,z = 1.72。哈,超出了1.645 (95%信心点),这个时候我们有了足够的信心来相信B比A好。到此为止,实验结束。
另外,如果转化率变化不大,那么通过公式我们可以反推所需要的实验数目。
然后我们看另外一个例子。我们发现系统的性能不够好,于是设计了一个新的算法B。然后,我们做了ab testing,想去验证B确实比A速度更快。采集了一天的样本,如下。可以证明(或者说我们有信心认为)比起A来,B真的有改进嘛?
| 样本数目 | 期望 E | 方差 D | |
| A | 1000 | 7.5 秒 | 0.5 秒 | 
| B | 1000 | 6.3 秒 | 0.6 秒 | 
我们可以认为性能数据满足正态分布,即
A ~ N(Ea = 7.5, Da = 0.5)
B ~ N(Eb = 6.3, Db = 0.6)
好,我们现在开始做假设验证,即,B不比A好。
H0: A – B <= 0
那么随机变量X (A-B)满足正态分布,
X ~ N(Ea – Eb, Da + Db)
且,根据标准分公式,查概率表可知,仅有87.29%的可能性B比A要好。而我们希望的是95%的信心度,B的期望值最少需要5.77,也就是说在当前方差下,至少B的期望要低到5.77,我们才能有足够的信心接受B。可见,对正态分布样本来说,方差越大,我们就越不容易得出结论。
好了,退出策略也描述完成了,整个a/b testing相关的东西都说完了,接下来该谈谈Instrumentation了。
 
                    
                 



 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号