首页 > 其他分享 >AB实验相关流程

AB实验相关流程

时间:2024-05-09 15:11:12浏览次数:24  
标签:AB 假设 流程 最小 用户 指标 实验 样本量

本篇文章介绍的是一个完整AB测试流程应该怎么走。

 

AB测试流程有以下几个步骤:

一、选取实验指标

二、建立实验假设

三、选取实验单位

四、确定最小提升预期值

五、计算最小样本量

六、流量分割

七、确定实验时长

八、数据统计

九、得出结论

接下来就详细说明每个步骤。

一、选取实验指标

一个实验只能有一个核心指标,可以有多个观测指标。

核心指标是用于判断该实验是否显著,观测指标用于判断该实验对其余指标的影响。另外,可以设反向指标,以观测该实验是否会带来一些负面影响。

二、建立实验假设

针对实验要提升的核心指标,我们可以做出不同的假设,如何修改可能会提升指标。

然后就是建立零假设和备择假设。一般零假设是没有效果,备择假设是有效果。

三、选取实验单位

1)用户粒度

这个是最推荐的,即以一个用户的唯一标识来作为实验样本。好处是符合AB测试的分桶单位唯一性,不会造成一个实验单位处于两个分桶,造成的数据不置信

2)设备粒度

以一个设备标识为实验单位。相比用户粒度,如果一个用户有两个手机,那么也可能出现一个用户在两个分桶中的情况,所以也会造成数据不置信的情况。

3)行为粒度

以一次行为为实验单位,也就是用户某一次使用该功能,是实验桶,下一次使用可能就被切换为基线桶。会造成大量的用户处于不同的分桶。强烈不推荐这种方式。

四、确定最小提升预期值

做实验需要考虑ROI。如果开发成本很高,但是最终的提升只有0.01%,可能这个实验的收益提升并不能抵挡付出的成本。所以在实验之初我们就要考虑这个实验提升了多少算作是符合我们的预期。

五、计算试验所需最小样本量

该步骤是要避免流量浪费,高效利用流量,把可用流量分到其他试验。另外还要避免在统计功效不足的情况下给出错误结论。即避免实验过程种,流量使用过多或者过少的情况。

计算最小样本量的公式如下:

 

 

α和β分别是⼀类错误(拒真)和⼆类错误(取伪)的概率,通常取值为0.05和0.2

此时,

取值分别为1.98和0.84(这两个值是固定的,不需要计算)

所以以上公式还可以简化成:

 

 

Δ为两组数值均值之差,即为希望检测到的最小变化

σ为各组样本标准差

最小样本量计算工具:

https://www.evanmiller.org/ab-testing/sample-size.html

举例:

当前按钮的点击转化率为50%,希望最小预期提升10%,即从50%提升到55%。预估需要1600左右的样本量。

 

 

六、流量分割

1)互斥实验

互斥组中的所有实验都不会共享用户,如果一个用户/设备命中了实验A,就不会命中该互斥组中的其他实验。

2)正交实验

每个独立实验为一层,一份流量穿越每层实验时,都会随机打散再重组,保证每层流量数量相同。该方式可减少实验之间的影响,且可节省流量。

 

 

七、确定实验时长

实验时长由以下因素决定:

1)最小样本量

2)可接受的实验桶的大小比例

3)周活

实验时长=最小样本量/周活*实验桶比例

除此以外,还要考虑一些情况:例如用户可能在工作日和周末特征/行为不一样,所以最少跑够7天;用户一开始可能觉得新奇所以转化率高,后续转化率才会趋于真实。

八、数据统计

绝对值指标推荐用T检验,相对值指标推荐用Z检验。

需要统计的结果:diff、p值、置信区间

1)算P值

也就是算当零假设成立时,观测到样本数据出现的概率。统计学上,将5%作为一个小概率事件,所以一般用5%来对比计算出来的P值。当P值小于5%时,拒绝零假设,即两组指标不同;反过来,当P值大于5%时,接受零假设,两组指标相同。

2)算置信区间

一般情况下,我们都会用95%来作为置信水平。也就是说,当前数据的估计,有95%的区间包含了总体参数的真值。这么说可能比较绕,我们可以简单理解成 总体数据有95%的可能性在这个范围内。

我们计算两组指标的差异值,如果我们算出的差异值置信区间不含0,我们就拒绝零假设,认为两组指标不同;但是如果包含0,我们则要接受零假设,认为两组指标相同。

 

 

九、得出结论

1)实验结果显著是否要推全?

1.需要达到最⼩样本量,以及实验运⾏到计算的实验周期之后再去校验显著性。(例如跑了一天,结果为显著提升,但是其实实验的样本量没有达到最小样本量,那就还要接着跑一跑)

2.除了核⼼指标,还需要考虑平台的红线指标(例如核心指标显著提升,但是对其他指标有负面作用,那要考虑全局再决定)

2)实验结果不显著怎么办?

看MDE最⼩检测效应(实验能够统计的最⼩差异粒度)

需要看当前的mde是否⾜够⼩:

如果⼤于我们的最⼩提升预期值,则说明ab试验的灵敏度不够,可以延⻓试验时间,让更多的样本量进来

如果⼩于我们的最⼩提升预期值,那么说明实验组就是不显著,⽴刻停 ⽌试验 mde计算公式

 

 

以上,希望对各位有帮助,欢迎评论交流~

标签:AB,假设,流程,最小,用户,指标,实验,样本量
From: https://www.cnblogs.com/wenBlog/p/18182301

相关文章

  • 深度学习tf2.0版本报错——实验24
    深度学习:fromtensorflow.contrib.rnnimportLSTMStateTuple没有contrib模块_indylstm-CSDN博客把原先的tf引用换成蓝色框框,然后把红框的代码改成星星处代码——————针对LSTMCell报错 tf2.0里面缺少crf包是因为把这个contrib包删除了所以要下载一个新的库:安装之后就不会......
  • Hogervorst classAB结构
    classAB减少运放的噪声和漂移??轨到轨放大器的缺点是当共模输入电压变化时,其中由于共模输入范围存在重叠区,所以导致N管和P管同时导通时其跨导会变化,这会影响电路频率特性,因为一个好的频率补偿电路需要一个恒定的跨导,所以为了在共模输入范围内得到恒定的跨导提升在共模输入在较低电......
  • CompletableFuture学习总结
    CompletableFuture简介在Java8中,CompletableFuture提供了非常强大的Future的扩展功能,可以帮助我们简化异步编程的复杂性,并且提供了函数式编程的能力,可以通过回调的方式处理计算结果,也提供了转换和组合CompletableFuture的方法。Java中的异步计算异步计算很难推理。通常,我们......
  • TSINGSEE青犀视频边缘计算AI智能分析网关V4告警消息语音推送的配置流程
    TSINGSEE青犀视频边缘计算硬件智能分析网关V4内置了近40种AI算法模型,支持对接入的视频图像进行人、车、物、行为等实时检测分析,上报识别结果,并能进行语音告警播放。今天我们来分享一下如何配置和使用AI智能分析网关V4的语音推送。提前准备:以企业认证在腾讯云注册一个账号腾讯云......
  • linux网络-实验集合
    双网卡设置点击查看代码步骤1.虚拟机中增加网络适配器。步骤2.使用ifconfig-a显示所有网卡,查看第二块网卡名称为ens36。步骤3.编辑配置文件。(复制ens33的配置文件并改名为ens36,修改文件。) [root@localhost~]#cd/etc/sysconfig/network-scripts///切换......
  • el-table vxe-table 表格宽度拖拽
    <vxe-table   ref="table"   v-loading="listLoading"   :data="tableData"   border   stripe   :height="tableHeight"   :seq-config="{seqMethod}"   @resizable-change="res......
  • 用户交互、算术运算符、流程控制语句
    用户交互【一】程序与用户之间交互学用户交互的目的就是为了和程序之间交流【二】python中如何交互【1】输入input语法(1)弹出输入框input()(2)提示信息print("请输入用户名")input()(3)提示输入信息并且获取到输入的信息username=input("请输入用户名:》》》")print(u......
  • 实验报告7
    项目一解题思路核心代码#include<stdio.h>intmain(){ printf("******************\n");printf("06杨雪辉\n");printf("******************\n"); inta[10],i,sum=0,avg;printf("请输入10个分数:\n");for(i=0;i<10;i++){scan......
  • 机器学习包keras skiti-learn tensorflow pytorh yolov6 tensorboad seaborn numpy p
    这些是一些常用的Python库和框架,它们在机器学习、深度学习、数据科学和可视化等领域中被广泛使用。下面是每个库的简要介绍以及一个应用示例:Keras:Keras是一个高级神经网络API,可以运行在TensorFlow、MicrosoftCognitiveToolkit(CNTK)或Theano之上。它提供了简单而灵活......
  • c语言程序设计——实验报告七
    实验项目名称:实验7数组的基本使用实验项目类型:验证性实验日期:2024年4月22日一、实验目的1.熟练掌握数组的定义格式和数组元素的表示方法2.熟悉数组的初始化方法和赋值方法3.掌握字符数组存放字符串的方法和字符串函数的使用4.熟悉数组元素的操作,特别是输入与输出操作5.......