ABtest的工作原理

面LY时问到了这个问题,没回答出来,因此记录下。


ABT原理

一、假设检验

1.思路

逻辑学中,如果我们能够证明某个零假设不成立,那么其备择假设肯定为真。即,零假设和备择假设为对立事件。

设立假设:

零假设:A和B没有显著差异

备择假设:A和B有显著差异

如果能找到足够强的证据来否定零假设(A和B没有显著差异),那么就能有效的说明零假设不成立,即备选假设成立。


证据:计算零假设成立的前提下A和B没有显著差异的概率P.value(新方案根本没啥卵用的可能性),若P值=0.01,显著性水平α为0.05,则零假设成立的概率=1%小于5%,而备择假设成立的概率大于95%,因此否定了零假设,可认为备择假设为真。

结论:P.value<=α,拒绝零假设;P.value>α,不拒绝零假设

假设检验的两类错误

i.否定了真实的原假设。避免方法:可通过α水平控制,降低α水平

ii.接受了错误的原假设。避免方法:可通过扩大样本容量

2.常见假设检验

T检验:假设样本服从正态分布,无需知道总体方差

Z检验:假设样本服从标准正态分布,需知道总体方差

F检验:方差齐次检验,检查两组样本的方差是否有差异

3.为什么选择T检验

使用Z-检验需要知道总体的方差,然而在很多情况下这是难以知道的。

t-检验是可以代替Z-检验的。根据中心极限定理:当总体分布是正态分布时,对任意样本量n,抽样均值分布均为正态分布。如果总体为非正态分布,仅在n值较大的情况下,样本均值分布近似为正态分布。总体服从正态分布的数据在小样本时呈现为t分布形态,而服从t分布的数据在样本较大时会渐近于正态分布,也就是无论样本大小,均可以使用T检验。

4.以成对T检验为例的常见步骤

对样本进行正态性检验,样本服从正态分布;

两组样本进行方差齐性检验,判定是否同方差,以选择同方差or异方差T检验;

进行T检验,计算P值,拒绝or不拒绝原假设(通常大家只做了最后一步)

二、最小样本量

原理大概是这样~考虑显著性水平、以及两组样本的方差等,来计算最小样本量。显著性水平越低,方差越大,最小样本量越大。

R语言实现~ pwr.t.test(n=, d=, sig.level=, power=, type =, alternative=)

其中:

1、n为样本大小;

2、d为效应值,即标准化的均值之差;

3、sig.level表示显著性水平(默认为0.05);

4、power为功效水平;

5、type表示检验类型:双样本t检验(two.sample)、单样本t检验(one.sample)或相依样本t检验(paired)。默认为双样本t检验。

6、alternative表示统计检验时双侧检验(two.sided)还是单侧检验(less或greater)。默认为双侧检验。

备注:前五个中,输入任意4个值,都会输出另外一个

例子:

> library(pwr)

> pwr.t.test(d=.8, sig.level = .05, power = .9, type = "two.sample", alternative = "two.side")

Two-sample t test power calculation

n = 33.82555

d = 0.8

sig.level = 0.05

power = 0.9

alternative = two.sided

NOTE: n is number in *each* group

结果表明,每组中需要34个样本(总共68个),这样才能保证有90%的把握检测到0.8的效应值,并且最多5%的可能性会误报差异存在。

三、如何验证AA分流稳定性

1.AA进行假设检验,检验AA是否有显著差异,如果随机分流稳定,AA不会有显著差异;

2.检查小样本的分流比例是否和设定的相差不多,例如,看新老用户分别的分流比例、2000家酒店detail页的分流比例等等;

3.顺着随机分流系统的代码规则,看一个用户是否被分到该分的组内(难度大,主要是看随机分流系统有无问题)

你可能感兴趣的:(ABtest的工作原理)