京公网安备 11010802034615号
经营许可证编号:京B2-20210330
SPSS分析技术:CMH检验(分层卡方检验);辛普森悖论,数据分析的谬误
只涉及两个分类变量的卡方检验有些时候是很局限的,因为混杂因素总是存在,如果不考虑混杂因素,得出的分析结论很可能是谬误的,这就是著名的辛普森悖论。辛普森悖论的故事是这样的:1973年秋季,加州大学伯克利分校研究生院的新生入学。有些人在看到学校两个学院的综合录取表格后,怀疑学校在录取学生时存在性别歧视,因为女生录取率低于男生,如下表所示:
为了平息质疑,校领导根据学院的不同,将综合录取率拆开,分别考察商学院和法学院的录取情况,结果惊奇的发现两个学院的女生录取率都高于男生。
出现这种矛盾的原因:1、商学院的录取率远高于法学院;2、男生和女生申请商学院和法学院的比例不同,更多的男生申请商学院,而女生则更多申请法学院。虽然商学院和法学院都是女生录取率高于男生,但综合两个学院的数据后,女生的录取率却低于男生了。
以上的辛普森悖论对数据分析者是个很好的警醒:有些分析结论看似准确,板上钉钉,实则不然,可能背后隐藏着一些分析者没有注意到的潜在因素,这要求数据分析者对研究背景非常熟悉,避免忽略重要的潜在因素。辛普森悖论又一次说明数据分析是一门理论和实际联系非常紧密的科学,缺一不可,甚至研究背景更为重要。
CMH检验
CMH检验的全称是Cochran’s and Mantel-Haenszel statistics,由两个伟大的统计学家的名字组成,又称为分层卡方检验,CMH检验能够很好的解决辛普森悖论的出现。例如上面的典故,考察的是不同性别的录取率差异,而学院是对分析结论有显著影响的潜在因素,CMH检验可以对学院这个分类变量进行控制,得出不同性别录取率之间是否存在差异。
前面的内容介绍过,根据两个分类变量水平数的不同,卡方检验可以分成2*2、R*2、2*C和R*C等类型,从CMH检验的原理来说,适用于以上所有的情况,但是SPSS软件只能对2*2四格表卡方进行CMH检验,也称为K*2*2表格数据的CMH检验。
用个具体的医学案例来说明K*2*2表格数据的CMH检验。大家都知道吸二手烟对身体有害,那么这种主观的判断是否正确呢?某个医学组织对此展开了研究,研究吸二手烟是否会提高患癌风险,根据实际情况,调查者自己是否吸烟会严重影响吸二手烟和患癌风险间的相关性,因此将主动吸烟(自己是否吸烟)作为混杂因素处理。首先给出吸二手烟与是否患癌的2*2四格表资料:
如果将混杂因素也放入表中,那么数据资料可以整理成以下形式,可以发现原来的单元格内的频数被拆分开了。
CMH检验的统计量计算公式根据是否进行连续型修正,分为为连续性校正和连续性校正两个,两者之间的差距不大,通常以校正结果为准。它们的计算公式如下:
从CMH统计量的计算公式可以知道,CMH检验将所有2*2表格(混杂因素有几个水平就有几个2*2表格)的频数分布情况都考虑在内了,这样就对混杂因素的影响作出了控制。计算上面这个案例的CMH卡方值:
我们以修正的CMH检验卡方值13.942为准,查自由度为1的卡方分布表,卡方值13.942对应的显著性概率值为0.00018,小于0.05,说明剔除主动吸烟影响后,患癌与被动吸烟之间确实存在相关性。
CMH检验的共同比值比
对于2*2四格表,比值比的计算是必须的,比值比能够表示不同组间的相对危险程度。CMH的比值比(OR值)同样与不考虑混杂因素的比值比计算公式不同,CMH检验的共同比值比计算公式为:
旧以上面的案例数据为例,计算案例的CMH共同比值比,计算过程如下:
消除主动吸烟因素的影响后,OR=1.625,说明患癌人群中被动吸烟人数比例大约为未患癌人群的1.625倍。接下来还能够计算共同比值比的置信区间,这个过程草堂君就不继续描述了,通过软件都可以直接输出。
SPSS案例分析
将上面的案例整理进入SPSS软件中,然后运用软件中的Cochran’s and Mantel-Haenszel检验功能进行分析,对比软件输出结果与上面的手动计算结果是否一致。这个过程能够帮助大家更好的理解CMH检验的理论逻辑。录入SPSS的数据情况如下:

分析步骤
1、首先进行个案加权,将文件中的频数作为加权依据。具体的操作步骤,请点击下方文章链接回顾:SPSS分析技术:加权个案;让频数记录数据也能用SPSS做列联表分析。
2、选择菜单【分析】-【描述统计】-【交叉表】,在跳出的对话框中,进行如下操作。根据上面的表格数据,将是否患癌选为行变量,将是否被动吸烟选为列变量,将是否主动吸烟选为混杂因素。点击【统计】按钮,选中卡方选项;再选中柯克兰和奥特尔-亨塞尔统计,检验一般比值比的框内填写1即可(比值比为1,表示患癌组和为患癌组的被动吸烟比例相同)。
3、点击确定,输出结果。
结果解释
1、K*2*2频数统计表。可以发现,输出的表格和上面案例的整理表格结果是完全一致的。
2、分层2*2四格表的卡方检验结果。从结果可知,主动吸烟人群中,皮尔逊卡方、连续性修正和费舍尔精确检验的结果都是小于0.05,说明患癌和被动吸烟间存在相关性。而不吸烟人群中,结论于此相反,患癌和被动吸烟间不存在相关性。不考虑主动吸烟的混杂因素,结果是患癌和被动吸烟间存在相关性。
3、比值比齐性检验结果。在操作步骤中,检验比值比的值为1。两种比值比齐性检验的结果都大于0.05,说明两个分层2*2四格表的比值比与1之间没有显著性差异,也就是两个分层四格表的比值比是齐性的。
4、柯克兰和奥特尔-亨塞尔检验结果。可以发现SPSS输出的结果分成两个,柯克兰卡方值14.451和我们手动算的未连续性校正的结果一致,而曼特尔-亨塞尔卡方值则与连续性校正的结果一致。显著性结果都小于0.05,说明剔除主动吸烟影响后,患癌与被动吸烟之间确实存在相关性。
5、综合比值比结果。从结果可知,CMH检验的综合比值比结果也和我们手动算的一致。比值比区间为1.264到2.09之间,不包括1,说明患癌人群中被动吸烟人数比例确实比未患癌人群的比例高,高出1.264到2.09倍。
总结一下
本篇文章介绍了CMH检验的分析理论和SPSS的分析操作过程。可以知道,CMH检验能够将非实验考虑的混杂因素剔除,使得获取的分析结果能够真正表明两个分类型变量之间的关系,避免很多谬误的产生。CMH检验在医学领域和实验设计领域都扮演非常重要的角色。
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
很多数据分析师画过趋势图、做过业绩预测,但当被问到“这个月销售额增长20%,到底是长期趋势自然增长,还是促销活动的短期 ...
2026-08-21在数据分析与数据可视化工作中,直方图是展示数据分布特征、离散程度、集中区间的核心图表,能够直观呈现数值数据的频次分布规律 ...
2026-08-20在数据分析领域有一句核心准则:垃圾数据进,垃圾数据出。数据清洗是数据分析、数据建模、数据可视化之前的必经前置工序,也是保 ...
2026-08-20 很多数据分析师做过按月份的销售额趋势图,画过按天的流量折线图,但当被问到“时间序列和普通数据有什么本质区别”“季节性 ...
2026-08-20在Python数据分析与数据清洗工作中,Pandas是最核心的数据处理库,DataFrame是结构化数据的标准存储格式。在实时数据采集、循环 ...
2026-08-19在零售行业大数据分析与精细化运营领域,纸尿裤旁摆放啤酒是最经典、最具代表性的商业案例。两种看似毫无关联的商品,一个是婴幼 ...
2026-08-19 很多数据分析师能熟练地计算指标、搭建标签体系,但当被问到“画像到底在解决什么问题”“画像和标签是什么关系”“画像如何 ...
2026-08-19在数据分析、业务监控、质量检测与风险管控工作中,数据波动性是衡量数据稳定性、业务健康度、结果可信度的核心依据。数据波动代 ...
2026-08-18很多分析师在设计标签时思路清晰,但真到落地环节却面临“数据在手,不知如何转化为可用标签”的困境:或因加工方式选择不当导致 ...
2026-08-18在数据分析、业务评价、产品评级、用户分层与综合决策场景中,单一指标往往无法全面、客观地评价事物整体水平。现实中的评价对象 ...
2026-08-18在数理统计、假设检验、数据分析与机器学习领域中,卡方分布(χ²分布)是继正态分布、t分布之后最重要的连续型概率分布之一。 ...
2026-08-17在Python数据清洗、文本校验、账号密码规则校验、脏数据过滤、字符串规整化处理中,正则表达式是最高效、最常用的文本匹配工具。 ...
2026-08-17 很多分析师每天和数据打交道,但当被问到“标签是什么”“标签和指标有什么区别”“标签体系如何设计”时,却常常答不上来。 ...
2026-08-17手游行业具备用户迭代快、竞争激烈、用户粘性易流失的典型特征。随着新游持续上线、玩家审美升级、玩法疲劳等问题出现,存量用户 ...
2026-08-14在数字化产品运营、商业数据分析、业务增长管理中,零散的指标统计无法支撑系统性的业务决策。单一的点击率、转化率、销量数据只 ...
2026-08-14 很多数据分析师每天都在写SQL,但当被问到“数据查询语言(DQL)的本质是什么”“SELECT语句中各子句的书写顺序与实际执行顺 ...
2026-08-14在数据库数据分析、数据清洗、报表统计与业务查询场景中,日期时间是最高频、最核心的基础字段。数据库中存储的日期格式多样,包 ...
2026-08-13在数据统计分析与数据清洗工作中,箱线图是一种简洁高效、客观性强的数据可视化图表,能够直观呈现数据集的分布特征、离散程度和 ...
2026-08-13 很多数据分析师写过无数个SELECT查询,但当被问到“如何新建一张表来固化中间数据”“创建视图和创建物理表有什么区别”“视 ...
2026-08-13在自动化办公、数据采集、定时统计、日志清理、系统监控等场景中,程序往往需要按照固定时间间隔重复执行指定任务,这种运行机制 ...
2026-08-12