教程 ·
卡方检验用 AI 怎么做 — 期望频数/事后多重比较一键完成
卡方检验不再难。AI 自动检查期望频数 < 5 的格子比例,必要时切换到 Fisher 精确检验,输出事后多重比较的字母标记。
卡方检验是分类数据分析的基础,但 80% 的论文卡方检验都漏了"期望频数 < 5 的检查"和"事后多重比较"。这篇文章手把手教你避坑。
什么时候用卡方检验?
卡方检验(χ² test)专门用于类别变量之间是否独立或类别变量分布是否符合预期。常见场景:
- 两个分类变量的关联(独立性检验):性别 × 是否吸烟 / 学历 × 职业选择
- 某分类变量是否符合理论分布(拟合优度检验):六面骰子是否公平、新生儿性别比是否 1:1
- 两组比例是否相等(同质性检验):两家医院某病发病率是否相同
- R×C 列联表分析:3 种治疗方案 × 4 种疗效等级的关系
卡方检验的两个核心陷阱
陷阱 1: 期望频数 < 5 的格子比例
卡方检验有一个硬性前提:
所有格子的期望频数都 ≥ 5,且至少 80% 的格子期望频数 ≥ 5。
如果不满足:
- 期望频数 < 5 的格子超过 20% → 用 Fisher 精确检验 替代
- 2×2 表中任一格子期望 < 5 → 必须用 Fisher 精确检验
- 期望频数 < 1 的格子 → 数据合并或扩大样本
SPSS 输出会在表注里默默提示"X 个格子期望频数 < 5",很多学生根本没注意,照样报卡方结果,被审稿人 challenge。
陷阱 2: 大于 2×2 的列联表,显著之后呢?
如果你做了一个 3×4 的卡方表,p < .001 显著了,只能说"三组之间存在差异"。但具体哪两组有差异?
答案是要做事后多重比较(post-hoc comparison):
- 把 3 组拆成 3 个 2 组对比(A vs B, A vs C, B vs C)
- 每对做 2×2 卡方
- 用 Bonferroni 校正 调整 α 水平(α = 0.05 / 3 = 0.017)
- 或用调整标准化残差(adjusted standardized residual)判断哪些格子贡献最大
这部分 SPSS 完全不输出,需要手工算或写 syntax。90% 的本科论文跳过这一步,论文质量自然就一般。
ChatSRS 把这两个陷阱全部自动化处理。
案例:性别 × 专业选择的关联
假设你有 600 名大学生的数据,想检验:性别和专业选择是否独立?
gender: 男 / 女
major: 文科 / 理科 / 工科 / 商科
一句话搞定全套分析
打开 chatsrs.com,上传数据,输入:
"做 gender × major 的卡方检验,输出:
- 观察频数 + 期望频数 + 调整标准化残差 三联表
- 卡方统计量 + Cramér's V 效应量
- 自动检查期望频数 < 5 的格子比例,必要时改用 Fisher 精确检验
- 显著时做事后多重比较(Bonferroni 校正)
- 堆叠百分比柱图 + 残差热力图
- APA 标准的中文文字描述"
输出 1: 频数 + 期望 + 调整残差三联表
表 1 性别 × 专业选择交叉表(N = 600)
文科 理科 工科 商科 合计
男性
观察频数 62 84 145 59 350
期望频数 82.8 81.7 116.7 68.8 —
调整残差 -3.42 *** 0.42 4.71 *** -1.83 —
女性
观察频数 80 56 55 59 250
期望频数 59.2 58.3 83.3 49.2 —
调整残差 3.42 *** -0.42 -4.71 *** 1.83 —
合计 142 140 200 118 600
注:观察频数为实际人数,期望频数为独立性假设下的预期人数。
调整标准化残差 |z| > 1.96 表明该格子显著偏离独立性预期。
*** |z| > 3.29 即 p < .001
调整残差是这张表的精华:
- 男性-工科 z = 4.71*:男生选工科的人数显著多于独立性预期(145 vs 期望 116.7)
- 女性-文科 z = 3.42*:女生选文科的人数显著多于预期(80 vs 期望 59.2)
- 女性-工科 z = -4.71*:女生选工科显著少于预期(55 vs 期望 83.3)
这张表的"故事"一目了然:性别对专业选择有显著影响,工科男生集中、文科女生集中。
输出 2: 卡方统计量 + 效应量
表 2 卡方独立性检验
统计量 值 自由度 p 备注
Pearson 卡方 33.78 3 <.001 *** 主要使用
似然比卡方 33.62 3 <.001 *** 样本量大时推荐
线性关联 24.91 1 <.001 *** 适合有序变量
Cramér's V 0.237 小到中等效应
期望频数检查
- 最小期望频数: 49.2
- 期望频数 < 5 的格子: 0 / 8 (0.0%)
✓ 满足卡方检验前提,结果可信。
ChatSRS 自动跑期望频数检查并给出绿勾。如果不通过,会主动提示:
⚠️ 期望频数 < 5 的格子比例 = 25.0% (> 20% 阈值)
建议改用 Fisher 精确检验。
正在自动切换...
Fisher 精确检验:
- p = .003 ** (双侧)
- p = .002 ** (单侧)
输出 3: 事后多重比较
由于整体卡方显著,ChatSRS 自动做事后多重比较:
表 3 事后两两比较(Bonferroni 校正后 α = .017)
专业对比 卡方 df p Bonferroni 调整后 显著
文 vs 理 4.21 1 .040 * .120 ns
文 vs 工 25.32 1 <.001 *** <.001 ***
文 vs 商 0.13 1 .720 1.000 ns
理 vs 工 19.84 1 <.001 *** <.001 ***
理 vs 商 3.96 1 .047 * .140 ns
工 vs 商 14.27 1 <.001 *** <.001 ***
注:6 次比较 Bonferroni 调整:α_adj = 0.05 / 6 = 0.0083
下标标记:a/b 不同字母表示差异显著。
基于事后比较的字母标记:
男性比例 女性比例 分组标记
文科 17.7% 32.0% a
理科 24.0% 22.4% ab
工科 41.4% 22.0% c
商科 16.9% 23.6% a
注:不同字母表示组间差异显著(p < .017)。
文科、商科与工科差异最明显。
输出 4: 可视化
📷 [截图位置 1:堆叠百分比柱图,X 轴男/女,Y 轴 0-100% 累计百分比,4 个专业颜色堆叠]
📷 [截图位置 2:调整残差热力图,2×4 网格用红蓝渐变标注 |z|,红色 = 显著高于预期,蓝色 = 显著低于预期]
输出 5: 自动生成的文字描述
"性别与专业选择的关联分析
卡方独立性检验显示,性别与专业选择存在显著关联,χ²(3, N = 600) = 33.78, p < .001, Cramér's V = .237 (小到中等效应)。期望频数检查通过(0 个格子 < 5)。
调整标准化残差分析揭示了关联的具体方向:男生在工科(z = 4.71, p < .001)的选择显著多于独立性预期,而在文科(z = -3.42, p < .001)显著少于预期;女生则呈相反模式,文科多于预期(z = 3.42, p < .001),工科少于预期(z = -4.71, p < .001)。
Bonferroni 校正后的事后两两比较(α_adj = .0083)进一步表明,工科与文科(χ² = 25.32, p < .001)、工科与商科(χ² = 14.27, p < .001)、理科与工科(χ² = 19.84, p < .001)之间存在显著的性别构成差异,而文-理、文-商、理-商之间无显著差异。
结论:本研究证实了专业选择存在显著的性别分化模式,工科呈现明显的男性主导(41.4% vs 22.0%),文科呈现轻度女性偏好(32.0% vs 17.7%)。"
3 段直接进论文 4.2 节。
卡方检验的 6 类进阶场景
1. 拟合优度检验(Goodness of Fit)
"数据中骰子六个面的频数是 [98, 95, 110, 105, 89, 103],检验是否符合均匀分布(每面期望 16.67%)。"
ChatSRS 自动跑单变量拟合优度卡方。
2. McNemar 检验(配对二分类)
"200 个被试在干预前和干预后是否成功完成任务(0/1)的数据,做 McNemar 配对卡方检验。"
适用于"前后测同一组人"的二分变量。
3. Cochran's Q 检验
"100 人评判 3 种产品是否喜欢(0/1),同人多测,做 Cochran's Q 检验。"
McNemar 的多分类扩展。
4. 趋势卡方(Linear-by-Linear Association)
"学历(小学/初中/高中/大学)与是否吸烟的关联,检验是否有线性趋势(学历越高吸烟率越低)。"
不是无序的关联检验,而是有序的趋势检验。
5. 分层卡方 + Mantel-Haenszel
"按年龄分层后,性别与某病的关联,做 CMH(Cochran-Mantel-Haenszel)检验。"
医学流行病学常用。
6. Fisher 精确 R×C 表
"小样本(n = 50)的 3×3 列联表,期望频数太低,请用 Fisher 精确检验。"
ChatSRS 调用 R 的 fisher.test 计算精确 p 值(大表会用 Monte Carlo 模拟)。
FAQ
Q1: 2×2 表必须用 Fisher 精确检验吗?
任何一个格子期望频数 < 5 时必须用。如果所有期望频数 ≥ 5,Pearson 卡方足够(且更省计算资源)。
Q2: Yates 校正还要用吗?
Yates 连续性校正在 2×2 表样本量小时使用。现代统计学界倾向直接用 Fisher 精确检验而不用 Yates。ChatSRS 默认遵循这一现代做法。
Q3: Cramér's V 多大算"大效应"?
经验法则(Cohen, 1988):
- 0.10 = 小效应
- 0.30 = 中等效应
- 0.50 = 大效应
注意:随着自由度增加,"大效应"的阈值会调整,ChatSRS 自动用合适的阈值。
Q4: 调整残差和标准化残差有什么区别?
- 标准化残差:(O - E) / √E
- 调整标准化残差:(O - E) / √(E × (1-p_行) × (1-p_列)),进一步标准化了行列边缘频数的影响
调整残差服从 N(0,1),可以直接用 |z| > 1.96 判断显著性,论文中应优先报告调整残差。
Q5: 期望频数到底要多大?
经典规则:
- 2×2 表:所有格子期望 ≥ 5
- R×C 表(R 或 C ≥ 3):≥ 80% 格子期望 ≥ 5,且最小期望 ≥ 1
更严格的现代标准(Agresti 2007)建议所有期望 ≥ 1即可(用稀有事件 logistic 替代)。
Q6: 总样本量需要多大?
经典经验:总样本 ≥ 50(小表),≥ 200(大表)。ChatSRS 会自动评估样本量是否足够并给建议。
谁该用 ChatSRS 做卡方检验
- 医学/流行病学研究者:病例对照研究的关联分析
- 教育研究者:教学方法与学习效果的列联表
- 市场研究者:用户画像 × 产品偏好的关联
- 社会学者:人口学变量 × 行为态度的关系
- 本科论文学生:90% 包含问卷的论文都有卡方检验
🚀 打开 chatsrs.com,免费做一次包含期望频数检查 + 事后比较 + 残差热力图的完整卡方分析。
众多研究者的选择。从此告别"被审稿人挑卡方的毛病"。
相关文章推荐
本文首发于 ChatSRS 官方博客。如有问题或反馈,欢迎在 ChatSRS 站内 [用户中心 → 帮助与反馈] 联系我们。