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

Z检验

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

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

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

statsmodels

Python有一个统计工具statsmodels,其中有一个NormalIndPower工具可以用来计算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计算器,比如说这就是一个Sample Size Calculator。其中,Conversion Rate是指优化目标现在的值,例如现在的CTR,其他的metrics则像我们之前提到的那样。

计算A/B Test需要的样本量相关推荐

  1. 假设检验中两类错误及最小样本量计算

    ​ 脚注: 以下内容均为个人总结,便于日后查阅.如有不对地方,还请及时指正. 案例:   在互联网等行业中,大家会对产品.排序模型.机制策略等模块不断迭代/创新,来提升整个App的用户体验.那么,怎样 ...

  2. python 假设检验 样本量太大_【Python】统计科学系列之最小样本量计算

    首页 专栏 python 文章详情 0 统计科学系列之最小样本量计算 张俊红发布于 35 分钟前 这一篇我们讲讲统计中的最小样本量计算.大家先想想为什么叫最小样本量,而不是最大或者直接叫样本量计算呢? ...

  3. R语言 基础统计学之样本量计算

    #R语言 基础统计学之样本量计算 以下介绍基础统计学关于样本量计算的问题,主要解决实际问题中在已知一些统计特征下,计算所必要的样本量,共有三种方式:总体方差已知时,总体方差未知时 ,估计比例为P时的三 ...

  4. 很全面的样本量计算软件整理

    经常很多人问起样本量计算的问题,实际上,对于样本量,我们很多时候,都是呈现给 审稿人/评审人 看看而已.并不是说样本量不重要,非常重要!但是,并不是"计算"一词就可以涵盖的. 样本 ...

  5. stata中计算公式命令_#stata中哪个命令和stats命令等价#stata中计算命令

    f的临界值在stata中怎么输入命令计算 stata怎么用命令计算有几个变量 dis `c(k)'可以看到数据中含有的变量的个数. 不过这个命令会把"股票代码"和"日期& ...

  6. 3种场景下的相关性计算方式,热力图优化展示

    导语:相关系数衡量的是两个变量同时变化的程度和方向,比如身高和体重,体重一般随着身高增加而增加,在很多情况下,我们处理的对象都是连续变量与连续变量之间的关系,但是还有离散变量与离散变量,连续变量与离散 ...

  7. 周志华教授:关于深度学习的一点思考!

    周志华,毕业于南京大学,欧洲科学院外籍院士,国家杰出青年基金获得者,现任南京大学人工智能学院院长.南京大学计算机软件新技术国家重点实验室常务副主任.机器学习与数据挖掘研究所 (LAMDA)所长.人工智 ...

  8. 周志华教授:关于深度学习的一点思考

      视学算法报道   来源:专知 [新智元导读]什么是深度学习?深度神经网络为什么要「深」?它成功背后的关键因素是什么?深度学习只能是深度神经网络吗?南京大学人工智能学院院长.计算机系主任周志华教授对 ...

  9. QIIME 2教程. 04人体微生物组分析Moving Pictures(2020.11)

    文章目录 QIIME 2用户文档. 4人体各部位微生物组 本节视频视频教程 启动QIIME2运行环境 样本元数据 下载和导入数据 拆分样品 序列质控和生成特征表 方法1. DADA2 方法2. Deb ...

最新文章

  1. STM8S103 解决Rom空间不足 Map文件分析
  2. quick-cocos2dx在eclipse下的lua调试
  3. 软考可以一次报两门吗
  4. kotlin-unresolved reference daclaredFunctions
  5. pycharm显示全部数据_PyCharm第一次安装及使用教程
  6. springcloud工作笔记099---springboot集成netty,进行线程管理,socket通讯
  7. TLE5012B磁编码器原理及优点,径向充磁磁铁的安装。AS5047、AS5048、AS5600、TLE5012、MA730
  8. 【转】简单易懂的Android ROM定制与修改教程
  9. 17. Contoller(2)
  10. Flutter之Binding简单梳理
  11. win10怎么把c盘锁住_Win10 C盘怎么瘦身?史上最强C盘清理方案
  12. C语言判断完数(完整版)
  13. 苹果手机投屏到pc电脑
  14. 清华大学施一公,刚刚发现他的科学网的博客,好博啊
  15. rest api是什么_什么是REST API?
  16. Mitmproxy 新版配置上游(二级)代理
  17. 学习JS的这些日子——十二月总结
  18. 云计算 IaaS PaaS SaaS 基础概念和区别终于搞清楚了
  19. 基于sinc的音频重采样(二):实现
  20. 枚举,如何定义一个枚举,枚举的本质

热门文章

  1. 139. 单词拆分 ——【Leetcode每日一题】
  2. Java继承的概念和实现
  3. 建筑CAD制图:如何按各专业要求转条件图?
  4. 手部追踪、虚拟键盘、脑机接口……facebook的人机交互技术 | Mixlab 技术前沿
  5. Vue.js实战——封装长按能量条火箭发射动画组件_17
  6. python 空字符串的布尔值_python布尔值
  7. 神码ai人工智能写作机器人_真正的人工智能和机器学习的未来
  8. Echarts实时更新数据
  9. 中彩体彩22选5彩票软件 襄樊石开软件公司
  10. Android CoordinatorLayout 自定义Behavior 高仿美团商家详情界面 实现页面内容复杂联动效果