引言:理解卡方检验的基础
卡方检验(Chi-Square Test)是一种广泛应用于统计学中的非参数检验方法,主要用于分析分类变量之间的关联性或独立性。在医学、社会科学、生物学等领域,它常被用来判断两个分类变量是否相关。其中,四格表(2x2列联表)是最简单也是最常见的形式,用于处理两个二分类变量的数据。例如,在临床试验中,我们可能想比较两种药物对治愈率的影响:一组接受新药治疗,另一组接受安慰剂,然后观察治愈和未治愈的人数。
为什么需要卡方检验?因为单纯比较比例(如治愈率)可能忽略样本大小和随机变异的影响。卡方检验通过计算统计量来量化观察数据与期望数据的偏差,从而判断这种偏差是否显著。本文将从四格表的构建入手,逐步解释卡方值的计算、P值的含义,以及如何判断数据是否显著。我们将使用通俗易懂的语言,避免过多数学公式,但会提供完整的计算示例,帮助你一步步掌握。
假设我们有一个研究:调查吸烟与肺癌的关系。数据如下:
- 吸烟者中,肺癌患者100人,非患者50人。
- 非吸烟者中,肺癌患者20人,非患者80人。
这个数据可以构建一个四格表,我们将以此为例进行详细说明。记住,卡方检验的核心是检验“独立性”:两个变量是否独立?如果P值小于0.05,我们通常认为它们不独立(即有关联)。
第一部分:什么是四格表?如何构建和解读
四格表的定义和结构
四格表是卡方检验中最简单的形式,用于两个二分类变量。它像一个2x2的表格,行代表一个变量(如吸烟与否),列代表另一个变量(如肺癌与否)。每个单元格包含观察频数(observed frequency, O),即实际数据。
以吸烟与肺癌的例子为例,构建四格表:
| 肺癌(是) | 肺癌(否) | 行总计 | |
|---|---|---|---|
| 吸烟(是) | 100 (O) | 50 (O) | 150 |
| 吸烟(否) | 20 (O) | 80 (O) | 100 |
| 列总计 | 120 | 130 | 250 |
- 行总计:每个行的总和(吸烟者总计150人,非吸烟者总计100人)。
- 列总计:每个列的总和(肺癌总计120人,非肺癌总计130人)。
- 总计:所有单元格的总和(250人)。
如何解读四格表
解读四格表时,先看观察频数(O)的分布:
- 如果吸烟与肺癌独立,那么吸烟者中肺癌的比例应该与非吸烟者相似。
- 计算期望频数(expected frequency, E):E = (行总计 × 列总计) / 总计。
- 吸烟且肺癌的E = (150 × 120) / 250 = 72。
- 吸烟且非肺癌的E = (150 × 130) / 250 = 78。
- 非吸烟且肺癌的E = (100 × 120) / 250 = 48。
- 非吸烟且非肺癌的E = (100 × 130) / 250 = 52。
期望频数表:
| 肺癌(是) | 肺癌(否) | |
|---|---|---|
| 吸烟(是) | 72 (E) | 78 (E) |
| 吸烟(否) | 48 (E) | 52 (E) |
比较O和E:观察值100远大于期望值72,表明吸烟者肺癌更多,这暗示关联。但我们需要统计检验来确认是否显著。
关键点:四格表解读的第一步是计算期望频数,确保所有E ≥ 5(否则卡方检验不适用,需要Fisher精确检验)。在我们的例子中,所有E > 5,满足条件。
第二部分:卡方值的计算——量化偏差
卡方值(χ²)是衡量观察频数与期望频数偏差的统计量。公式为: χ² = Σ [(O - E)² / E] 其中,Σ表示对所有单元格求和。自由度(df)对于四格表是 (行数-1) × (列数-1) = 1。
逐步计算示例
使用我们的吸烟-肺癌数据,计算每个单元格的 (O - E)² / E:
- 吸烟且肺癌:O=100, E=72 → (100-72)² / 72 = 28² / 72 = 784 / 72 ≈ 10.89
- 吸烟且非肺癌:O=50, E=78 → (50-78)² / 78 = (-28)² / 78 = 784 / 78 ≈ 10.05
- 非吸烟且肺癌:O=20, E=48 → (20-48)² / 48 = (-28)² / 48 = 784 / 48 ≈ 16.33
- 非吸烟且非肺癌:O=80, E=52 → (80-52)² / 52 = 28² / 52 = 784 / 52 ≈ 15.08
现在求和:χ² ≈ 10.89 + 10.05 + 16.33 + 15.08 = 52.35
卡方值的解读
- χ² = 0:观察值与期望值完全一致,变量独立。
- χ² > 0:偏差越大,值越大,越可能不独立。
- 对于df=1,临界值(α=0.05)是3.84。我们的52.35远大于3.84,表明显著。
为什么这样计算? (O - E)² 捕捉偏差的平方(避免负值),除以E标准化(考虑期望大小)。在实际应用中,你可以用Excel或统计软件计算,但理解公式有助于判断异常。
注意:如果样本小,卡方值可能不准。始终检查E ≥ 5。
第三部分:P值的含义和计算——判断显著性的钥匙
P值是卡方检验的核心,它表示在变量独立的假设下,观察到当前数据(或更极端)的概率。简单说,P值小(通常<0.05),说明数据不太可能由随机产生,变量很可能相关。
P值如何从卡方值得出
P值通过卡方分布表或软件计算,基于χ²和df。对于df=1,χ²=52.35,P值极小(远小于0.001)。
手动近似:使用卡方分布表,χ²=52.35对应P<0.001。更精确地,用软件:
- 在R语言中:
pchisq(52.35, df=1, lower.tail=FALSE)→ P ≈ 10^{-12}(极小)。 - 在Python中:
from scipy.stats import chi2; 1 - chi2.cdf(52.35, 1)→ 同样极小。
P值的解读规则
- P ≥ 0.05:不显著,接受独立假设(无关联)。
- P < 0.05:显著,拒绝独立假设(有关联)。
- P < 0.01:高度显著,关联更强。
- P < 0.001:极显著。
在我们的例子中,P < 0.001,所以吸烟与肺癌显著相关。
常见误区:P值不是“关联强度”的度量,而是“证据强度”。即使P显著,关联可能弱(需结合效应大小,如相对风险)。另外,P值受样本大小影响,大样本易得小P值。
第四部分:如何判断数据是否显著——完整流程和示例
判断显著性是一个系统过程,确保结果可靠。以下是标准步骤,结合我们的例子。
步骤1: 准备数据并检查假设
- 构建四格表,确保样本随机、独立。
- 检查期望频数E ≥ 5。如果不满足,用Fisher精确检验(在R中:
fisher.test())。 - 假设:H0(零假设)= 变量独立;H1(备择)= 不独立。
步骤2: 计算卡方值
如上,χ² = 52.35。
步骤3: 确定自由度
df = 1(四格表固定)。
步骤4: 计算或查找P值
- 查表:χ²=52.35 > 3.84 (α=0.05临界),P < 0.05。
- 软件计算:如上,P ≈ 0。
步骤5: 做出判断
- 如果P ≥ 0.05:数据不显著,变量独立。例如,如果χ²=2.0,P≈0.16,则吸烟与肺癌无显著关联。
- 如果P < 0.05:数据显著,变量不独立。我们的例子显著,支持吸烟增加肺癌风险。
另一个示例:不显著的情况
假设数据为:
- 吸烟且肺癌:30 (O), E=36
- 吸烟且非肺癌:70 (O), E=64
- 非吸烟且肺癌:20 (O), E=24
- 非吸烟且非肺癌:80 (O), E=56
计算χ²:
- (30-36)²/36 = 36⁄36=1
- (70-64)²/64 = 36/64≈0.56
- (20-24)²/24 = 16/24≈0.67
- (80-56)²/56 = 576/56≈10.29 χ² ≈ 12.52
P值:χ²=12.52 > 3.84,P < 0.001,仍显著。但如果χ²=2.0,P≈0.16,则不显著。
实用工具
- Excel:用CHISQ.TEST函数,输入观察和期望范围,直接得P值。
- R:
chisq.test(matrix(c(100,50,20,80), nrow=2))→ 输出χ²、df、P。 - Python: “`python import numpy as np from scipy.stats import chi2_contingency
# 观察数据 observed = np.array([[100, 50], [20, 80]]) chi2, p, dof, expected = chi2_contingency(observed) print(f”Chi2: {chi2:.2f}, P-value: {p:.4f}“) # 输出:Chi2: 52.35, P-value: 0.0000 “`
判断提示:始终报告χ²、df、P值和样本大小。显著性水平α=0.05是惯例,但可根据领域调整(如医学用0.01)。
第五部分:常见问题和注意事项
- 样本大小:小样本易导致假阴性,大样本易假阳性。考虑功效分析。
- 方向性:卡方检验不提供方向(哪个组更高),需事后比较。
- 多重检验:如果多个四格表,调整P值(如Bonferroni校正)。
- 替代方法:如果有序分类,用Cochran-Armitage趋势检验;如果多分类,用R×C卡方。
通过以上,你现在能自信解读四格表卡方检验。实践时,用软件验证计算,确保结果可靠。如果数据显著,进一步分析效应大小以指导决策。
