卡方检验计算器

卡方检验在线计算:粘贴列联表或各类别观测频数,立即算出期望频数、χ² 值、自由度、p 值与卡方界值,并给出 Cramér's V、φ 系数、逐格贡献与调整残差;支持独立性检验(含四格表连续性校正)、拟合优度检验,以及已知 χ² 与自由度直接查 p 值。

两个分类变量有没有关系:性别与偏好、方案与是否下单、疗法与是否治愈。填一张列联表,自由度 = (行数−1)×(列数−1)。

只填格子里的频数(人数、件数),不要填百分比,也不要把「合计」行列一起填进来。 至少 2 行 2 列,每行数据个数必须相同;可以直接从表格软件整块复制粘贴。

只对 2×2 四格表有意义(更大的表会自动忽略)。n ≥ 40 且最小期望频数在 1~5 之间时用校正公式; n < 40 或有期望频数小于 1 时改用 Fisher 确切概率法。结果区会按这条规则直接给出建议。

0.05 是论文与报告的通行口径,医学、质量控制常用 0.01。α 只决定「显著」的判定线,不改变 p 值本身。

独立性检验(列联表)
χ² = 5.333333,p = 0.020921

p < α = 0.05拒绝原假设:两个变量并非相互独立,存在统计上显著的关联。(df = 1,临界值 χ²(1−α, df) = 3.841459

卡方检验只看右侧单尾:统计量越大,说明实际频数偏离期望频数越多。「显著」只说明这种偏离不太可能由抽样波动造成,不等于关联很强——强度要看下方的效应量。

卡方统计量 χ²5.333333
自由度 df1
p 值(右侧尾部)0.020921
临界值 χ²(1−α, df)3.841459
样本量 n400
表格规模2 × 2
最小期望频数50
期望频数 < 5 的格子0(0%)
效应量 Cramér's V0.11547
φ 系数(四格表)0.11547
列联系数 C0.114708

方法建议:n ≥ 40 且所有期望频数 ≥ 5,可直接用未校正的 Pearson 卡方值。

逐格明细(期望频数 E 与各自的卡方贡献)
格子观测 O期望 EO − E(O−E)²/E调整残差
第 1 行 第 1 列60501022.309401
第 1 行 第 2 列140150-100.666667-2.309401
第 2 行 第 1 列4050-102-2.309401
第 2 行 第 2 列160150100.6666672.309401

每格的 (O−E)²/E 相加就是总的 χ²,贡献最大的格子就是差异的来源。调整残差近似服从标准正态分布,绝对值超过 1.96(α = 0.05)的格子,就是让两个变量显得不独立的关键格子。

怎么用

  1. 先分清是独立性检验还是拟合优度检验手里是一张交叉表(行是一个分类变量、列是另一个分类变量,格子里是人数或件数),想知道两个变量有没有关系,选「独立性检验」;手里只有一行各类别的实际计数,想和某个理论分布(均匀、9:3:3:1、去年的比例)比一比,选「拟合优度」。已经算出 χ² 只想查 p 值,选「已知 χ² 求 p」。
  2. 只填频数,不要填百分比卡方检验吃的是计数:60 人下单就填 60,不能填 30%。列联表按每行一组粘贴,行内用空格、逗号或制表符分隔,可以直接从表格软件整块复制;不要把「合计」那一行一列也填进来,工具会自己算行合计、列合计与总计。填成率或百分比会让 n 变成 100,χ² 与结论全错。
  3. 拟合优度再选一次期望分布各类别机会均等选「均匀」,期望频数 = 总数 ÷ 类别数;有理论比例(9:3:3:1、1:2:1、40%:35%:25%)选「按比例」,工具会折算到与观测相同的总数;已经算好每类期望人数选「按频数」,此时合计必须与观测合计相等。若期望分布的参数是用这批数据估出来的(如泊松的 λ、正态的 μ 和 σ),在「估计参数个数」里填 1 或 2,自由度会相应扣减。
  4. 四格表按规则决定要不要连续性校正2×2 表看结果区给出的方法建议:n ≥ 40 且所有期望频数 ≥ 5,直接用未校正的 Pearson χ²;n ≥ 40 但最小期望频数在 1 到 5 之间,把「连续性校正」切到「校正」;n < 40 或有期望频数小于 1,卡方近似已不可靠,应改用 Fisher 确切概率法。行列超过 2×2 时校正不适用,工具会自动忽略。
  5. 读结论:先看 p 值,再看效应量和逐格明细顶部直接给出 χ² 与 p:p < α 就拒绝原假设,等价于 χ² 超过临界值 χ²(1−α, df)。接着看效应量判断关联到底强不强——列联表看 Cramér's V(0.1 弱、0.3 中、0.5 强),拟合优度看 Cohen's w。最后展开逐格明细:贡献 (O−E)²/E 最大的格子就是差异来源,调整残差绝对值超过 1.96 的格子可以直接写进报告,说明是哪一类多了、哪一类少了。

核心要点

卡方检验判断「实际频数与理论上该有的频数,差得是不是超出了抽样波动」,公式只有一个:χ² = Σ (O − E)² / E,再用自由度对应的卡方分布把 χ² 换算成 p 值。

  • 只吃频数:填人数、件数这类非负整数计数,不能填百分比。填成 30% 和 20% 等于把样本量改成 100,结论会翻车; 小数或加权频数不属于普通卡方检验的适用范围。
  • 两种用法:列联表比两个变量有没有关系(E = 行合计×列合计÷总计df = (行−1)(列−1)); 一行计数比实际与理论分布合不合(E = 总数×理论比例df = 类别数−1−估计参数个数)。
  • 典型算例:四格表 60/14040/160n = 400)→ 期望 50/150/50/150χ² = 5.333333df = 1p = 0.020921, 在 α = 0.05 下显著。
  • 只看右侧单尾:χ² 越大越显著,χ²(0.95, 1) = 3.841459。 别只看 p——Cramér’s V = 0.11547 说明上例的关联其实很弱。
  • 小样本先过一道门槛:期望频数不低于 1、低于 5 的格子不超过 20%; 四格表 n < 40 或最小期望频数 < 1 改用 Fisher 确切概率法。所有计算在浏览器本地完成,不上传数据。

原理与公式

卡方检验(chi-square test,χ² 检验)处理的是计数资料:把观测对象 按类别归入格子,比较每格的实际频数 O 与原假设成立时的期望频数 E。统计量 χ² = Σ (O − E)² / E 把所有格子的相对偏离加起来,它近似服从自由度为 df 的卡方分布。由于每一项都被平方,无论实际比期望多还是少都只会让 χ² 变大,因此卡方检验永远只看右侧单尾,不存在「单侧 / 双侧」的选择。

两种检验的期望频数与自由度

独立性检验 / 齐性检验(列联表)
E_ij = 第 i 行合计 × 第 j 列合计 ÷ 总计 n
df = (行数 − 1) × (列数 − 1),四格表恒为 1
拟合优度检验(单个变量对理论分布)
E_i = n × p_ip_i 为理论比例,均匀分布时 E = n/k
df = 类别数 k − 1 − 估计参数个数
四格表连续性校正(Yates)
χ²_c = Σ (|O − E| − 0.5)² / E,仅用于 2×2 表

计算示例一:四格表(A/B 方案下单率)

A 方案 200 人中 60 人下单,B 方案 200 人中 40 人下单,α = 0.05:
表格:60 140 / 40 160行合计 200、200列合计 100、300n = 400
E₁₁ = 200×100/400 = 50,同理 150、50、150
χ² = 10²/50 + 10²/150 + 10²/50 + 10²/150 = 5.333333df = 1
p = 0.020921 < 0.05 → 拒绝独立性假设,两种方案的下单率有显著差异
χ²(0.95, 1) = 3.8414595.333333 > 3.841459,与 p 值结论一致
φ = Cramér’s V = √(5.333333/400) = 0.11547(弱关联),列联系数 C = 0.114708
四格的调整残差为 ±2.309401,均超过 1.96;若改用连续性校正,χ² = 4.813333p = 0.02824,结论不变但已明显靠近判定线。

计算示例二:拟合优度(骰子是否均匀)

一颗骰子掷 120 次,各点出现 20、22、17、18、19、24 次, 期望每面 120/6 = 20 次:
χ² = (0 + 4 + 9 + 4 + 1 + 16)/20 = 1.7df = 6 − 1 = 5
p = 0.8889 > 0.05χ²(0.95, 5) = 11.070498 → 远未达界值, 没有证据说明这颗骰子不均匀
Cohen’s w = √(1.7/120) = 0.119024,偏离幅度也很小。

计算示例三:按比例检验(孟德尔豌豆 9:3:3:1)

观测 315、108、101、32n = 556),理论比 9:3:3:1
E = 556 × 9/16 = 312.75104.25104.2534.75
χ² = 0.016187 + 0.134892 + 0.101319 + 0.217626 = 0.470024df = 3
p = 0.925426χ²(0.95, 3) = 7.814728 → 实际分离比与 9:3:3:1 高度吻合。理论比例是事先给定的,所以估计参数个数填 0;若比例是用同一批 数据估出来的,每估一个参数自由度就要再减 1。

效应量与逐格明细

χ² 随样本量近似成比例放大,所以「显著」不等于「关联强」。列联表用 Cramér’s V = √(χ² / (n·(min(r, c) − 1))),拟合优度用 Cohen’s w = √(χ²/n),两者都以 0.1 / 0.3 / 0.5 作为 弱、中、强的经验界限;四格表的 φ = √(χ²/n) 与 V 相同,列联系数 C = √(χ²/(χ² + n)) 则永远小于 1 且随表格规模变化,横向比较时要谨慎。 效应量一律按未校正的 Pearson 统计量计算——连续性校正是为了修正 p 值, 不该顺带缩小关联强度。逐格明细里,(O−E)²/E 最大的格子就是差异来源; 调整残差 (O−E)/√(E(1−行合计/n)(1−列合计/n)) 近似标准正态,绝对值超过 1.96 的格子可直接写进结论。

适用前提与常见误用

前提:① 数据是频数(计数),不是百分比、率或均值;② 每个观测相互独立、且只进入一个格子; ③ 样本足够大——期望频数不低于 1,低于 5 的格子不超过 20%,四格表另按 n ≥ 40 与最小期望频数 T 的规则在 Pearson / 连续性校正 / Fisher 之间选择。
常见误用:直接把百分比当频数填;把连续数据(分数、体重、金额)拿来做卡方而不先分组; 配对计数(同一批对象两种检测、治疗前后)该用 McNemar 检验却用了普通卡方; 期望频数过小仍硬算;把「显著」解读成「关联强」或「有因果」;多个表反复检验却不校正 α。

精度与支持范围

频数、行列合计、期望频数、残差与 χ² 全程以高精度十进制求值,输入的数字不经浮点转换, 规避原生浮点误差(0.1 + 0.2 = 0.3)与大整数精度丢失。p 值由卡方分布右尾 P(χ²(df) > x) = Q(df/2, x/2)(正则化上不完全伽马函数)算出:小于中心 处用级数、大于中心处用连续分数,因此 1e-40 量级的极小 p 值也不会塌陷成 0; 临界值由同一尾概率二分反解,相对误差约 1e-10,远细于展示的 6 位小数。
支持范围:列联表最多 100 × 100,拟合优度最多 1000 个类别, 单格频数上限 1e15(不能为负);「已知 χ² 求 p」模式自由度为 1 ~ 1000000 的正整数;显著性水平 1e-14 ≤ α ≤ 0.5。 整行或整列全为 0 会使该格期望频数为 0、卡方项没有定义,工具会明确报错而不是返回无穷大。 所有计算均在浏览器本地完成,不上传数据。

常见问题

卡方检验怎么算?χ² 值和自由度的计算公式是什么?
卡方统计量只有一个公式:χ² = Σ (O − E)² / E,O 是每格的实际频数,E 是原假设成立时该格「本应」出现的期望频数,把所有格子的结果相加。两种常用检验的区别只在 E 和自由度怎么定:独立性检验(列联表)的 E = 该格所在的行合计 × 列合计 ÷ 总计,自由度 df = (行数 − 1) × (列数 − 1);拟合优度检验的 E = 总数 × 理论比例,自由度 df = 类别数 − 1 − 估计参数个数。举例:A 方案 200 人中 60 人下单、B 方案 200 人中 40 人下单,四格表为 60/140 与 40/160,n = 400,列合计为 100 与 300,每格期望频数是 50、150、50、150,χ² = 10²/50 + 10²/150 + 10²/50 + 10²/150 = 5.333333,df = (2−1)×(2−1) = 1,p = 0.020921,小于 0.05,两种方案的下单率有显著差异。
卡方检验的 p 值怎么看?χ² 要大到多少才算显著?
卡方检验只看分布的右侧单尾:不论实际频数比期望多还是少,(O − E)² 都是正的,所以 χ² 越大越说明偏离期望,p 值就是「原假设成立时出现这么大或更大 χ² 的概率」。判定规则是 p < α 就拒绝原假设,等价于 χ² 超过临界值 χ²(1−α, df)。α = 0.05 时常用的界值:df = 1 为 3.841459,df = 2 为 5.991465,df = 3 为 7.814728,df = 4 为 9.487729,df = 5 为 11.070498,df = 10 为 18.307038;α = 0.01 时 df = 1 为 6.634897,df = 2 为 9.21034。注意界值随自由度变化很大,脱离 df 谈「χ² 大于多少算显著」没有意义,本页给出的临界值已按你填的 α 和 df 精确算出,不必再翻卡方界值表。
期望频数小于 5 怎么办?什么时候要连续性校正、什么时候用 Fisher 确切概率法?
卡方检验是大样本近似方法,期望频数太小会让近似失真,通行的经验界限是:所有格子的期望频数不低于 1,且期望频数低于 5 的格子不超过总格子数的 20%。四格表(2×2)另有一套国内医学统计学教材通行的选择规则:n ≥ 40 且四个期望频数都 ≥ 5,用未校正的 Pearson χ²;n ≥ 40 但最小期望频数在 1 到 5 之间,用连续性校正(Yates)公式 χ² = Σ (|O − E| − 0.5)² / E;n < 40 或有期望频数小于 1,改用 Fisher 确切概率法。校正的影响不小:上面 60/140、40/160 的例子校正后 χ² 从 5.333333 降到 4.813333,p 从 0.020921 升到 0.02824,结论刚好在 0.05 附近时就可能反转。行列超过 2×2 时不做连续性校正,期望频数过小应先合并意义相近的类别,或增加样本量。本页结果区会按 n 与最小期望频数直接给出该用哪种方法的建议。
拟合优度检验和独立性检验有什么区别?自由度分别怎么定?
看你手里有几个变量。拟合优度检验只有一个分类变量,把实际分布和一个事先给定的理论分布比:骰子掷 120 次得到 20、22、17、18、19、24,期望各 20,χ² = 1.7,df = 6 − 1 = 5,p = 0.8889,说明看不出这颗骰子不均匀;孟德尔豌豆 315、108、101、32 对理论比 9:3:3:1,期望 312.75、104.25、104.25、34.75,χ² = 0.470024,df = 3,p = 0.925426,与理论比例高度吻合。独立性检验有两个分类变量,用同一批人交叉分类成一张表,检验行变量与列变量是否无关,自由度 df = (行数−1)×(列数−1),四格表恒为 1。还有一种「齐性检验」——比较几个组的构成比是否相同(如三个地区的血型分布)——它的数据布局、公式和自由度与独立性检验完全一样,只是抽样设计不同,用本页的「独立性检验」算即可。特别提醒:拟合优度里若理论分布的参数是用同一批数据估出来的(泊松的 λ、正态的 μ 与 σ),每估一个参数要多扣一个自由度,本页「估计参数个数」就是干这个的。
卡方检验能直接用百分比、率或者均值来算吗?
不能。χ² = Σ(O−E)²/E 里的 O 和 E 必须是实际计数(人数、件数、次数),因为统计量的大小同时取决于差异幅度和样本量。把 30% 和 20% 当成 30/70 与 20/80 填进去,等于宣称每组只有 100 人,样本量被人为改写,算出的是 χ² = 2.666667、p = 0.10247;而同样比例下每组 200 人的真实结果是 χ² = 5.333333、p = 0.020921,结论从「不显著」直接翻成「显著」。同理,均值、身高、销售额这类连续数据也不能用卡方检验,要用 t 检验或方差分析;只有先把它们分组成「合格/不合格」「高/中/低」这样的分类计数,才轮到卡方上场。还有一点常被忽略:卡方检验要求每个观测彼此独立、每人只进一个格子,同一批人前后测两次的配对计数应改用 McNemar 检验。填数时也留意:O 应是非负整数计数,本页不强制校验整数,小数或经加权、放大处理过的频数会同时改变 n 与 χ²,这类数据需改用加权卡方等方法,填之前自己确认一遍。
χ² 值很大就说明两个变量关联很强吗?Cramér's V 怎么看?
不是。χ² 与样本量近似成正比:同样的一张比例表,人数翻 10 倍,χ² 也大约翻 10 倍,所以只要样本够大,再微弱的关联也能算出 p < 0.001。判断关联强弱要看效应量,它把 χ² 除掉样本量的影响:列联表用 Cramér's V = √(χ² / (n·(min(行数, 列数) − 1))),经验界限是 0.1 弱、0.3 中、0.5 强;四格表的 V 就等于 φ 系数 = √(χ²/n);拟合优度用 Cohen's w = √(χ²/n),界限同样是 0.1 / 0.3 / 0.5。上面 A/B 方案的例子 χ² = 5.333333 已经显著,但 V = 0.11547,只是很弱的关联,说明方案对下单的影响其实有限。此外,卡方检验只回答「有没有关联」,不指出方向,也不等于因果——想知道是哪一类多了少了,要看逐格明细里的调整残差(绝对值超过 1.96 的格子就是关键格子)。
卡方检验和 t 检验、Fisher 确切概率法怎么选?
先看数据类型:比较的是「比例、构成比、有没有」这类计数资料用卡方检验(如两种方案的下单率、三个地区的血型分布);比较的是「平均值」这类计量资料用 t 检验或方差分析(如两组学生的平均分、两条产线的平均重量)。同一批数据两种方法通常不能互换——把下单人数当成 0/1 变量做 t 检验虽然近似可行,但报告口径不同,正式场合仍以卡方为准。Fisher 确切概率法不是卡方的替代对手,而是小样本下的补位:它直接用超几何分布把所有极端情形的概率加起来,不依赖大样本近似,因此 n < 40 或有期望频数小于 1 的四格表都该用它。此外,配对的四格表(同一批对象两种检测方法、治疗前后)要用 McNemar 检验,多个 2×2 表分层合并要用 Mantel–Haenszel 方法,这两种情况都不能直接套普通卡方。
卡方检验结果和 SPSS、Excel 的 CHISQ.TEST 对不上,是什么原因?
先核对四件事,多数不一致都出在这里。① 有没有连续性校正:SPSS 的四格表输出里同时有「Pearson 卡方」和「连续性校正」两行,很多教材默认读第二行,而 Excel 的 CHISQ.TEST 和 R 的 chisq.test 口径不同——R 对 2×2 表默认 correct = TRUE(做校正),Excel 不做校正,本页由你自己选,两个结果都会显示。② 填的是不是频数:把百分比或率填进去会直接改变 n。③ 期望频数怎么来:Excel 的 CHISQ.TEST 要求你自己传入期望值区域,若期望值是手动填的且合计与观测合计对不上,结果没有意义;本页的「按比例」模式会自动折算,不会出现这种错。④ 自由度:拟合优度里如果理论分布的参数是估出来的,自由度要再扣,而多数软件不会替你判断。对齐这四点后,本页与它们的结果应在展示的 6 位小数内一致。还有一个容易看岔的地方:切到「校正」后,逐格明细里的贡献值是按校正公式 (|O − E| − 0.5)²/E 算的,合计等于校正后的 χ²(表头文字仍写作 (O−E)²/E),对照 SPSS 输出时应看「连续性校正」那一行,别拿它去和未校正的 Pearson 逐格值对。