浅谈A/B测试里常见的辛普森悖论,企业决策者必看
A/B测试背后有着高深的统计学知识,今天我们就来讲讲常见的辛普森悖论。
辛普森悖论 (Simpson’s Paradox) 是英国统计学家 E.H.辛普森 (E.H.Simpson) 于1951年提出的悖论,即在某个条件下的两组数据,在分别讨论时都会满足某种性质,可是一旦合并起来进行考虑,却可能导致相反的结论。
举一个辛普森悖论的简单小例子:一个大学里有商学院和法学院两个学院。这两个学院的女生都抱怨“男生录取率比女生录取率高”,有性别歧视。但是学校做总录取率统计,却发现总体来说女生录取率远远高于男生录取率!
商学院男生录取率75%高于女生录取率49%,法学院男生录取率10%也高于女生录取率5%,但是总计来说男生录取率只有21%,只有女生录取率42%的一半。

为什么两个学院都是男生录取率高于女生录取率,但是加起来男生录取率却不如女生录取率呢?主要是因为这两个学院男女比例很不一样,具体的统计学原理我们后面会详细分析。
这个诡异 (Counter intuitive) 的现象在现实生活中经常被忽略,毕竟只是一个统计学现象,一般情况下不会影响到我们的行动。但是对于使用科学的 A/B 测试进行试验的企业决策者来说,如果不了解辛普森悖论,就可能会错误的设计试验,盲目的解读试验结论,从而对决策产生不利影响。
我们用一个真实的医学 A/B 测试案例来说明这个问题。这是一个肾结石手术疗法的 A/B 测试结果:

看上去无论是对于大型结石还是小型结石,A 疗法都比 B 疗法的疗效好。但是总计而言,似乎 B 疗法比 A 疗法要好。
这个 A/B 测试的结论是有巨大问题的,无论是从细分结果看,还是从总计结果看,都无法真正判断哪个疗法好。
那么,问题出在哪里呢?这个 A/B 测试的两个试验组的病历选取有问题,都不具有足够的代表性。参与试验的医生人为的制造了两个本身不相似的试验组,因为医生似乎觉得病情较重的患者更适合 A 疗法,病情较轻的患者更适合 B 疗法,所以下意识的在随机分配患者的时候,让 A 组里面大结石病历要多,而 B 组里面小结石病历要多。
更重要的问题是,很有可能影响患者康复率的最重要因素并不是疗法的选择,而是病情的轻重!换句话说,A 疗法之所以看上去不如 B 疗法,主要是因为 A 组病人里重病患者多,并不是因为 A 组病人采用 A 疗法。
所以,这一组不成功的 A/B 测试,问题出在试验流量分割的不科学,主要是因为流量分割忽略了一个重要的“隐藏因素”,也就是病情轻重。正确的试验实施方案,两组试验患者里,重病患者的比例应该保持一致。

因为很多人容易忽略辛普森悖论,以至于有人可以专门利用这个方法来投机取巧。举个例子,比100场球赛以总胜率评价好坏。取巧的人专找高手挑战20场,胜1场,另外80场则找平手挑战,胜40场,结果胜率41%;认真的人则专挑高手挑战80场而胜8场,而剩下20场平手打个全胜,结果胜率为28%,比41%小很多。但仔细观察挑战对象,后者明显更有实力。
从这几个辛普森悖论的例子出发,联想到我们互联网产品运营的实践,一个非常常见的误判例子是这样的:拿1%用户跑了一个试验,发现试验版本购买率比对照版本高,就说试验版本更好,我们要发布试验版本。其实,可能只是我们的试验组里圈中了一些爱购买的用户而已。最后发布试验版本,反而可能降低用户体验,甚至可能造成用户留存和营收数额的下降。
那么,如何才能在 A/B 测试的设计、实施,以及分析的时候,规避辛普森悖论造成的各种大坑呢?
最重要的一点是,要得到科学可信的 A/B 测试试验结果,就必须合理的进行正确的流量分割,保证试验组和对照组里的用户特征是一致的,并且都具有代表性,可以代表总体用户特征。这个问题也一直是吆喝科技的 AppAdhoc A/B Testing 云服务的云端系统着力研究和解决的问题。
本文作者:吆喝科技创始人及CEO 王晔
授权转载自吆喝科技博客
浅谈A/B测试里常见的辛普森悖论,企业决策者必看的更多相关文章
- [原创]浅谈H5页面测试介绍
[原创]浅谈H5页面测试介绍 目前移动互联网非常火热,除了各种App,H5也是非常热,由于H5跨平台,且版本更新容易,做为引流或获客是非常好的一种简单低成本平台:今天来谈谈H5页面测试都要测试什么? ...
- 转:浅谈手机app测试注意点
现在我们测试时,开发会先在本地机上打好测试包,自己安装,轮完一轮,开发修改好后,再打一个包.以下是功能测试时需要注意的点: 1.登录 ●登录用户名和密码错误时,界面有提示信息 ●用户主动退出登录后,下 ...
- 浅谈java中源码常见的几个关键字(native,strictfp,transient,volatile)
最近看源码总发现一些没见过的关键字,今天就来整理一下native,strictfp,transient,volatile native 本地 native是与C++联合开发的时候用的!java自己开发 ...
- 浅谈扩展欧几里得[exgcd] By cellur925
关于扩展欧几里得从寒假时就很迷,抄题解过了同余方程,但是原理并不理解. 今天终于把坑填上了qwq. 由于本人太菜,不会用markdown,所以这篇总结是手写的(什么).(字丑不要嫌弃嘛) ****** ...
- 浅谈XML涉及到的常见技术(编写+解析)
xml:即可扩展标记语言,用于描述关系型数据,也经常用作软件的配置文件: 1,编写xml文档一般基于一个约束文档,该文档用于规定xml的书写规范,常用的约束技术有 (1)XML ...
- 浅谈MSF渗透测试
在渗透过程中,MSF漏洞利用神器是不可或缺的.更何况它是一个免费的.可下载的框架,通过它可以很容易地获取.开发并对计算机软件漏洞实施攻击.它本身附带数百个已知软件漏洞的专业级漏洞攻击工具.是信息收集. ...
- 浅谈TCP/IP(new 常见面试问题)
1. TCP/IP重传机制,如何保证消息读到一个完整内容再反序列化 2. TCP四次回收比三次握手多了什么操作,什么时候会进入Time_await状态 3.
- Intellij IDEA 的使用(创建项目、导入项目、同时部署多个项目、JRebel)等常见eclipse、myeclipse换idea必看
第一篇:Intellij IDEA 的使用 1.黑色主题 中文乱码修改 2.WEB项目的部署 以及自动编译 3.多项目的同时部署 4.相关插件提高工作效率 1.JRebel插件 实现热部署 2.Tas ...
- 浅谈Windows环境下DOS及MS-DOS以及常见一些命令的介绍
浅谈Windows环境下DOS及MS-DOS以及常见一些命令的介绍 前记 自己是搞编程的,首先我是一个菜鸟,接触计算机这么久了,感觉很多计算机方面的技术和知识朦朦胧胧.模模糊糊,貌似有些贻笑大方了:所 ...
随机推荐
- display:block 不起作用
jquery中$("#Main").css("display","none"); $("#Day").css('disp ...
- android user build serial console
在 init.rc 里有一段 on property:ro.debuggable=1 start console 当user debug时 ro.debuggable=0,console 不会被启动 ...
- Amazon RDS MySQL数据库还原时 log_bin_trust_function_creators 错误解决办法
使用了Amazon AWS EC2免费云空间,数据库实例采用Amazon RDS.原来在Windows Server上有一个存在大量数据的MySQL数据库.现在需要在Amazon RDS上还原这个My ...
- Restful.Data,现招募有为骚年,群号 338570336
光阴似箭,日月如梭,套用小学作文惯用的一句开场白来开始重新开始我的博客园生涯吧. 8年的风霜雪雨,不断的击打着我内心的哀伤,可我依旧坚挺的屹立在这里,是因为技术是我一直坚持的梦想. 追寻着先辈和高人的 ...
- 弹层,iframe页面
前台页面: <img src="chb/老玩家 好礼送.jpg" border="0" width="202" height=&quo ...
- .NET Core下使用gRpc公开服务(SSL/TLS)
一.前言 前一阵子关于.NET的各大公众号都发表了关于gRpc的消息,而随之而来的就是一波关于.NET Core下如何使用的教程,但是在这众多的教程中基本都是泛泛而谈,难以实际在实际环境中使用,而该篇 ...
- Java多线程12:ReentrantLock中的方法
公平锁与非公平锁 ReentrantLock有一个很大的特点,就是可以指定锁是公平锁还是非公平锁,公平锁表示线程获取锁的顺序是按照线程排队的顺序来分配的,而非公平锁就是一种获取锁的抢占机制,是随机获得 ...
- flume 1.4的介绍及使用示例
flume 1.4的介绍及使用示例 本文将介绍关于flume 1.4的使用示例,如果还没有安装flume的话可以参考:http://blog.csdn.net/zhu_xun/article/deta ...
- 由ASP.NET所谓前台调用后台、后台调用前台想到HTTP——实践篇(二)
在由ASP.NET所谓前台调用后台.后台调用前台想到HTTP——理论篇中描述了一下ASP.NET新手的三个问题及相关的HTTP协议内容,在由ASP.NET所谓前台调用后台.后台调用前台想到HTTP—— ...
- IOS 推送-配置与代码编写
IOS 推送配置与代码编写 这里介绍IOS的推送,本文章已经在IOS6/7/8上都能运行OK,按照道理IOS9应该没问题. 大纲: 1.文章前提 2.推送介绍 3.推送文件账号设置 4.推送证书介绍 ...