ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

卡方检验实战指南:SPSS操作、结果解读与常见误区

卡方检验实战指南:SPSS操作、结果解读与常见误区 1. 什么时候该用卡方检验从研究问题到方法选择的判断逻辑1.1 卡方检验到底在解决什么问题写这篇文章是因为我几乎每周都会被问到同一个问题手头有两组人的数据一个是男一个是女一个买了东西一个没买想看看性别是不是影响了购买行为该用什么方法答案大概率就是卡方检验。但很多人对卡方检验的理解停留在“两个分类变量之间有没有关系”其实这个描述只说对了一半。卡方检验真正在做的事情是比较“实际观察到的频数分布”和“如果两个变量互相独立理论上应该出现的频数分布”之间有没有明显偏差。如果偏差足够大大到用随机波动已经解释不了我们就说这两个变量之间存在显著的关联。举个例子。假设你调查了200个人男女各100人其中80人买了某个产品、120人没买。如果性别跟购买完全无关那么男性和女性中“买了”的比例都应该是40%也就是各40人。如果实际数据里男性买了60人、女性买了20人这个偏差就远远超出了抽样误差的范围卡方检验就会给出一个很小的p值提示你性别跟购买行为之间确实存在关联。这里要特别注意一个概念卡方检验判断的是“关联”而不是“因果”。它可以告诉你两个变量在统计上是否独立但不能告诉你谁是因谁是果。很多研究报告甚至期刊审稿意见都会在这里犯错动不动就把卡方检验的结果解读成“A导致了B”这在方法学上是站不住脚的。1.2 卡方检验能覆盖三类常见的研究场景日常使用中卡方检验主要出现为三种略有差异的形式拟合优度检验Goodness of Fit只考察一个分类变量检验它的分布是否符合某种理论预期。比如你调查了100个人的品牌偏好想知道四种品牌的受欢迎程度是否完全均匀就属于这类。独立性检验Test of Independence这是最常见的形式也就是利用列联表检验两个分类变量是否独立。性别和购买行为、学历和是否使用某类产品、地区和满意度凡是这类两个分类变量的关联问题基本都归到这里。配对卡方检验McNemar检验数据来自配对设计或者自身前后对照比如同一批患者在治疗前后对某个症状的“有/无”判断就适合用McNemar检验而不是普通卡方。很多人在这个场景下用错了方法导致结论完全错误。1.3 和t检验、方差分析的界限划分我遇到的另一个高频困惑是到底该用卡方还是t检验或者方差分析判断标准其实很直白看你的因变量结果变量是什么类型。如果因变量是连续变量比如收入、得分、血压值那就走t检验或方差分析的路线如果因变量是分类变量比如买/不买、满意/不满意、男/女那就走卡方检验的路线。有些研究者会把已经分组后的数据比如年龄分成了“青年、中年、老年”当作连续变量去算均值和t检验这种做法的统计效率会受影响而且违背了方法本身对变量类型的假设。反过来也有人把本来精度很高的连续变量强行砍成“高/低”两组再去做卡方这会导致信息损失、统计检验力下降在样本量有限的时候尤其不划算。正确顺序应该是先想清楚分析目的和变量类型再决定方法而不是拿到问卷就开始点菜单。2. 看懂卡方检验的三张核心表数据形态与前提条件2.1 四格表与R×C表数据形态决定检验口径数据进入SPSS之前你需要清楚自己的列联表长什么样。最常见的是2×2四格表也就是两个变量每个变量都有两个类别。比如性别男/女×购买行为买/不买。四格表的自由度是1计算卡方值时有简化公式而且涉及连续性校正的问题。如果其中一个变量或者两个变量的分类超过了两个表就变成了R×C列联表。比如职业四类×满意度三类就是4×3的表格。自由度随之变成(R-1)×(C-1)检验的思路一样但在后续比较比如哪些组之间有差异上需要额外处理。这里补充一个经常被忽略的点卡方检验本身不区分行变量和列变量的角色也就是说先放性别还是先放购买行为算出来的卡方值一模一样。但SPSS输出的行百分比、列百分比会因摆放位置不同而有不同的解读效率所以实际操作中我一般把“研究关注的解释变量”放在行上把“结果变量”放在列上后续读起来顺手得多。2.2 最小理论频数最容易翻车的前提条件卡方检验的数学基础是“统计量近似服从卡方分布”这个近似依赖于样本量够大和期望频数够大。什么叫期望频数就是假设两个变量独立时每个格子理论上应该有多少人。计算公式是行合计乘以列合计除以总人数。判断标准是统计学家Cochran提出的现在几乎所有的教材都沿用所有格子的期望频数都大于5直接用Pearson卡方完全没问题。期望频数在1到5之间的格子不超过总格子数的20%并且最小期望频数不小于1仍然可以用Pearson卡方但结果解释要谨慎最好同时报告Fisher精确检验的结果。任何一个格子的期望频数小于1或者超过20%的格子期望频数小于5Pearson卡方的结果可能严重失真这时候应该选择Fisher精确检验。这个检查在SPSS的Crosstabs输出里其实会直接显示就是在卡方检验表下方有一句“a. 0 cells have expected count less than 5...”的注释。很多初学者完全无视这句注释直接看上面的卡方值其实是比较冒险的。2.3 Fisher精确检验和Yates连续性校正在什么情况下上场先说最简单的判断口径。四格表里只要样本量不大、期望频数有低于5的情况SPSS会自动给出Fisher精确检验的双侧p值这个值是直接按超几何分布精确计算出来的不依赖近似条件所以更可靠。小样本时我直接报告Fisher结果。两项校正需要区分Yates连续性校正是在四格表总样本量大于40、但某个格子的期望频数在1到5之间时对卡方值进行一个“往小调”的修正目的是避免I型错误膨胀。但这个校正因为过度保守也常被批评所以如果表格的总样本量够大很多统计教材会建议不校正直接报告Pearson结果然后看Fisher精确检验是否支持结论。我在论文里通常会同时报告Pearson卡方值和Fisher值让审稿人看到我是检查过前提条件的。3. SPSS菜单里的卡方检验操作路径从录入规范到参数勾选3.1 数据录入的两种准备格式SPSS里做卡方检验数据有两种常见的组织方式处理方式完全不同这是新手和小白最容易被绊倒的地方。第一种是原始数据格式每一行代表一个受访者有一个变量记录性别比如1男2女另一个变量记录购买行为1买2不买。这种情况最省事数据和问卷一一对应直接进菜单就可以了。第二种是频数格式你已经把数据整理成了汇总表比如“男性买了的有60人男性没买的有40人女性买了的有20人女性没买的有80人”然后一行一条记录每个组合一行。这种格式如果直接去做卡方检验SPSS会以为“60”是一个个案而不是“60个人”算出来的结果完全是错的。正确做法是先通过 Data Weight Cases把人数变量设定为加权变量然后再去做Crosstabs。我见过太多人拿着问卷数据辛辛苦苦在Excel里做了透视表再导进SPSS直接分析然后出了一堆看不懂的结果其实就是漏掉了加权这一步。3.2 从一个变量的定义开始值标签和测量尺度录入或者导入数据之后第一步是检查变量视图。性别这一行的“测量”要改成“名义”Nominal“值”要设置好后缀标注1男2女。这个操作不设好后续输出的表格里会全是1和2你得自己回想哪个数字代表哪个组解读效率非常低。“测量”的设置也很关键。有人把性别设成了“标度”Scale这在某些分析中可能不会有实质影响但在卡方检验中如果变量被视为连续变量部分菜单选项的可用性和输出格式会受影响。系统性做法是所有分类变量一律设为“名义”或“有序”连续变量才设为“标度”。3.3 进入Crosstabs菜单的正确姿势路径是Analyze Descriptive Statistics Crosstabs。在弹出的对话框里把行变量、列变量放好。理论上行列可以互换但为了解读方便我习惯把主要研究因素放行把结果变量放列。然后点击“Statistics”按钮勾选“Chi-square”、“Phi and Cramers V”、“Risk”。如果你研究的是有序分类变量还可以勾选“Cochrans and Mantel-Haenszel statistics”去做趋势检验这个后文会细说。对于2×2表我还会勾选“Kappa”因为Kappa一致性系数在这种情况下非常有信息量如果确认是配对设计记得选择“McNemar”。接下来是“Cells”按钮勾选“Observed”观察频数、“Expected”期望频数、“Row”行百分比、“Column”列百分比。期望频数必选这是检查前提条件的关键行百分比或列百分比二选一看哪个更符合你的解释逻辑。我不建议同时勾选太多百分比输出表会变得很拥挤反而不好读。全部设置好后点“OK”运行。到这里你的SPSS输出里会出现至少三张核心表个案处理摘要、行×列交叉表、卡方检验表。3.4 加权操作的细节和常见失误加权个案操作看似简单实际上有很多隐藏问题。点击 Data Weight Cases选择“Weight cases by”把频数变量放入“Frequency Variable”框点OK。这里有几个实战提醒加权变量不能为负数这是SPSS的基础要求本质上加权是在复制个案负权重没有意义。加权变量如果存在缺失值那么缺失对应的个案会被排除样本量会在不知不觉间缩水。如果你在同一个会话中处理多个数据文件加权状态是全局保持的下次分析前需要检查是否还处于加权状态否则会把后续的分析结果全部搞乱。我自己有一个固定的检查习惯每次点完Weight Cases之后先在数据视图里看一眼确认总个案数是否等于加权变量求和。一旦发现加权后的个案数和预期不符就立即回头查数据。4. 结果输出解读从Pearson卡方到风险度量的完整读法4.1 个案处理摘要和交叉表先别急着看p值拿到输出后我一直建议大家按这个顺序读表很多新手上来就找最后一行p值这其实跳过了两个非常重要的信息源。第一张表“Case Processing Summary”会告诉你有效个案数是多少、缺失个案数是多少。如果你的原始数据有一堆缺失这里会出现一个触目惊心的缺失数字提醒你先去处理数据里的空值再进行后续解读。如果有效样本量和你的预期不符先别继续看结果回头检查数据。第二张表就是交叉表里面每个格子有观察频数、期望频数和百分比。观察频数和期望频数之间的差异可以直接告诉你关联的方向。比如男性组里“购买”的观察频数明显高于期望频数意味着男性相对更倾向购买。我在第一次看结果时一定会做这个目测检查因为卡方值只能告诉你“有没有差异”交叉表才能告诉你“差异是怎么分布的”。4.2 卡方检验表里那一堆数值到底选哪个SPSS输出的卡方检验表一般包含好几行常用的有这么几个“Pearson Chi-Square”最常规的卡方检验结果适用于绝大多数样本量和期望频数都达标的情况。“Continuity Correction”也就是Yates连续性校正只出现在2×2表中适合小样本。“Fishers Exact Test”给出了精确检验的双侧p值样本量小时直接看这一行。“Linear-by-Linear Association”检验有序变量的线性趋势可以看作趋势卡方的结果。“N of Valid Cases”有效个案数报告时必须写。具体选哪个口径我一般按照这个逻辑先看期望频数是否全部大于5。如果是直接用Pearson行如果存在1到5之间的期望频数同时是2×2表那么我同时报告Pearson和Fisher的结果如果两者结论不一致比如一个是刚过0.05另一个没过我会在文中说明差异并侧重Fisher的结果。如果样本量特别小、或者出现了期望频数小于1就直接只看Fisher行。4.3 效应量显著不等于重要近几年的审稿趋势越来越强调效应量的报告卡方检验也逃不过这一关。很多人在SPSS输出的第三张表“Symmetric Measures”里找到了Phi和Cramers V但不知道区别。Phi系数在2×2表中取值范围是-1到1不仅能反映关联强度还能体现方向正值代表正向关联负值代表负向关联。但超出2×2表格后Phi值的上限会超过1无法标准化比较所以这时就不要报告Phi了。Cramers V适用范围更广R×C表也能用取值范围是0到1。由于它始终是0到1所以不同研究之间进行比较时更方便。列联系数Contingency Coefficient也能体现关联强度但它依赖表格维度没有Cramers V直观适用面相对窄。判断强度有经验性的参考标准Cramers V在0.1左右算小效应0.3左右算中等0.5以上算大。这些阈值不是铁律但能帮你判断统计显著的结果在实践中有多大分量。样本量特别大的研究中卡方检验极容易得到p0.001但Cramers V可能只有0.08这种时候如果你只报告p值等于在夸大一个几乎没有实际意义的细微差异。4.4 呈现在论文里的标准写法论文中卡方检验的描述有约定俗成的格式一般是这样“卡方检验结果显示性别与购买行为之间存在显著关联χ²(1) 6.32p 0.012Cramérs V 0.25属于中等效应量。男性群体的购买率60.0%显著高于女性群体40.0%。”要注意的点包括括号里写的是自由度χ²后面的数字保留两位小数p值如果小于0.001很多期刊要求写成p 0.001而不是给出具体的极小数字效应量是现代报告中的标准组成部分建议一并写出。如果做了Fisher精确检验就写“Fishers exact test p 0.021”不再给卡方值和自由度因为Fisher检验本身不基于卡方近似卡方值没有意义。5. 下一步操作二维表之后的三类进阶检验5.1 R×C列联表的组间两两比较如果列联表不只2×2比如你有三个年龄段青年、中年、老年和三类购买偏好偏好A、偏好B、偏好C跑完卡方检验发现p0.05只能说明“不同年龄段的人在偏好上存在显著差异”但具体是“青年和中年有差异”还是“中年和老年有差异”这个问题卡方检验本身回答不了。这时候需要做分层的组间比较把数据拆成多个子表单独做卡方并对p值进行多重比较校正。比如三组的话需要做三次两两比较校正方法可以用最简单的Bonferroni校正显著性水平从0.05调整为0.05/30.0167。这个做法虽然保守但可解释性强也比较容易过审稿人那关。还有一点值得提醒在这类分析中SPSS不能一键给出所有组合的两两卡方需要在Data Select Cases里按组筛选或者用Split File按组拆分然后依次跑检验。这个过程略显繁琐但属于做研究的基本功。5.2 趋势卡方当两个变量都是有序分类时如果两个分类变量都有自然的顺序比如年龄层从低到高满意度从低到高那普通卡方只检验“是否独立”却忽略了一个更值得关注的问题是否存在线性趋势换句话说随着年龄升高满意度是否有单调上升或下降的趋势SPSS在Crosstabs的卡方检验表里会输出一行“Linear-by-Linear Association”这一行的p值就是趋势检验的结果。如果这行的p值显著说明行变量和列变量之间存在线性的剂量-反应趋势这通常比“仅仅存在差异”更有科学价值。我在做满意度调查和干预研究时都会额外看这一行很多情况下整体的差异可能不显著但趋势却非常清晰这种信息是普通卡方看不到的。5.3 McNemar检验配对设计的正确打开方式回到前文提到的McNemar检验。这种检验常用于干预研究中同一个受试者在干预前后各测一次某个二元指标。比如100个患者在某项健康教育前后吸烟/不吸烟状态发生了变化。这时候数据就构成了一个2×2配对表干预前干预后 吸烟干预后 不吸烟吸烟ab不吸烟cdMcNemar检验只关心“从吸烟变成不吸烟”的人数b和“从不吸烟变成吸烟”的人数c是否对称。如果健康教育有效b应该远大于c。普通卡方检验在这里是错误的方法因为它假设四格独立而配对数据显然不满足这个假设。SPSS中的操作路径是Analyze Descriptive Statistics Crosstabs行列放入同一个变量的前后测测量值在Statistics里勾选“McNemar”。输出并不会单独出现一张大大的“McNemar检验表”而是在卡方检验表中多一行“McNemar-Bowker”检验的结果直接看它的p值即可。如果p值小于0.05就说明干预前后状态的变化不是偶然波动干预效应在统计学上是可检测的。6. 这些年做卡方检验踩过的坑一份实战提醒清单6.1 不看期望频数就直接报卡方容易被审稿人一票否决我早期的数据分析里有过一次这样的教训。当时数据跑出来Pearson卡方p0.048刚过显著性门槛我满心欢喜准备去写报告结果随手点开交叉表一看发现有一个格子的期望频数是3.2已经低于5了。按照约定标准这时候应该看Fisher精确检验而Fisher检验的结果是p0.087完全不显著。也就是说初看显著的结论实际上经不起考验。从那以后我形成了固定习惯任何卡方检验跑完后第一件事是检查交叉表里的期望频数如果SPSS没有给出注释警告再做下一步判断。6.2 百分比报告方向选错了解读完全反过来交叉表的行百分比和列百分比报告哪个要看你的研究设计。举个例子如果你研究的是性别对购买行为的影响性别是解释变量购买行为是结果变量那么正确做法是按性别分组报告“买”的比例也就是列百分比。如果反过来报告百分比就会变成“在所有买了的人里男性占多少”答案取决于你调查时男女各抽了多少人而不是性别带来的真实影响。这个方向一旦搞错结论的性质就完全变了。6.3 缺失值处理不当样本量悄悄缩水SPSS Crosstabs默认的做法是剔除法listwise deletion也就是说某个个案只要在行变量或列变量上有缺失就会被整条排除。如果你的问卷里有几个关键题目大量缺失分析的有效样本量可能远小于你发出去的问卷数。这本身不算错但问题在于很多情况下缺失不是随机的如果缺失比例在某个组里特别高比如高收入群体更不愿意填收入项就会引入选择偏差。我的处理原则是先做缺失分析如果缺失比例超过5%就要考虑多重插补或者至少把缺失作为一个类别纳入分析看结果是否稳健。6.4 多组两两比较不做校正假阳性风险直接拉满这项是期刊审稿人最爱挑的毛病你有一个五组比较的研究如果每一对组合都跑去跑一次普通卡方按0.05的显著性水平检验理论上所有检验都无差异时出现至少一个假阳性的概率是1-(0.95)^10≈0.40也就是说有40%的概率会得到一个“伪显著”的结果。这个概率可比你想的高多了。在这种情形下比较稳妥的做法是先整体卡方如果整体不显著就不要继续往下拆如果整体显著再做两两比较并进行Bonferroni校正。校正后的p值阈值会变得保守牺牲一部分检验力换来的却是结论的可信度。对审稿人来说一个做了校正、解释保守的结果远比一个p值琳琅满目但经不起推敲的结果更受欢迎。6.5 效应量不是可选项而是必选项前面提过效应量的重要性这里再补一个实际感受。我的一个朋友做市场调研样本量做到了一万人凡是男女之间的差异基本都是p0.001但看Cramers V大多数连0.05都不到属于“统计显著但实际可忽略”的情况。如果只报告p值业务部门一定会拿着结果去放大差异做决策但一放效应量大家就冷静下来了。卡方检验从来不只是为了得到一个“显著”的结论它最终的目标是帮助决策。效应量恰好就是连接统计结果和实际意义的那座桥。6.6 永远先画百分比图再看检验结果手把手教过那么多学生之后我发现一个普遍规律图形给人的直觉比p值更可靠。SPSS的Crosstabs本身不自带图但我总建议在运行检验前先用Graph Chart Builder画一个堆积柱状图或分组柱状图把百分比分布可视化出来。如果图上的差异肉眼几乎看不出来那么即便卡方检验显著也大概率是样本量堆出来的“统计显著”预期效应量会很小。反过来如果图上差异一目了然再结合显著p值和稳定效应量结论就非常扎实了。图形先行数据分析的基本习惯能做的人还是太少了。这些坑我本人基本都踩过一遍。踩坑本身不丢人丢人的是同样的坑在审稿意见里出现第二次。卡方检验看起来是SPSS里最简单的分析之一但只要把前提条件、效应量、多重比较和报告规范都吃透做一个无可指摘的结果并没有那么简单。希望这份操作和避坑指南能帮你少走几步弯路把时间花在真正值得研究的问题上。
返回列表