苦逼毕业狗,天天为了毕不了业担惊受怕,还要找工作,不能毕业即失业啊。最近看到一个招聘细则上,岗位描述中有这么一条:


A/B test是什么?_java


负责业务上各类A/B实验设计与分析?



1.AB测试的基本概念 
2.AB测试的要点
3.相关数学概念



A/B test是什么?_java_02

基本概念

A/B test是什么?_java_03


所谓A/B测试,就是在日常工作中,对于新的创意想法或二次优化的页面,选择两个或多个不同的版本,通过拆分流量的方式,随机呈现给不同的客户群体。最终通过反馈回来的真实的用户行为数据,分析得出最优的方案去承载全部流量。


比如以下这个案例,奥巴马在竞选总统时,他的竞选宣传团队选取了4*4共16个方案进行AB测试,最终使得竞选页的转化率提升40.6%。


A/B test是什么?_java_04


他们将上面的四个页面与下面的四个红色按钮两两组合,形成16个不同的方案,再将这些方案分配给不同比例的流量,经过一段时间的观察,将其中转化率最高的方案,推广给全部用户。下面的图片展示的就是最终的方案:




A/B test是什么?_java_02

测试要点

A/B test是什么?_java_02


1.先验性先通过低代价,小流量的试验,再推广到全流量的用户

2.并行性:不同版本,不同方案在验证时要保证只有一个变量,其他条件都相同,需要他们同时在线,同时生效

3.科学性:包括分流科学性和数据结论科学性。

分流科学性指,要保证虽然原始版本和试验版本流量的大小分配不同,但样本的代表性必须尽量一致。

数据结论科学性指,我们不能直接用均值转化率的绝对值大小进行A/B测试决策,而是要用可以支持置信区间、收敛程度、统计功效的方法得出数据结论。



A/B test是什么?_java_02

数学概念

A/B test是什么?_java_02


A/B测试是基于数据的优化方法,为了深刻认识它,我们需要学习其背后的统计学原理


假设我们已经构建了两组数目较大的用户组,我们想知道两组间的转化率是否有显著差异


可以通过假设检验来进行统计推断。它是通过构造假设条件,并通过样本数据对假设条件进行检验,从而得出结论的方法


假设检验的基本思想是小概率反证法思想。小概率思想是指小概率事件(P<0.01P<0.05)在一次试验中基本上不会发生。



首先,我们构造两个假设,第一个假设为检验假设,假设两个总体之间没有显著差异用适当的统计方法确定假设成立的可能性大小。一般情况下认为假设H0成立的可能性大。


第二个假设为备择假设,假设两个总体之间有显著差异备择假设H1成立的可能性非常小.



A/B test是什么?_java_09


我们可以得到假设H0成立的一个接受域。如果根据样本得到的统计值落到了接受域外,则认为假设H0不成立,否则接受H0

A/B test是什么?_java_10

在实际工作中,产品经理认为产品改动能带来较大转化率,我们可以先假设新的改动没有具体效果(很大可能性发生,有一个接受域),然后找证据(进行AB实验设计,观察数据),来证明或否定这种假设。


由上图概率分布曲线图可知,曲线有左右两侧。同时考虑两个尾端的小概率事件时,称为双尾检验。只考虑一端的小概率事件时,称为单尾检验。


之后,我们需要确认一个统计量,用来评估推翻无效假设的证据。如果该统计量非常的大(即已经超过了一定的临界值),我们则可以认为这种差异并不仅仅是由抽样误差带来的,因此我们可以拒绝原假设,认为两个总体有显著差异


具体的步骤如下:



A/B test是什么?_java_11

A/B test是什么?_java_12

建立假设检验

假设A组和B组分别有5000个样本;

零假设H0:两组的转化率没有显著差别;

备择假设H1:两组群体的转化率存在显著差异;

设定检验水准α,一般为0.050.01

选择单双侧检验。



A/B test是什么?_java_13

A/B test是什么?_java_14

检验方法

计算出统计量的大小;

选定检验方法,常用的检验方法包括Z检验,t检验,卡方检验等。



A/B test是什么?_java_13

A/B test是什么?_java_14

判断结果

根据统计量的大小及其分布,确定假设检验成立的可能性P的大小或临界值,并判断结果。