ABTess之AA 测试
文章目录
- 一、什么是A/A测试
- 二、为什么A/A测试是重要的
- 三、A/A测试的种类
- 四、A/A测试的问题
- 五、Q&A
一、什么是A/A测试
A/A测试是用A/B测试的方法和工具来检验两个完全一样的版本。一般来说,它被用来检测试验平台或工具的结果是否是统计上的无差异。也被用来为A/B测试的变化做基线参考。
二、为什么A/A测试是重要的
- 有时在进行A/B测试之前,我们可能会进行一段时间的A/A测试,来观察两个一样的实验组对应指标的变化,把这个变化作为A/B测试的基线(或者理解为AB平台或工具的精确度)。如果A/B测试产生的变化和A/A测试产生的变化相比,结果非常接近,那么这个变化很可能是随机误差。
- 我们也会用A/A测试来确保A/B实验平台的有效性和准确性。比如在当前的样本量下,看分组是否均匀;实验平台或工具是否能认为两个分组在统计上无差异。
三、A/A测试的种类
A/A – 50/50划分:
最典型的A/A实验划分,优点是简单直接,缺点是会使实验时间延长,适合样本量不是非常大,但是时间相对充裕的情况。A/B/A - 1/3划分:
融合A/B和A/A的实验划分,优点是充分利用实验时间,实验时间足够长往往能得到更准确的实验结论。缺点是把实验流量划分为了3个部分,如果样本量不够大,会是实验的功效降低。适合样本量足够大,但是时间相对较紧的情况。A/A/B/B – 25%划分:
这种划分是在A/B/A的基础上又进行了一次划分,可以观测B组的变化差异。实际使用较少,虽然B组也有了B/B实验,但是实际上会使实验组划分过细,导致每个组的样本量都不够大。
四、A/A测试的问题
在实验时间紧张的情况下,A/A测试存在的问题就是会占用一定的实验时间。A/B实验常见的一个问题就是结束的太早,有的指标会在一开始上线时有较好的反应,但是在一定的时间后又会渐渐降低(新奇效应),甚至不如原始版本。所以A/A所占用的实验时间产生的收益,和用足够时间进行A/B测试产生的收益是实验设计需要权衡的地方。
五、Q&A
Q1:既然AA测试两个实验组是完全一样的,为什么实验得到的结果不是完全一致的?
A1: 即使是完全相同的两个版本,也有可能因为分组中不同的用户产生不同的行为,或者其他一些随机因素,产生不一样的指标结果,这个结果只有在很大的样本量时,才会趋近于一致。可以类比为即使是一个均匀的硬币,在一定次数的抛硬币重复实验中,硬币的正反次数也不是绝对一样,只在实验次数到达一定数量时趋近于一致。
Q2:什么是统计上无差异?
A2:通俗的讲,统计上无差异是指,两个实验组的结果可能有一定的差别,但是这种差别程度,不足以认定两个实验组一定有差异。
Q3:根据P-value可以判断这是一个成功的AA测试吗?
A3:不一定. 如果P-value > 0.05, 可能有两种原因: AA组之间差异不显著; 样本量不够不足以显示差异. 前者是我们期望的, 但后者则不是. 所以, 不能仅根据P-value来判定AA两组是否均衡
Q4:一定要AA两组指标均衡, 才能开始做AB实验吗?
A4:不是. 由于随机性的问题, AA两组之间不可能绝对均衡, 而绝对差异随场景不同而不同. 即使AA实验中指标不均衡, 也可以开始AB, 通过比较AA之间的差异与AB之间的差异, 来判断AB之间是否有明显的差别. 特别地, 当你过分追求AA之间无差异时, 也会导致AB之间的差异变得更小
Q5:AA实验一般要做多久?
A5:最好与AB实验的周期相同, 比如说两周. 如果时间不够, 一般是通过回溯历史数据的方式来做AA实验.
ABTess之AA 测试相关推荐
- 数据分析AB测试实战项目
本文是<数据蛙三个月强化课>的第四篇总结教程,如果想要了解数据蛙社群,可以阅读给DataFrog社群同学的学习建议.温馨提示:如果您已经熟悉数据分析指标,大可不必再看这篇文章,或是只挑选部 ...
- 数据科学AB测试(说人话系列)
数据科学AB测试(说人话系列) 什么是AB测试 AB测试的具体步骤 什么是AB测试 AB测试可以让个人.团队和公司根据用户的行为不断地改善用户的体验.比如某某互联网公司电商平台希望提高某一活动的转化率 ...
- 多场景业务实战-AB测试实战(数据分析干货!!!!!)
AB测试实战 学习目标 掌握如何设计AB测试 AB测试效果如何解读 掌握如何进行实验设计与效果计算 1.AB测试介绍 很多网站/APP的首页都会挂一张头图(Banner),用来展示重要信息,头图是否吸 ...
- php正则替换%3cbr%3e_php利用正则替换过滤掉js(script)代码
利用php中的preg_replace正则匹配函数过滤掉网页中的js代码,preg_replace()中的第四个参数中表示替换的次数,默认是-1,表示替换全部:如果只想替换2次,可以写为 preg_r ...
- HashMap的遍历
Map<String,String> mapList=new HashMap<String, String>(); mapList.put("AA", &q ...
- 求组合数的算法 java,求一个整数的组合数算法(java)
开始需求: 产生一堆数字. 然后我输入一值,这个值等于这些数中的一个,或是任意多个数的和.但只能是其中一种情况. 比如我输入8.这些数里面,可以直接有8. 也可以是1+2+5 的和,也可以是 1+7 ...
- vc++ 关于 指针操作
string str="abcdefg";//***测试一char * aa=new char[20];memset(aa,0,20);memcpy(aa,&str[0], ...
- 文本光标,高亮选中一些出来
document.body.οnmοuseup=function(){if(window.getSelection){if(window.getSelection().toString()!==&qu ...
- 面向切面编程--AOP(二)
转自:http://www.cnblogs.com/qicosmos/p/3154174.html (原创)c++11改进我们的模式之改进代理模式,实现通用的AOP框架 c++11 boost技术交流 ...
- 移动互联网+智能运营体系搭建=你家有金矿啊!
每个企业都有许多的数据,但能否将数据转化成商业价值,是企业非常关心的问题.阿里巴巴曾自嘲是一家坐在数据的金矿上啃着馒头的企业,前几年集团积累了很多的数据,但这些数据并没有真正应用起来,受限于几个原因, ...
最新文章
- 5G时代下,AI赋能行业的思考
- 量子信息之父辞世,开山论文写完14年才被发表,晚年去当建筑工人
- 基于malloc与free函数的实现代码及分析
- Hystrix在网关Zuul使用中遇到问题
- LeetCode 85. 最大矩形(DP/单调递增栈,难)
- web中的classpath 和 classpath*
- js中getBoundingClientRect的作用及兼容方案
- Linux 根文件系统目录结构与功能,4.Linux根文件系统和目录结构及bash特性
- mysql 覆盖索引 简书_mysql覆盖索引与回表
- python 字典 列表 元祖_Python基础之列表、元祖、字典、集合,你都知道吗?附视频...
- python中的zip函数详解_python中的 zip函数详解
- (素材源码)猫猫学IOS(十)UI之_NSTimer_ios计时器
- terminal mysql_MySQL的终端(Terminal)管理数据库、数据表、数据基本操作
- 谈谈优化JDBC数据库编程(转)
- catia二次开发:检查文件类型 检查部件类型 产品名称 通过交互选择约束两个零件轴系重合 添加自定义属性,MasterShapeRepresentation
- 从零基础到高级软件测试工程师学习路线规划
- ETF基金定投策略回测分析
- 蓝凌OA SSRF+JNDI远程命令执行
- raid5是计算机的什么知识,关于raid5的知识
- 托疫情的“福”,和儿子一起过了个暑假