增长黑客AB-Test系统(四)——AB-Test 最小样本量

作者:livan

来源:数据python与算法

前沿

统计计算主要应用在效果评估领域。客户经过分流之后在各个试验组中产生数据,统计的作用即为查看对应组的样本量是否达到最小样本量,数据之间是否存在显著性差异,以及进行差异大小的比较。

如下图:

增长黑客AB-Test系统(四)——AB-Test 最小样本量_第1张图片

A-A-B三组数据观察n天后,会产生3组数据,我们接下来的任务就是计算这三组数据的统计效果,进而确定哪个方案效果好……

最小样本量

最小样本量是按照统计功效进行计算的,主要分两类:绝对值类(例如:UV)和比率类(例如:点击率)。

在试验过程中,大部分场景是进行比率类指标的比较,单纯的计算绝对值是没有价值的,而且对于试验效果来讲,绝对值的比较可以转化为比率的比较,所以在计算过程中,我们统一成比率计算,以方便口径统一和数值比较。

理论上,比率类最小样本量计算:

增长黑客AB-Test系统(四)——AB-Test 最小样本量_第2张图片

其中Z为z系数,统计中Z值有一个固定的Z值表,可以依据α和β指标确定出对应的Z值,工业应用中一般默认使用α=0.1(单尾)和β=0.2,因此公式中:

Zα/2+Zβ=Z0.05+Z0.2=1.6449+0.84=2.4849

可以定为固定值。

d即为对照组历史数据的月均值与提升率的乘积:

提升率detection left%”是需要用户在页面中录入的部分,比如:新方案预期指标提升率为2%,则提升率detection left%=2%。

“历史月均值mean”是对应观测指标在过去一个月的数据均值。

例如:

“XX提交”按钮由红色变为橙色,统计的指标是点击UV转化率UV_rate,测试时间是20200801~20200814,则计算“XX提交”按钮的历史月均值mean(UV_rate)为下面数据的均值avg(UV_rate):

由此,可以计算出公式中的d

注:UV、PV等绝对值的比较需要先转化成rate值进行计算。

最小样本量计算中的σ计算逻辑与d类似,同样是计算历史一个月的指标方差值,上面案例中:

σ=σ(UV_rate)

在比率方差运算时,对应的计算公式为:

σ(UV_rate)=P(1-P)

其中,P为统计值UV_rate的均值,即:

avg(UV_rate)

所以上面公式可以调整为:

注:比率的方差计算方式与绝对值的方差计算:

逻辑一致,得到两值差异不大,只是计算公式不同而已。

因此比率类最小样本量公式可变为:

增长黑客AB-Test系统(四)——AB-Test 最小样本量_第3张图片

到此,可确定AB测试最小样本量的计算公式。

注:此处的计算需要对统计学中的统计功效有所了解,阅读有阻力可以补充一下“统计功效”的计算方法。

最小样本量流程图

最小样本量的作用是确定试验是否有效,后管配置好对应的客群信息、开放流量占比、提升率等信息后,后台需要进行“最小样本量”的计算,并进行相关判断,如下图:

增长黑客AB-Test系统(四)——AB-Test 最小样本量_第4张图片

步骤:

   1)用户在后管配置页面中输入预期的提升率x%、监控的数据指标_rate、对应的客群范围以及开多少流量;    

   2)获取到试验前30天数据,计算对应的数据指标_rate(如上例的UV_rate),并计算出30个数值的avg(数值指标_rate);

   3)后台获取到提升率x%之后,将x%和avg(数值指标_rate)带入到上面最小样本量计算公式中,确定对应的最小样本量n。

   4)判断圈定出来的客群流量*m%最小样本量n的大小,如果客群流量*m% < 最小样本量n则提示样本量不足,如果客群流量*m% >= 最小样本量n则进行分桶分流操作。

   5)基于n确定各个试验组的样本量为:(n(A) = n(A) = n(B)) >= n/3

当分流出的单组样本量大于n/3时,试验结果才有可信度,否则试验结果不可信。此处我们做了一个假设,即在计算最小样本量时假设样本量即活跃量,实际试验中并非如此,所以实际试验中,单组样本数据量宜大于n/3。

试验有效天数

确定好最小样本量并实现分流、试验上线之后,需要进行数据的有效天数需要进行相应计算:

试验的有效天数即为试验进行多少天能达到流量的最小样本量。当流量达到最小样本量时,查看数据是否存在显著性差异,如果不存在显著性差异则继续进行试验,直到达到最大要求天数,如果试验仍然没有达到显著性,则确定两组试验不显著,即没有明显差异。

计算过程如图:

增长黑客AB-Test系统(四)——AB-Test 最小样本量_第5张图片

计算说明:

   1)假设有m%的流量参与试验,则第一天时选择对应的流量m%,A-A-B三组中各自的流量为m/3。

   2)第二天(t+1天数据)时,依然选择m%的流量,这些流量包含两部分:其一为已经打标的客户第二天重新访问APP的数量,数量为:a12,a22,b12;其二为需要新划分的流量ax1,ax2,bx1,得到流量划分的计算公式为:

计算打标的客户是否已经满足最小样本量n_per:

增长黑客AB-Test系统(四)——AB-Test 最小样本量_第6张图片

同时计算当前时间下A-A-B三组试验的显著性

   3)试验期间的每一天都进行如上计算,得到每天的访问量以及显著性。

   4)判断试验天数是否到达试验最小天数(7天):

   如果到达试验最小天数且试验样本量>=最小样本量n_per,则观察试验是否有显著性,如果A-A试验没有显著性且A-B存在显著性(B>A),则表示试验成功,否则试验失败。

   如果到达试验最小天数且试验样本量<最小样本量n_per,则继续进行试验;

   5)判断试验天数是否到达试验最大天数(t天):

   如果到达试验最大天数且试验样本量>=最小样本量n_per,则观察显著性;

   如果到达试验最大天数且试验样本量<最小样本量n_per,则终止试验并标注试验失败。

逻辑流程图为:       

增长黑客AB-Test系统(四)——AB-Test 最小样本量_第7张图片

    通过每天的数据计算可以做出如上判断,进而确定试验进行的有效天数并计算出显著性水平。

AB-testing工程化

经过上面的描述,我们可以通过下面的两张图来了解一下在工程方面,AB测试系统是什么样子的:

增长黑客AB-Test系统(四)——AB-Test 最小样本量_第8张图片

注释:

   1)根据需求设计好AB试验之后,在AB测试系统配置好对应的策略;

   2)将这一策略固化成文件,并推送到APP的AB系统SDK中;

   3)客户每次访问APP,先扫描AB系统SDK中的策略文件,根据策略文件给客户打标,分配对应的A、B版本;

   4)APP中根据策略呈现A、B版本的试验内容,并监控客户的操作行为以及订单行为;

   5)这一行为被记录并上报到大数据环境中;

   6)每天在大数据中进行显著性计算和最小样本量的处理,得到对应的显著性结果。

   我们再来看一个详细的系统数据,如下图:

增长黑客AB-Test系统(四)——AB-Test 最小样本量_第9张图片

目前为止,AB系统已经介绍完成了,AB的结构深不可测,其中也需要经常的更新和讨论,欢迎大家关注沟通~

◆ ◆ ◆  ◆ 

麟哥新书已经在京东上架了,我写了本书:《拿下Offer-数据分析师求职面试指南》,目前京东正在举行100-50活动,大家可以用相当于原价5折的预购价格购买,还是非常划算的:

点击下方小程序即可进入购买页面:


数据森麟公众号的交流群已经建立,许多小伙伴已经加入其中,感谢大家的支持。大家可以在群里交流关于数据分析&数据挖掘的相关内容,还没有加入的小伙伴可以扫描下方管理员二维码,进群前一定要关注公众号奥,关注后让管理员帮忙拉进群,期待大家的加入。

管理员二维码:

猜你喜欢

 麟哥拼了!!!亲自出镜推荐自己新书《数据分析师求职面试指南》

 厉害了!麟哥新书登顶京东销量排行榜!

 笑死人不偿命的知乎沙雕问题排行榜

 用Python扒出B站那些“惊为天人”的阿婆主!

● 你相信逛B站也能学编程吗

点击阅读原文即可参与京东100-50购书活动

你可能感兴趣的:(数据分析,数据可视化,数据挖掘,python,人工智能)