3分钟,看懂多版本ABtest怎么做

简介: 之前分享了ABtest的基本原理,有小伙伴问:那如果我不止AB两个版本,而是有ABC三个版本做测试,还能用ABtest方法吗?当然能用!只是使用的统计学方法换成了:方差分析,今天简单跟大家分享一下。

一、多版本与AB两个版本的区别


如果只有AB两个版本比较,那么做假设检验的时候,原假设是:A版本均值/比例=B版本均值/比例。之后,只要我们能用测试结果推翻原假设,就能说明AB版本均值/比例不同,从而论证哪个版本更好。相应的统计量,也是依此设计的。


当有ABCDE……多个版本的时候,问题变得略复杂一些。因为很有可能这一堆版本里,有些有差异,有些没有。如果一个个测试,得对比n多次,费时费力。如何高效率的完成测试呢?


二、多版本测试基本思路


可以用两步骤方法:


第一步:先做方差分析,检验是否这几个版本的均值都是相等的。此时,原假设为:A版本=B版本=C版本=D版本……总之假设他们都是一样的。如果没有推翻该假设,则说明大家均值都一样,根本就不需要做第二步了。如果能推翻的话,再看其两两差距。


第二步:假设第一步检测已推翻原假设,则进行第二步检验。第二步可以用fisher LSD方法,对总体均值进行两两比较。


今天就先不啰嗦第二步检测了,我们先把第一步讲清楚。


三、方差分析是什么?


方差分析是用来检验多个版本(3个以上)对应的多组数据,是否存在均值差异的方法。方差分析的统计学原理略复杂,小伙伴们可以简单记忆为:用一个F统计量,衡量各组数据的组间差异与组内差异的比值。


当组间差异很大,组内差异很小的时候,则F统计量变得很大,说明这些样本肯定来自不同个体,从而不可能均值都相等,推翻原假设(如下图所示)


image.png


四、方差分析如何做


方差分析分为三步:


  • 第一步:清晰要对比的版本
  • 第二步:清晰要对比的数据指标
  • 第三步:收集不同版本的测试数据
  • 第四步:计算F统计量值,进行假设检验

看个简单的例子:产品给个ABC三个版本,测试不同用户每日留存时间。每个版本各单独抽6名随机用户进行测试,数据如下:


image.png


第一步:确认要参与对比的是ABC版本


  • 第二步:确认要比的指标是:三个版本下,用户每日留存时间


  • 第三步:筛选用户,发布版本,收集测试数据(这里说的轻松,实际上涉及相当多的开发工作,之后有机会再详细讲)


  • 第四步:进行计算。这种只考虑“版本”一个影响因素的实验,称为:单因素方差分析,用excel都能求解(如下图)


image.png


解出来数据如下图:



image.png


那么,可以认为这三组测试结果均值不同,能做第二步检验了。想偷懒的同学,可以直接认为版本C更差劲,先踢出去。


五、方差分析扩展


小伙伴们掌握了方差分析的思路以后,就能做很多对比。实际上,这种区分N个组别,测试版本/方法/属性对某个指标影响的做法,是数据实验的基本方法。通过不断地实验,能测试出新版本/新方法到底能起多大作用。


同时,方差分析也有进一步的应用。比如本例中,很有可能不同用户本身也有行为差异,需要从用户行为中剔除个人差异(比如让一个人体验三个版本)或者提前找到一些影响结果的因素(比如是否重度用户)然后将同类人组成一组。这些都是进一步设计实验要考虑的。


或者,影响结果的不止一个因素。用户用的久,除了版本影响外,还和运营动作,促销活动等有很大关系,因此可能需要对多个因素进行分析,此时又需要用到更复杂的方法。


总之,没有一个方法能包打天下,小伙伴们且听我慢慢道来吧。今天的分享就到这里了,喜欢的话,记得转发+点赞+在看三连,支持下小熊妹哦,谢谢大家。


相关文章
|
10天前
|
SQL 存储 关系型数据库
MySQL进阶突击系列(05)突击MVCC核心原理 | 左右护法ReadView视图和undoLog版本链强强联合
2024年小结:感谢阿里云开发者社区每月的分享交流活动,支持持续学习和进步。过去五个月投稿29篇,其中17篇获高分认可。本文详细介绍了MySQL InnoDB存储引擎的MVCC机制,包括数据版本链、readView视图及解决脏读、不可重复读、幻读问题的demo演示。
|
1月前
|
消息中间件 架构师 数据库
本地消息表事务:10Wqps 高并发分布式事务的 终极方案,大厂架构师的 必备方案
45岁资深架构师尼恩分享了一篇关于分布式事务的文章,详细解析了如何在10Wqps高并发场景下实现分布式事务。文章从传统单体架构到微服务架构下分布式事务的需求背景出发,介绍了Seata这一开源分布式事务解决方案及其AT和TCC两种模式。随后,文章深入探讨了经典ebay本地消息表方案,以及如何使用RocketMQ消息队列替代数据库表来提高性能和可靠性。尼恩还分享了如何结合延迟消息进行事务数据的定时对账,确保最终一致性。最后,尼恩强调了高端面试中需要准备“高大上”的答案,并提供了多个技术领域的深度学习资料,帮助读者提升技术水平,顺利通过面试。
本地消息表事务:10Wqps 高并发分布式事务的 终极方案,大厂架构师的 必备方案
|
消息中间件 运维 Dubbo
多版本并行开发测试解决方案
多版本并行开发测试解决方案
多版本并行开发测试解决方案
|
存储 SQL 安全
亲测体验关系型数据库事务的隔离级别
亲测体验关系型数据库事务的隔离级别
96 0
亲测体验关系型数据库事务的隔离级别
|
数据库 C# 数据安全/隐私保护
使用分布式框架WCF出现的BUG记录
使用分布式框架WCF出现的BUG记录
|
数据建模 索引
白话Elasticsearch57-数据建模之实现悲观锁并发控制的三种方式(未成功)
白话Elasticsearch57-数据建模之实现悲观锁并发控制的三种方式(未成功)
102 0
|
SQL 存储 NoSQL
「数据库架构」三分钟搞懂事务隔离级别和脏读
「数据库架构」三分钟搞懂事务隔离级别和脏读
|
存储 SQL 缓存
滴滴滴,请看MYSQL事务的四大特征(ACID)的实现原理:晓其原理而通其实现。
滴滴滴,请看MYSQL事务的四大特征(ACID)的实现原理:晓其原理而通其实现。
|
测试技术 开发工具 git
多人协作多版本开发冲突的正确解决姿势
多人协作多版本开发冲突的正确解决姿势
382 0
多人协作多版本开发冲突的正确解决姿势
|
SQL 存储 关系型数据库
Mysql数据库基础第五章:(一)事务
TCL:Transaction Control Language 事务控制语言