卡方检验
检验两个分类变量是否相互关联。
1. 方法概述
(1)卡方检验用于分析分类变量之间的关联,或检验一个分类变量的观察频数是否符合预期比例。独立性检验回答的是:不同类别的分布,是否会随着另一个分类变量的类别而发生系统变化。
(2)例如,可以分析性别与是否购买、年级与课程选择、地区与满意度等级之间是否有关联。卡方检验比较的是频数分布,不是均值差异,也不能单独证明因果关系。
2. 检验类型与适用问题
独立性检验
独立性检验需要两个分类变量,并把观测频数整理成列联表。原假设是两个分类变量相互独立,备择假设是二者存在统计关联。
拟合优度检验
拟合优度检验只需要一个分类变量和一组理论比例。例如,检验四种选项是否符合相同比例。需要在分析前明确理论比例,不能把样本频数本身当作预期比例。
不适用或需要谨慎的情况
- 结果变量是连续数值,研究问题是比较均值:考虑 t 检验或方差分析;
- 两列数字只是无序类别编码:可以做卡方,但不能把编码数值当作连续变量;
- 期望频数过小:考虑合并有理论依据的类别,或使用 Fisher 精确检验;
- 同一对象被重复计数且观测并不独立:普通卡方检验的标准误可能不适用;
- 研究问题是预测二分类结果并需要控制多个变量:考虑二元 Logistic 回归。
3. 数据结构和输入要求
数据可以按原始记录保存,也可以直接整理成列联表。原始记录示例如下:
| 编号 | 性别 | 是否购买 |
|---|---|---|
| 1 | 女 | 是 |
| 2 | 男 | 否 |
| 3 | 女 | 是 |
程序统计的是每个“行变量类别 × 列变量类别”的频数。类别名称应统一,空白、大小写差异或前后空格可能被误认为不同类别。缺失值通常不进入有效列联表,应报告有效样本量。
4. 分析流程
5. 独立性检验的计算公式
设列联表有 r 行和 c 列,单元格 (i,j) 的观察频数为 O_{ij}。第 i 行总数为 O_{i+},第 j 列总数为 O_{+j},总样本量为 N。在两个变量独立的假设下,期望频数为:
Pearson 卡方统计量为:
自由度为:
原假设和备择假设为:
当 p 值小于预先设定的显著性水平时,说明观察频数与独立性假设下的期望频数存在统计上显著的偏离。
6. 残差和效应量
Pearson 残差为:
残差为正表示该单元格的观察频数高于独立性假设下的期望频数,残差为负表示低于期望频数。分析多个单元格时,应结合调整后残差及多重比较问题,不能只挑选绝对值最大的一个单元格。
列联表常用 Cramér's V 描述关联强度:
对于 2\times2 列联表,也可以报告 Phi 系数:
效应量表示关联强度,不代表因果方向。具体大小应结合表格维度、样本量和研究背景解释,不能机械套用单一阈值。
7. 期望频数过小和精确检验
Pearson 卡方近似依赖期望频数不能过小。若有较多单元格的期望频数很低,卡方近似的 p 值可能不稳定。此时可以:
- 检查类别是否过细,并在理论允许时合并类别;
- 对 2\times2 表考虑 Fisher 精确检验;
- 使用适合更大列联表的精确或 Monte Carlo 方法;
- 在结果中说明所用检验和小频数处理方式。
合并类别必须有研究含义,不能为了让 p 值显著而任意合并。
8. 结果表格和图形的阅读方法
系统输出的工作表(analysis_tables.xlsx):卡方检验、卡方列联表、卡方期望频数、描述性统计、缺失值报告、频数统计;卡方模型**不输出**相关矩阵。
示例(来自系统结果包,示例数据)。
卡方检验表:
| 自变量 | 因变量 | χ² | df | p | Cramér's V | n | 假设是否满足 |
|---|---|---|---|---|---|---|---|
| 性别 | 是否购买 | 0.0267 | 1 | 0.867433 | 0.013333 | 150 | 是 |
卡方列联表表:
| 行类别 | 否 | 是 | 行合计 |
|---|---|---|---|
| 女 | 38(37.50) | 37(37.50) | 75 |
| 男 | 37(37.50) | 38(37.50) | 75 |
建议查看:
- 列联表:每个单元格为「观察频数(期望频数)」,并给出各类别的行合计;
- 卡方检验表:χ²、自由度、p 值、Cramér's V(效应量)和有效样本量 n;
- 「假设是否满足」:最小期望频数、低期望单元格数与比例;
- 标准化残差或关键单元格的差异(如有);
- 卡方列联表图(堆叠柱状图)。

9. 结果表述边界
可以表述为:“卡方独立性检验显示,性别与是否购买存在统计关联,\chi^2(df)=...,p=...,Cramér's V=...。从列联表看,女性组的购买比例为...,男性组为...。”
不能只写“性别影响购买行为”。横断面列联表通常只能说明关联,因果结论需要实验或纵向研究设计支持。
10. 常见问题
- 把数字编码的分类变量直接做均值比较:若数字只是类别标签,应优先考虑卡方检验。
- p 值显著但没有方向:必须回到列联表的观察频数(期望频数)和残差解释具体差异。
- 所有类别都很少仍强行使用 Pearson 卡方:应考虑精确方法或有依据地合并类别。
- 把关联写成因果:卡方检验本身不提供因果识别。