文章目录

  • 一、什么是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 测试相关推荐

  1. 数据分析AB测试实战项目

    本文是<数据蛙三个月强化课>的第四篇总结教程,如果想要了解数据蛙社群,可以阅读给DataFrog社群同学的学习建议.温馨提示:如果您已经熟悉数据分析指标,大可不必再看这篇文章,或是只挑选部 ...

  2. 数据科学AB测试(说人话系列)

    数据科学AB测试(说人话系列) 什么是AB测试 AB测试的具体步骤 什么是AB测试 AB测试可以让个人.团队和公司根据用户的行为不断地改善用户的体验.比如某某互联网公司电商平台希望提高某一活动的转化率 ...

  3. 多场景业务实战-AB测试实战(数据分析干货!!!!!)

    AB测试实战 学习目标 掌握如何设计AB测试 AB测试效果如何解读 掌握如何进行实验设计与效果计算 1.AB测试介绍 很多网站/APP的首页都会挂一张头图(Banner),用来展示重要信息,头图是否吸 ...

  4. php正则替换%3cbr%3e_php利用正则替换过滤掉js(script)代码

    利用php中的preg_replace正则匹配函数过滤掉网页中的js代码,preg_replace()中的第四个参数中表示替换的次数,默认是-1,表示替换全部:如果只想替换2次,可以写为 preg_r ...

  5. HashMap的遍历

    Map<String,String> mapList=new HashMap<String, String>(); mapList.put("AA", &q ...

  6. 求组合数的算法 java,求一个整数的组合数算法(java)

    开始需求: 产生一堆数字. 然后我输入一值,这个值等于这些数中的一个,或是任意多个数的和.但只能是其中一种情况. 比如我输入8.这些数里面,可以直接有8. 也可以是1+2+5 的和,也可以是 1+7 ...

  7. vc++ 关于 指针操作

    string str="abcdefg";//***测试一char * aa=new char[20];memset(aa,0,20);memcpy(aa,&str[0], ...

  8. 文本光标,高亮选中一些出来

    document.body.οnmοuseup=function(){if(window.getSelection){if(window.getSelection().toString()!==&qu ...

  9. 面向切面编程--AOP(二)

    转自:http://www.cnblogs.com/qicosmos/p/3154174.html (原创)c++11改进我们的模式之改进代理模式,实现通用的AOP框架 c++11 boost技术交流 ...

  10. 移动互联网+智能运营体系搭建=你家有金矿啊!

    每个企业都有许多的数据,但能否将数据转化成商业价值,是企业非常关心的问题.阿里巴巴曾自嘲是一家坐在数据的金矿上啃着馒头的企业,前几年集团积累了很多的数据,但这些数据并没有真正应用起来,受限于几个原因, ...

最新文章

  1. 5G时代下,AI赋能行业的思考
  2. 量子信息之父辞世,开山论文写完14年才被发表,晚年去当建筑工人
  3. 基于malloc与free函数的实现代码及分析
  4. Hystrix在网关Zuul使用中遇到问题
  5. LeetCode 85. 最大矩形(DP/单调递增栈,难)
  6. web中的classpath 和 classpath*
  7. js中getBoundingClientRect的作用及兼容方案
  8. Linux 根文件系统目录结构与功能,4.Linux根文件系统和目录结构及bash特性
  9. mysql 覆盖索引 简书_mysql覆盖索引与回表
  10. python 字典 列表 元祖_Python基础之列表、元祖、字典、集合,你都知道吗?附视频...
  11. python中的zip函数详解_python中的 zip函数详解
  12. (素材源码)猫猫学IOS(十)UI之_NSTimer_ios计时器
  13. terminal mysql_MySQL的终端(Terminal)管理数据库、数据表、数据基本操作
  14. 谈谈优化JDBC数据库编程(转)
  15. catia二次开发:检查文件类型 检查部件类型 产品名称 通过交互选择约束两个零件轴系重合 添加自定义属性,MasterShapeRepresentation
  16. 从零基础到高级软件测试工程师学习路线规划
  17. ETF基金定投策略回测分析
  18. 蓝凌OA SSRF+JNDI远程命令执行
  19. raid5是计算机的什么知识,关于raid5的知识
  20. 托疫情的“福”,和儿子一起过了个暑假

热门文章

  1. Spring Boot qq邮箱验证码注册和登录验证
  2. 注册vmvare账号验证码问题
  3. python中pop什么意思_python里pop是什么意思
  4. 成都拓嘉辰丰:拼多多商家是否可以代销
  5. python设置excel套打_你不一定知道这个用 Python 快速设置 Excel 表格边框的技巧
  6. ffmpeg gif拆分成多张jpg
  7. 数据不符合正态分布怎么处理呢
  8. java自身的rsa算法效率低下问题
  9. 揭秘微信身份证背后的高科技——人脸识别技术
  10. input输入框历史记录清除