京公网安备 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
在Python Pandas数据分析中,DataFrame是承载结构化数据的核心载体,数据清洗、数据修正、条件赋值、字段更新等实操场景,都离不 ...
2026-09-09 很多数据分析师掌握了Excel函数、会写SQL查询,但当被问到“数据从哪里来”“数据加工有哪些步骤”“如何使用分析工具连接数 ...
2026-09-09卡方检验(Chi-Square Test)是统计学中针对分类数据的经典显著性检验方法,核心用于判断两个离散分类变量是否相互独立、数据实 ...
2026-09-09CDA数据分析师 出品 作者:李诗怡 1. 销售漏斗阶段判断 题目:销售漏斗模型中,通过广告、社交媒体等方式触达品牌信息(如浏览品 ...
2026-09-07在Python数据分析中,Pandas库的DataFrame是最核心、最常用的结构化数据表对象,类似于Excel的二维表格,具备规整的行列结构、字 ...
2026-09-07在数据分析、经营复盘、业绩预测与经济统计工作中,平均增速(平均增长率)是衡量数据长期变化趋势、业务发展快慢的核心指标。不 ...
2026-09-07 很多数据分析师精通Excel单元格操作,但当被问到“表结构数据的基本处理单位是什么”“字段和记录的本质区别”“为什么表结 ...
2026-09-07随着大数据技术的快速发展,商业竞争逐步从传统的经验式经营转变为数据驱动的精细化运营。海量的用户行为数据、交易数据、运营数 ...
2026-09-04CDA数据分析师 出品 作者:李诗怡 1. 波士顿矩阵(BCG Matrix) 定义: BCG于1970年提出的业务组合分析工具,以"市场增长率"(纵 ...
2026-09-04 数据分析师八成以上的时间在和数据表格打交道,但许多人拿到Excel后习惯性地先算、先分析,结果回头发现漏了一列关键数据, ...
2026-09-04数据透视表是Excel与Power BI中最核心的数据分析工具,具备快速汇总、维度拆分、动态筛选的能力,可高效完成数据归类与统计展示 ...
2026-09-03在Power BI数据分析可视化场景中,堆积柱状图+折线图是最常用的复合图表组合。堆积柱状图适合展示各细分维度当期数值、结构占比 ...
2026-09-03 很多数据分析师每天与Excel打交道,但当被问到“表格结构数据的基本处理单位是什么”“数据类型误判会引发哪些分析错误”“ ...
2026-09-03CDA数据分析师 出品 作者:李诗怡 一、8个核心数据清洗函数 1. TRIM:一键清除多余空格(最常用) 作用:仅保留文本中"单词/字 ...
2026-09-02数据分析的核心并非单纯操作工具、整理报表或绘制图表,而是依靠科学的思维逻辑挖掘数据价值、解释业务现象、指导经营决策。在完 ...
2026-09-02在社会经济、产业研究、区域治理与大数据实证分析中,面板数据是最具研究价值的数据类型。面板数据同时包含截面维度与时间维度信 ...
2026-09-02 很多数据分析师能熟练计算均值、标准差,但当被问到“如何用一张图让业务方3秒内看懂核心结论”“面对不同数据类型该怎么选 ...
2026-09-02在数据驱动决策的体系中,数据分析按照分析目的可分为描述性分析、诊断性分析、预测性分析与指导性分析四大类型。其中,诊断性分 ...
2026-09-01网络请求是Python爬虫开发、接口测试、数据拉取的核心基础功能,Python生态中主要依靠 urllib 和 requests 两大库实现HTTP请求操 ...
2026-09-01 很多数据分析师面对业务问题时,常常感到“知道要分析,却不知道用什么方法”。其实,数据分析并非无章可循——从三大基础范 ...
2026-09-01