操作步骤
下面假设观察频数的 2×2 表位于 B2:C3,行合计在 D2:D3,列合计在 B4:C4,总数在 D4,期望频数表位于 B8:C9。参数之间用英文逗号分隔。
- 第一步,统计观察频数:插入数据透视表,把一个变量拖到“行”、另一个拖到“列”,再把任一字段以“计数”放入“值”,然后把单元格以数值粘贴到空白区域。
- 第二步,计算期望频数:在 B8 输入 =B$4*$D2/$D$4,并复制到 B8:C9。CHISQ.TEST 不会自动计算期望值。
- 第三步,用 CHISQ.TEST 得到 P 值:输入 =CHISQ.TEST(B2:C3,B8:C9)。结果小于 0.05,就在 5% 水平下拒绝独立性假设。
- 第四步,补上检验统计量:χ² 用 =SUM((B2:C3-B8:C9)^2/B8:C9) 计算;旧版 Excel 需要按 Ctrl+Shift+Enter 以数组公式输入。
- 第五步,核对临界值:=CHISQ.INV.RT(0.05,1) 返回自由度为 1 时的临界值;一般 df = (行数 − 1) × (列数 − 1)。
公式一览
CHITEST 是 Excel 2007 及更早版本中的旧名称,计算方式相同;CHISQ.TEST 从 Excel 2010 起提供。两者都要求观察区域和期望区域大小相同。
- 期望频数:=B$4*$D2/$D$4
- P 值:=CHISQ.TEST(B2:C3,B8:C9)
- 检验统计量 χ²:=SUM((B2:C3-B8:C9)^2/B8:C9)
- 临界值(df = 1):=CHISQ.INV.RT(0.05,1)
- 由 P 值反推 χ²:=CHISQ.INV.RT(P,df)
示例:n = 100 的 2×2 表
示例数据与英文版指南相同:观察频数第一行为 20 和 30,第二行为 30 和 20。所有行合计和列合计都是 50,所以每个单元格的期望频数都是 50 × 50 ÷ 100 = 25。=CHISQ.TEST(B2:C3,B8:C9) 返回 0.0455,在 5% 水平下勉强显著。对应的检验统计量 χ² = 4.00(df = 1),临界值 =CHISQ.INV.RT(0.05,1) = 3.841。
Excel 没告诉你的是:加上 Yates 连续性校正后,χ² 降为 3.24(P = .072);Fisher 精确检验为 P = .071,两者都高于 0.05。这样接近临界的结果,措辞应当保守,并同时报告效应量:Cramér's V = 0.20。
以上数值由 Crosstabs 的统计引擎计算;Excel 中 CHISQ.TEST 的结果等于未校正的 Pearson 卡方检验 P 值。
CHISQ.TEST 没有提供什么
CHISQ.TEST 只返回 P 值。完整的报告还需要检验统计量、自由度、效应量,以及对期望频数的检查。单元格期望频数低于 5 时 Excel 不会提醒,2×2 表也不做连续性校正。
- 没有效应量:Cramér's V 或 Phi 系数要自己由 χ² 计算。
- 没有残差:Excel 不显示是哪些单元格造成了关联。
- 没有 Fisher 精确检验:小样本 2×2 表没有内置函数可用。
- 期望频数偏小也不提醒:请自行检查 Cochran 规则。