AB test样本量计算器的具体使用方法
在实际的AB test中一般都是直接使用一些AB test计算工具求解的,一方面是公式太复杂记不住,计算也比较耗费时间,另一方面在老板眼里计算器计算反而比手动计算更不容易出错
接下来以用的比较多的evanmiller计算器详细介绍一下其对应的用法
网址为:https://www.evanmiller.org/ab-testing/sample-size.html
主界面如下:

这个计算器有4个输入。有了这四个输入,就一定能够算出所需样本量,也就是中间的Sample Size输出的结果。这四个输入分别是:
∙
\bullet
∙ Statistical power
∙
\bullet
∙ Significance level
∙
\bullet
∙ Baseline rate
∙
\bullet
∙ Minimum detectable effect
其中Statistical power和Significance level一般都是80%和5%不用修改
接下来我们看看每个输入是什么意思。
Statistical Power和Significance Level
A/B实验的基础是假设检验。首先我们会给出两个假设:
原假设(Null hypothesis, 也叫
H
0
H_0
H0):我们希望通过实验结果推翻的假设。在ABtest中原假设可以表述为“红色按钮和绿色按钮的点击率一样”等。
备择假设(Alternative hypothesis, 也叫H_1):我们希望通过实验结果验证的假设。可以表述为“红色按钮和绿色按钮的点击率不同”等。
所以列出现实中所有的可能性和我们采取的结论,可以得到如下几种结果:
情况1:点击率实际无区别(H0正确),却认为有区别

由于判断错了,我们把这类错误叫做第一类错误(Type I error),我们把第一类错误出现的概率用
α
α
α表示。这个
α
α
α,就是Significance Level,中文称为显著性水平。
在商业背景下,第一类错误意味着新的产品对业务其实没有提升,我们却错误的认为有提升。这样的决定,不仅浪费了公司的资源,而且部分人得到了不应得的奖励。
在非商业背景下,第一类错误往往更加可怕。比如好人被判刑进监狱,健康人被误诊送去化疗。
所以,在做A/B测试的时候,我们希望第一类错误越低越好。一般商业实验中,我们把
α
α
α人为定一个上限,一般是5%。也就是说,在做实验的时候,我们都会保证第一类错误出现的概率永远不超过5%。
情况2:点击率无区别(H0正确),认为没区别。
这种就是判断正确,结论和实际一致

情况3:点击率有区别(H1正确),认为有区别。

这种也是判断正确,结论和实际一致。我们把做出这类正确判断的概率叫做Statistical Power。中文称为功效
要记得,我们的做实验的根本目的是为了检测出红色按钮和绿色按钮的点击率差别。所以如果power低,即使新产品真的有效果,通过实验也不能检测出来。所以一般Power要求在80%以上。
情况4:点击率有区别(H1正确),认为没区别。

这也是一个错误的判断。这类错误叫做第二类错误(Type II error),用
β
β
β表示。根据条件概率的定义,可以计算出
β
=
1
−
p
o
w
e
r
β = 1 - power
β=1−power。
所以根据惯例, Statistical Power设为5%,Significance Level设为80%,不需要修改

Baseline Rate
这个看的是在实验开始之前,对照组本身的表现情况。在我们的实验里,baseline就是红色按钮的历史点击率。从直观上我们可以这么理解baseline:
当baseline很大(接近1)或者很小(接近0)的时候,实验更容易检测出差别(power变大),如果保持power不变,那么所需要的样本数量变小。举个例子,假设红色按钮的点击率是0%。那么,哪怕绿色按钮只有一个用户点击,相对于对照组来说也是挺大的提升。所以即便是微小的变化,实验也会更容易地检测出来。
同理,当baseline居中(在0.5附近徘徊)的时候,实验的power会变小。
在工作中,这个参数完全是历史数据决定的。在我们的实验中,我们假定,实验开始之前的历史点击率是15%。所以Baseline Rate=15%
Minimum Detectable Effect
顾名思义,这个参数衡量了我们对实验的判断精确度的最低要求。
参数越大(比如10%),说明我们期望实验能够检测出10%的差别即可。检测这么大的差别当然比较容易(power变大),所以保持power不变的情况下,所需要的样本量会变小。
参数越小(比如1%),说明我们希望实验可以有能力检测出1%的细微差别。检测细微的差别当然更加困难(power变小),所以如果要保持power不变的话,需要的样本量会增加。
在工作中,这个参数的选定往往需要和业务方一起拍板或者根据业务情况确定。在我们的实验中,我们选定Minimum Detectable Effect=5%。这意味着,如果绿色按钮真的提高了点击率5个百分点以上,我们希望实验能够有足够把握检测出这个差别。如果低于5个百分点,我们会觉得这个差别对产品的改进意义不大(可能是因为点击率不是核心指标),能不能检测出来也就无所谓了。
最后还有一个Absolute与Relative的选项,分别代表绝对比例变化和相对比例变化,影响的也是对应的精度。当选择Baseline Rate为20%, Minimum Detectable Effect为5%时,对应的检测精度区间就是15-25%和19-21%.同样的,精度区间越大的所需样本量就越少。


AB test样本量计算器的具体使用方法的更多相关文章
- JS实现简易计算器的7种方法
先放图(好吧比较挫) 方法一:最容易版 <!DOCTYPE html> <html lang="zh-CN"> <head> <meta ...
- ab post 测试 http 和 webservice 接口方法及用例
1.ab测试简单http请求 ab -n30000 -c1000 "http://10.1.1.21:8080/" 2.ab 测试 http 接口 (POST) ab -n400 ...
- c# 委托delegate 编写计算器
.Net 中的委托类似于 C 或 C++ 中的函数指针.使用委托使程序员可以将方法引用封装在委托对象内.然后可以将该委托对象传递给可调用所引用方法的代码,而不必在编译时知道将调用哪个方法.与 C 或 ...
- WindowsForm 计算器
计算器 可以分一下类 数字键 + - * / % =和撤销 归零C最简单 下面看一下计算器具体的代码 using System; using System.Collections. ...
- 乐字节-Java8新特性-接口默认方法
总概 JAVA8 已经发布很久,而且毫无疑问,java8是自java5(2004年发布)之后的最重要的版本.其中包括语言.编译器.库.工具和JVM等诸多方面的新特性. Java8 新特性列表如下: 接 ...
- JavaScript几种数组去掉重复值的方法
数组去重复是一个常见的需求,我们暂时考虑同类型的数组去重复.主要是理清思路和考虑下性能.以下方法,网上基本都有,这里只是简单地总结一下. 思路: 遍历数组,一一比较,比较到相同的就删除后面的 遍历数组 ...
- oc6--类方法
// // main.m // 第一个OC类-类方法 #import <Foundation/Foundation.h> // 1.编写类的声明 @interface Iphone : N ...
- UML图标含义及记忆方法
记忆技巧: 箭头的一方为被动方(被调用者): 箭头的端点为主动方(调用者). 箭头为封闭三角形时,表示类间关系 箭头为半封闭尖括号时,表示类内关系.其中,虚线表示参数强制依赖关系,实线表示属性关系.一 ...
- [C++] 例题 2.7.1 用栈实现简易计算器
目录 前置技能 栈 (stack) 中缀表达式 (InfixExp) 与后缀表达式 (PostfixExp) 需求描述 概要设计 函数详细设计 中缀转后缀 infix_to_postfix(strin ...
- 18 JavaScript字符串方法
indexOf():从头到尾进行检索.返回指定文本在字符串最后一次出现的索引,否则返回-1.可以指定第二个参数作为起始位置. lastIndexOf:从尾到头进行检索.返回指定文本最后出现的位置,否则 ...
随机推荐
- 图像处理中的 Gaussina Blur 和 SIFT 算法
Gaussina Blur 高斯模糊 高斯模糊的数学定义 高斯模糊是通过 高斯核(Gaussian Kernel) 对图像进行卷积操作实现的. 二维高斯函数定义为 \[G(x, y, \sigma) ...
- STM8S003驱动TM1650偶发性故障
故障现象:STM8S003驱动TM1650数码管显示,偶发TM1650无法初始化造成数码管点不亮. 已经在程序中对TM1650初始化之前加上了延时,但是问题并未改善. 之前发生过类似情况,STM8S0 ...
- MySQL 中的回表是什么?
MySQL 中的回表 回表是 MySQL 查询优化中的一个概念,指的是在使用非聚簇索引查询时,无法直接从索引中获取所需的所有数据,需要通过非聚簇索引查找到主键值,然后再去聚簇索引中根据主键值获取完整数 ...
- Python 潮流周刊第3季总结,附电子书下载
我订阅了很多的周刊/Newsletter,但是发现它们都有一个共同的毛病:就是缺乏对往期内容的整理,它们很少会对内容数据作统计分析,更没有将内容整理成合集的习惯. 在自己开始连载周刊后,我就想别开生面 ...
- toRefs 与 toRef 的详解
一.引言在 Vue 3 的响应式系统里,toRefs 和 toRef 是两个实用的工具函数,它们在处理响应式数据时发挥着重要作用.合理运用这两个函数,可以让我们在操作响应式对象和数组时更加灵活,避免一 ...
- CSharp_core
C#核心篇 面向对象的概念 封装(类).继承,多态 类 基本概念 具有相同特征.相同行为.一类事物的抽象 类是对象的模板,可以通过类创建出对象 关键词class 类的申明 申明在nameplace语句 ...
- Sentinel——pull模式规则持久化
目录 pull模式规则持久化 定义数据源 定义SPI接口文件 测试 pull模式规则持久化 pull 模式的数据源(如本地文件.RDBMS 等)一般是可写入的.使用时需要在客户端注册数据源:将对应的读 ...
- 网络编程:非阻塞I/O
阻塞VS非阻塞 阻塞I/O:应用程序会被挂起,等待内核完成操作,实际上,内核所做的事情是将CPU时间切换给其他有需要的进程,网络应用程序在这种情况下是得不到CPU时间做该做的事情的. 非阻塞I/O:当 ...
- 一个大对象引起的血案,GC的踩坑实录
背景: 问题: 有个渠道支付服务,负责与所有支付相关服务进行交互,包括 渠道下单支付,渠道成功通知,渠道的对账等 服务4台机,平时跑的都很稳定,通过thrift进行对外提供服务,且平时并未发现访问 ...
- BD202404 110串
百度之星一场,t4 题目链接: 对于这种连续状态限制的字符串方案数,首先考虑dp, 首先定义好每个状态方便转移,0状态是结尾为0,1状态是结尾1个连续1,2状态是结尾两个连续1,有以下关系 if(s[ ...