博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
计算A/B Test需要的样本量
阅读量:5703 次
发布时间:2019-06-17

本文共 927 字,大约阅读时间需要 3 分钟。

A/B Test是我们做算法模型时离不开的助手,只有通过A/B Test的模型才能进入产品。但要使A/B Test达到应有的效果,我们必须严格地满足它的一些要求。这里有一篇关于A/B test的文章:写得很好,我只在这里补充一些细节。

Z检验

很多情况下,我们要用Z检验来判断A/B Test的有效性。Z检验,也称“U检验”,是为了检验在零假设情况下测试数据能否可以接近正态分布的一种统计测试。根据中心极限定理,在大样本条件下许多测验可以被贴合为正态分布。在不同的显著性水平上,Z检验有着同一个临界值,因此它比临界值标准不同学生t检验更简单易用。当实际标准差未知,而样本容量较小(小于等于30)时,学生T检验更加适用。

我们设H0假设为A、B没有显著性差异,H1假设为A、B有显著性差异。那我们就有几个重要的数据需要考虑:

  • 样本容量,即A、B的sample数量,一般我们会设n_a = n_b
  • power:拒绝H0后接受H1的概率,一般设为90%
  • 置信度:我们做出结论的可信度有多少,一般是0.95或者0.99
  • 显著性:1-置信度,也就是0.05或者0.01
  • 置信区间:目标值的置信区间,以高斯分布为例,是[v - \lambda\sigma, v + \lambda\sigma],其中\lambda与置信度有关

statsmodels

Python有一个统计工具statsmodels,其中有一个工具可以用来计算Z检验。

举一个简单的?,我们已知目前的CTR是0.7,我们想要提升10%即将CTR提升到0.77,A和B的sample size相同,那么我们计算需要的样本量的方法为:

effect_size = 0.07 / sqrt(0.7 * ( 1 -0.7))print NormalIndPower().solve_power(    effect_size=effect_size,    nobs1=None,    alpha=0.05,    power=0.9,    ratio=1.0,    alternative='larger') 复制代码

计算器

网上有很多sample size计算器,比如说这就是一个。其中,Conversion Rate是指优化目标现在的值,例如现在的CTR,其他的metrics则像我们之前提到的那样。

转载地址:http://awlrt.baihongyu.com/

你可能感兴趣的文章
Spring Cloud版——电影售票系统<六>使用 Spring Cloud Config 统一管理微服务配置
查看>>
Java not support java EE1.3
查看>>
iptables规则备份及恢复、firewalld九个zone,service的操作
查看>>
www.conf配置文件的参数详解
查看>>
如何实现邀请好友帮抢票功能?
查看>>
深圳联通特邀湖北籍企业参观公司总部大楼举行
查看>>
告警系统主脚本、告警系统配置文件、告警系统监控项目
查看>>
Python 和 PyCharm 在 windows10 环境的安装和设置
查看>>
B-树,B+树与B*树的优缺点比较
查看>>
C语言入门基础之数组——数学和编程的完美结合(图)
查看>>
《远见》的读后感作文1000字范文
查看>>
重置密码、单用户模式、救援模式
查看>>
LAMP环境搭建1-mysql5.5
查看>>
第三课 Linux目录及文件管理、用户组管理及bash重定向
查看>>
shell 脚本攻略--小试牛刀
查看>>
spring boot view override
查看>>
bzoj 2282: [Sdoi2011]消防
查看>>
我的友情链接
查看>>
centos5.9使用RPM包搭建lamp平台
查看>>
关于C#面向对象2
查看>>