请选择 进入手机版 | 继续访问电脑版
楼主: cheetahfly
6384 3

[学习分享] 【原创】Simpson's Paradox(辛普森悖论)及其启示 [推广有奖]

  • 2关注
  • 71粉丝

版主

院士

5%

还不是VIP/贵宾

-

威望
0
论坛币
58652 个
通用积分
1373.9804
学术水平
480 点
热心指数
587 点
信用等级
328 点
经验
126211 点
帖子
2058
精华
1
在线时间
3760 小时
注册时间
2010-10-27
最后登录
2024-3-26

cheetahfly 在职认证  发表于 2018-4-4 13:46:25 |显示全部楼层 |坛友微信交流群
相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
在R语言自带的datasets包中,有个数据集叫UCBAdmissions,这个数据集咋一看其貌不扬,再一看还是平平淡淡,其实,这个数据是揭示Simpson's Paradox的典型真实案例。本帖为了简化问题的说明,选取其中的一部分:
  1. # 数据载入
  2. UCBA <- data.frame(datasets::UCBAdmissions)

  3. # 为更好地展示和分析问题,将数据截取部分
  4. UCBA <- filter(UCBA, Dept %in% c("A", "D"))
复制代码
数据大概是这样子的:
AdmitGenderDeptFreq
AdmittedMale    A       512     
RejectedMale    A       313     
AdmittedFemale  A       89     
RejectedFemale  A       19     
AdmittedMale    D       138     
RejectedMale    D       279     
AdmittedFemale  D       131     
RejectedFemale  D       244     

数据的内容是不同性别(Gender)的人申请不同的系(Dept),获得同意或拒绝(Admit)的次数(Freq)。
将数据汇总后,可以形成下面的图(制图比较简单,不赘述了):
001.png

从图上可以看到,男性(Male)的录取(Admitted)率,比女性要高。对吧?没错吧?但是——如果我们将这两个系各种申请的男女通过率展现出来:
002.png

WTF?!每一个系都是女生的录取率高于男生的录取率,但是为什么数据合在一起,就出现截然相反的结论呢?
为了展示问题,我们换一种方法画图:
003.png

在这张图中,横坐标变成了被拒绝的频次(Freq),纵坐标变成了申请成功的频次,图上的点对应男(粉色)、女(青色)申请某个系,和汇总的情况,每个点到原点(0,0)的线段的斜率表示(申请成功/申请失败)的比率,代表了成功率的高低。
从上图可以看到,青色的两条实线都比红色的两条实线的斜率要大,但是,当数据汇总后,青色的虚线的斜率却要比红色虚线的要小!这就是Simpson's Paradox的具体展现。从图上,我们大致可以看出原因——左边第一条青色实线的长度太短了!这可能是导致问题发生的原因。
如果其他条件不变,但是左边第一条青色实线的长度增加到3倍,情况会怎么样呢?——
004.png

OK,确实如此,情况逆转了!我们可以用公式粗糙地验证一下:
005.png


这提醒了我们一个道理,当我们在进行比率相关的数据分析时,不仅要考虑总体和各子项目的比率情况,还要考虑另外一个维度——各子项目所占权重的情况,因此,对于类似的问题,我在最上面用到的“条形图”就不合适了,这种情况下应该用“马赛克图”用ggmosaic包:
  1. library(tidyverse)
  2. library(ggmosaic)
  3. # 载入全部院系的数据
  4. UCBA <- data.frame(datasets::UCBAdmissions)

  5. UCBA %>%
  6.   ggplot() +
  7.   geom_mosaic(aes(weight = Freq, x = product(interaction(Dept, Gender)),
  8.               fill = factor(Admit))) +
  9.   theme(axis.text.x = element_text(angle = 90, vjust = 0.2)) +
  10.   labs(x = "Dept | Gender", fill = "Admit:") +
  11.   guides(fill = guide_legend(reverse = TRUE))
复制代码
006.png

从上面这张图上,Simpson's Paradox想要“骗”我们就没有那么容易了!

好了!我们已经知道了,比率很总要,权重也很重要。那么?问题又来了,如果在一个概率可知且稳定的投资过程中,策略A会稳定的输钱,策略B也会稳定地输钱(相当于比率已知)。如果将策略A、B随机组合或者间隔组合在一起(权重各50%),这个策略一定是稳定输钱吗?——答案还是不一定,有可能会稳定地赚钱!WTF?!是的,这就是Parrondo’s Paradox,有机会我再发帖说明。

另:对概率统计的经典问题感兴趣的坛友,可以看看我发过的另外一个帖子:用R语言实验验证经典概率问题:The Monty Hall problem
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝


allain 在职认证  发表于 2018-4-4 15:15:39 |显示全部楼层 |坛友微信交流群
版主威武!

使用道具

yangming98 发表于 2018-4-6 21:54:12 来自手机 |显示全部楼层 |坛友微信交流群
cheetahfly 发表于 2018-4-4 13:46
在R语言自带的datasets包中,有个数据集叫UCBAdmissions,这个数据集咋一看其貌不扬,再一看还是平平淡淡, ...
好的好的好的好的好的

使用道具

panggongzi4 发表于 2020-10-20 13:56:31 |显示全部楼层 |坛友微信交流群
最下面的代码放在R里出不来马赛克图呀

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-3-29 07:48