AB实验相关流程

news/2024/10/2 16:15:31

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

 

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

一、选取实验指标

二、建立实验假设

三、选取实验单位

四、确定最小提升预期值

五、计算最小样本量

六、流量分割

七、确定实验时长

八、数据统计

九、得出结论

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

一、选取实验指标

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

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

二、建立实验假设

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

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

三、选取实验单位

1)用户粒度

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

2)设备粒度

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

3)行为粒度

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

四、确定最小提升预期值

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

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

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

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

 

 

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

此时,

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

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

 

 

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

σ为各组样本标准差

最小样本量计算工具:

举例:

当前按钮的点击转化率为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计算公式

 

 

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/29367.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

jenkins 拉取代码之后 自动执行jar包到部署服务器自动运行

原文地址: https://blog.csdn.net/xiuyuandashen/article/details/124490378

MindSpore反向传播配置关键字参数

继上一篇文章从Torch的两个Issue中找到一些类似的问题之后,可以发现深度学习框架对于自定义反向传播函数中的传参还是比较依赖于必备参数,而不是关键字参数,MindSpore深度学习框架也是如此。但是我们可以使用一些临时的解决方案,对此问题进行一定程度上的规避,只要能够自定…

AR精灵——风险分析和典型用户

风险分析典型用户 典型用户一名字:盛宇伟 年龄:28岁,收入:每月约8000元 代表的用户在市场上的比例和重要性:虽然使用AR精灵的付费用户比例较少,但他们对产品的热爱和忠诚度很高,他们的反馈和建议对产品的改进至关重要。 使用这个软件的典型场景:李梅在下班后回到家中,…

BOSHIDA AC/DC电源模块在通信与网络设备中的应用研究

BOSHIDA AC/DC电源模块在通信与网络设备中的应用研究 随着通信与网络技术的不断发展,通信与网络设备的使用不断增加。电源作为通信与网络设备的重要组成部分之一,在其稳定工作中起到至关重要的作用。AC/DC电源模块作为一种常用的电源转换器,广泛应用于通信与网络设备中。 一…

AWVS(acunetix) 安装详细教程

一、软件介绍Acunetix Web Vulnerability Scanner(简称AWVS)是一款知名的Web网络漏洞扫描工具,它通过网络爬虫测试你的网站安全,检测流行安全漏洞。AWVS官方网站是:http://www.acunetix.com/ 软件有window版本,linux版本,还可以docker安装 二、下载安装 官方下载地址: h…

国密算法SM3-java实现

aven依赖<dependency><groupId>org.bouncycastle</groupId><artifactId>bcprov-jdk15on</artifactId><version>1.56</version> </dependency> SM3Utilsimport org.bouncycastle.crypto.digests.SM3Digest; import org.bouncy…

time:Python的时间时钟处理

前言 time库运行访问多种类型的时钟,这些时钟用于不同的场景。本篇,将详细讲解time库的应用知识。 获取各种时钟 既然time库提供了多种类型的时钟。下面我们直接来获取这些时钟,对比其具体的用途。具体代码如下: import timeprint(time.monotonic()) print(time.monotonic_…

时间函数的简单理解和应用(time.h)

目录关于时间的函数及tm结构体描述对函数的简单理解操作函数功能实现 关于时间的函数及tm结构体描述time.h头文件中常用的几个函数描述如下:序号 函数&描述1 time_t time(time_t *tloc)最基础的函数,计算当前时间,并返回成 time_t(aka long int)格式而且返回值是从Epoch…