A/B Testing的简要知识
A/B testing主要用来检测网站或者APP的两个版本中哪一个更好,它的中心思想是把流量一分为二,一份用作experiment group,访问新的版本,另一份用作control group,访问旧的版本。
假设现在有一个网站,要测试是否增大网页Register的字体,可以增加注册用户。
进行AB testing,首先要选择Unit of Diversion, 就是把实验分成两组的标准。在这个实验中,可以选择unique cookies to view the web page. 然后要选定Invariant metrics, 选择那些在两个版本之间不会变化,而是一致的变量。我们这个简单的例子中,可以选择网页的访问量,the unique cookies to view the web page,跟Unit of Diversion相同。然后选择Variant metrics, 要选那些可以衡量版本变化带来不同实现目标的变量,比如click-through-rate, the number of unique cookies to click register divided by the unique cookies to view the page; 比如gross conversion, the number of unique cookies to complete registration divided by the unique cookies to view the page.
选好Invariant 和Variant metrics后,就可以开始设计怎么开展实验。要选择在哪里进行,只是针对某一个国家,或者全世界;要决定实验周期,不能太久,因为用户可能渐渐适应改变,变得不再有效不再敏感,也不能太短,这样没有足够多用户接触到改变。根据情况,一般一个月就足够了。
测试过程中统计每天访问网页的cookies数目,点击了register的cookies数,以及成功完成注册的cookies. 在得到这些数据后,就是用统计学知识做假设检验。首先需要对invariant metrics做sanity check, 通过以后要进行effect size test和sign test. Sanity check的目的是要确保两组试验的网页访问量(unique cookies to view web page)差别可以忽略。
假设实验组和对照组的invariant metrics分别是X和Y。
那么标准误差standard error为:

根据置信水平significant level 95%, 查到Z值为1.96,( http://www.utdallas.edu/dept/abp/zscoretable.pdf )
那么误差区间margin of error为:

Invariant metric实际差别为:

如果误差区间m小于实际差别,通过invariant check的sanity check, 否则不可以进行下一步检测。
Effect size test实际上是假设检验,

假设X_exp和N_exp为是实验组的gross conversion和 number of cookies, X_cont和N_cont为是对照组的gross conversion和 number of cookies,那么概率

如果d的绝对值大于1.96乘以SE_pool,那么拒绝null hypothesis, 两个版本的网页是有差别的,置信水平为95%。
Sign test更进一步,检测每一天是否新版本新注册用户比旧版本多。可以用graphpad网站( http://graphpad.com/quickcalcs/binomial1.cfm )来进行测试,number of ‘success’是新版本比旧版本注册用户多的天数, Number of trials是总共天数,probability是0.5, 得到的p value必须要小于alpha, 在这个例子中,等于1-95%=0.05
这几个步骤是进行AB Testing的基础,还有很多重要方面需要注意,比如
在试验前,统计每个metrics的值,得到baseline information,比如每天的cookies, CTR, Gross conversion等
计算每个invariant metrics的方差,如果invariant metrics的unit of analysis不是unit of diversion,选用经验方差empirical variance
计算sample size样本大小,结合baseline information, 来精确计算实验的周期 ( http://www.evanmiller.org/ab-testing/sample-size.html )
如果可以其中一个metric假设检验成功就可以下结论,那么会用到Bonferroni correction
A/B Testing的简要知识的更多相关文章
- 【linux】-Makefile简要知识+一个通用Makefile
目录 Makefile Makefile规则与示例 为什么需要Makefile Makefile样式 先介绍Makefile的两个函数 完善Makefile 通用Makefile的使用 通用的Make ...
- Cordova webapp实战开发:(3)后面可能会学到的东西
在<Cordova webapp实战开发:(2)认识一下Cordova>中我们了解了Cordova和Phonegap的关系,并简要介绍了一下它的架构,以及多平台性,并给大家留了一些作业.我 ...
- Scala函数式编程(三) scala集合和函数
前情提要: scala函数式编程(二) scala基础语法介绍 scala函数式编程(二) scala基础语法介绍 前面已经稍微介绍了scala的常用语法以及面向对象的一些简要知识,这次是补充上一章的 ...
- 《自动化平台测试开发-Python测试开发实战》新书出版了
首先 第一本书,当初在百度阅读初步写了个电子版,刚一上线不久即收到了数百位读者朋友阅读收藏购买,于是顺利成章就出版了纸质书. <软件自动化测试开发>认真看过的读者应该都知道,介绍的主要是自 ...
- 201771010128王玉兰实验一软件工程准备——<阅读《构建之法——现代软件工程》初步了解软件工程>
|||||||||||||| |:--|:--| |项目|内容| |软件工程|https://www.cnblogs.com/nwnu-daizh/| |作业要求在博客里|https://www.cn ...
- 进程调度函数scheduler_tick()的触发原理:周期PERIODIC定时器
参考文章: https://www.jb51.net/article/133579.htm https://blog.csdn.net/flaoter/article/details/77509553 ...
- Testing - 软件测试知识梳理 - 相关词汇
测试策略 描述测试工程的总体方法和目标:根据测试需求,描述在什么测试阶,依据什么测试要素和目标,进行什么种类的测试,使用什么样的测试方法和工具. 测试策略的制定主要包含如下内容: 确定测试过程要使用的 ...
- Testing - 软件测试知识梳理 - 探索性测试
定义 探索性测试(Exploratory Testing)是一种自由的软件测试风格,强调测试人员同时展开测试学习,测试设计,测试执行和测试结果评估等活动,以持续优化测试工作. 其特征有:即兴发挥,快速 ...
- Testing - 软件测试知识汇总
软件测试知识梳理 基础概念 : http://www.cnblogs.com/anliven/p/6070000.html 测试分类 : http://www.cnblogs.com/anliven/ ...
随机推荐
- C#异步编程(一)
异步编程简介 前言 本人学习.Net两年有余,是第一次写博客,虽然写的很认真,当毕竟是第一次,肯定会有很多不足之处, 希望大家照顾照顾新人,有错误之处可以指出来,我会虚心接受的. 何谓异步 与同步相对 ...
- 通俗易懂的来讲讲DOM
DOM是所有前端开发每天打交道的东西,但是随着jQuery等库的出现,大大简化了DOM操作,导致大家慢慢的“遗忘”了它的本来面貌.不过,要想深入学习前端知识,对DOM的了解是不可或缺的,所以本文力图系 ...
- ABP文档 - 导航
文档目录 本节内容: 创建菜单 注册导航供应器 显示菜单 每个web应用都有一些菜单用来在页面/屏幕之间导航,ABP提供了一个通用的基础框架创建并显示菜单给用户. 创建菜单 一个应用可能由不同模块组成 ...
- json与JavaScript对象互换
1,json字符串转化为JavaScript对象: 方法:JSON.parse(string) eg:var account = '{"name":"jaytan&quo ...
- jQuery动画-圣诞节礼物
▓▓▓▓▓▓ 大致介绍 下午看到了一个送圣诞礼物的小动画,正好要快到圣诞节了,就动手模仿并改进了一些小问题 原地址:花式轮播----圣诞礼物传送 思路:动画中一共有五个礼物,他们平均分布在屏幕中,设置 ...
- iOS逆向工程之Reveal工具的安装、配置与使用
今天博客内容比较简单,不过还是蛮重要的.经常有小伙伴在QQ上私下问我,说博客中是如何使用Reveal查看AppStore中下载应用的UI层级的,那么就在今天这篇博客中作为一个主题来统一的介绍一下吧.虽 ...
- zookeeper源码分析之四服务端(单机)处理请求流程
上文: zookeeper源码分析之一服务端启动过程 中,我们介绍了zookeeper服务器的启动过程,其中单机是ZookeeperServer启动,集群使用QuorumPeer启动,那么这次我们分析 ...
- 写出易调试的SQL
h4 { background: #698B22 !important; color: #FFFFFF; font-family: "微软雅黑", "宋体", ...
- C#文件安全管理解析
在实际的项目开发中,我们经常需要使用到文件的I/O操作,主要包含对文件的增改删查等操作,这些基本的操作我们都是很熟悉,但是较少的人去考虑文件的安全和操作的管理等方面,例如文件的访问权限管理,文件数据的 ...
- java8中lambda表达式的应用,以及一些泛型相关
语法部分就不写了,我们直接抛出一个实际问题,看看java8的这些新特性究竟能给我们带来哪些便利 顺带用到一些泛型编程,一切都是为了简化代码 场景: 一个数据类,用于记录职工信息 public clas ...