Skip to content

方差分析

在前面的章节中,我们学习了两个独立样本均值差异的假设检验。但在实际研究里,我们往往需要比较三个或更多个处理组的效果。例如,研究三种不同的教学方法对学生成绩是否有显著差异,或者四种不同的肥料对农作物产量的影响。如果依然使用 t 检验进行两两比较,不仅繁琐,更严重的是会迅速增加 第一类错误 (Type I Error) 的发生概率。方差分析 (Analysis of Variance, ANOVA) 由英国统计学家 R.A. Fisher 创立,它通过分解观测数据的变异性,来检验多个总体均值是否相等,是推断统计中最为重要的工具之一。

1. 方差分析的基本概念

方差分析的核心思想是将数据的总变异分解为由实验因素引起的变异和由随机误差引起的变异,通过比较这两部分变异的大小来判断实验因素是否具有统计学意义。

定义 因素 (Factor) 指在实验中研究的变量,即可能引起观测值变化的某种原因。例如,教学方法就是一个因素。

定义 水平 (Level) 指因素的具体表现形式或不同的等级。如果教学方法分为讲授法、研讨法和实验法,那么这个因素就有 3 个水平。

定义 观测值模型 (Observation Model):在单因素方差分析中,设因素有 kk 个水平,第 ii 个水平下的第 jj 个观测值为 XijX_{ij},模型表示为:

Xij=μ+αi+ϵij,ϵijN(0,σ2) i.i.d.X_{ij} = \mu + \alpha_i + \epsilon_{ij}, \quad \epsilon_{ij} \sim N(0, \sigma^2) \text{ i.i.d.}

其中 μ\mu 是总均值,αi\alpha_i 是第 ii 个水平的效应(满足 αi=0\sum \alpha_i = 0),ϵij\epsilon_{ij} 是随机误差。

在进行方差分析之前,数据必须满足以下三个基本假设:

  1. 正态性: 每个水平下的总体都服从正态分布。
  2. 方差齐性: 不同水平下的总体方差 σ2\sigma^2 相等。
  3. 独立性: 所有观测值 XijX_{ij} 都是相互独立的随机样本。

我们的原假设 H0H_0 通常设定为各组均值相等,即:

H0:μ1=μ2==μkH_0: \mu_1 = \mu_2 = \dots = \mu_k

对应的备择假设 H1H_1 则为:各组均值不全相等。

2. 单因素方差分析

单因素方差分析只研究一个因素对观测指标的影响。

2.1 平方和分解

为了衡量变异,我们需要引入平方和的概念。设共有 kk 个组,总样本量为 n=nin = \sum n_iXˉi\bar{X}_i 为第 ii 组的样本均值,Xˉ\bar{X} 为全体数据的总均值。

定义 总平方和 (Total Sum of Squares, SST) 反映全体观测值与总均值之间的总变异:

SST=i=1kj=1ni(XijXˉ)2SST = \sum_{i=1}^k \sum_{j=1}^{n_i} (X_{ij} - \bar{X})^2

定义 组间平方和 (Between-group Sum of Squares, SSA) 反映不同水平之间的变异,也称处理平方和:

SSA=i=1kni(XˉiXˉ)2SSA = \sum_{i=1}^k n_i (\bar{X}_i - \bar{X})^2

定义 组内平方和 (Within-group Sum of Squares, SSE) 反映同一水平内部各观测值之间的随机变异,也称误差平方和:

SSE=i=1kj=1ni(XijXˉi)2SSE = \sum_{i=1}^k \sum_{j=1}^{n_i} (X_{ij} - \bar{X}_i)^2

方差分析的基础是核心恒等式:SST=SSA+SSESST = SSA + SSE

证明平方和分解

SST=ij(XijXˉ)2=ij[(XijXˉi)+(XˉiXˉ)]2=ij(XijXˉi)2+ij(XˉiXˉ)2+2ij(XijXˉi)(XˉiXˉ)=SSE+SSA+2i[(XˉiXˉ)j(XijXˉi)]\begin{aligned} SST &= \sum_i \sum_j (X_{ij} - \bar{X})^2 = \sum_i \sum_j [(X_{ij} - \bar{X}_i) + (\bar{X}_i - \bar{X})]^2 \\ &= \sum_i \sum_j (X_{ij} - \bar{X}_i)^2 + \sum_i \sum_j (\bar{X}_i - \bar{X})^2 + 2 \sum_i \sum_j (X_{ij} - \bar{X}_i)(\bar{X}_i - \bar{X}) \\ &= SSE + SSA + 2 \sum_i [(\bar{X}_i - \bar{X}) \sum_j (X_{ij} - \bar{X}_i)] \end{aligned}

由于 j(XijXˉi)=0\sum_j (X_{ij} - \bar{X}_i) = 0(样本偏离均值之和为 0),交叉项为 0,故 SST=SSA+SSESST = SSA + SSE 得证。

2.2 F 统计量

为了消除自由度的影响,我们需要计算均方。

定义 均方 (Mean Square) 是平方和与其对应自由度的比值。 组间均方为 MSA=SSAk1MSA = \frac{SSA}{k-1}。 组内均方为 MSE=SSEnkMSE = \frac{SSE}{n-k}

如果 H0H_0 为真,即各组之间没有实质差异,那么 MSAMSAMSEMSE 都是对误差方差 σ2\sigma^2 的无偏估计。如果 H0H_0 为假,由于组间差异的存在,MSAMSA 会显著大于 MSEMSE。因此构造 FF 统计量:

F=MSAMSEF(k1,nk)F = \frac{MSA}{MSE} \sim F(k-1, n-k)

在显著性水平 α\alpha 下,如果 F>Fα(k1,nk)F > F_{\alpha}(k-1, n-k),则拒绝 H0H_0

2.3 方差分析表

我们将上述计算过程汇总为标准 ANOVA 表。

变异来源平方和 (SS)自由度 (df)均方 (MS)F 值P 值
组间 (因素)SSAk1k-1MSAMSA/MSEP(F>f)P(F > f)
组内 (误差)SSEnkn-kMSE
总计SSTn1n-1

数值例题 1: 某研究调查了三种不同品牌的化肥对玉米产量的影响。每种化肥随机应用于 5 块试验田,结果如下(产量单位:kg): A 品牌: 20, 22, 19, 21, 23 (均值 21) B 品牌: 25, 28, 26, 27, 24 (均值 26) C 品牌: 18, 17, 20, 19, 21 (均值 19) 总均值 Xˉ=22\bar{X} = 22

计算可得: SSA=5[(2122)2+(2622)2+(1922)2]=5(1+16+9)=130SSA = 5 \cdot [(21-22)^2 + (26-22)^2 + (19-22)^2] = 5 \cdot (1 + 16 + 9) = 130SSE=10+10+10=30SSE = 10 + 10 + 10 = 30(每组组内离差平方和均为 10) SST=130+30=160SST = 130 + 30 = 160

ANOVA 表:

来源SSdfMSF
组间13026526
组内30122.5
总计16014

查表 F0.05(2,12)=3.89F_{0.05}(2, 12) = 3.89。由于 26>3.8926 > 3.89,拒绝 H0H_0,认为三种化肥对产量有显著影响。

2.4 多重比较

当 ANOVA 拒绝原假设后,我们只知道至少有两个均值不等,但不知道具体是哪两组之间存在差异。这时需要进行事后检验。

定义 多重比较 (Multiple Comparisons) 是在方差分析发现显著差异后,对每一对可能的组均值进行差异性检验的过程。

常见的校正方法有:

  1. Bonferroni 校正: 简单地将总显著性水平 α\alpha 除以比较次数 mm,即每次比较使用 α=α/m\alpha' = \alpha/m
  2. Tukey HSD 方法: 基于学生化范围分布(q 分布),适合样本量相等的情况,能有效控制全族错误率。

3. 双因素方差分析

在实际问题中,观测指标往往受两个因素的影响。例如,农作物产量既受肥料影响(因素 A),也受灌溉方式影响(因素 B)。

3.1 无交互作用的双因素方差分析

假设因素 A 有 rr 个水平,因素 B 有 ss 个水平,且每个组合下只有一个观测值。模型为:

Xij=μ+αi+βj+ϵijX_{ij} = \mu + \alpha_i + \beta_j + \epsilon_{ij}

平方和分解为:SST=SSA+SSB+SSESST = SSA + SSB + SSE。这里 SSESSE 代表了除了因素 A 和 B 以外的所有随机误差。

数值例题 2: 比较 3 种车型 (A) 在 4 种路面 (B) 上的油耗。

车\路路1路2路3路4均值
车1791199
车21012121011
车31313151313.5
均值1011.3312.6710.6711.17

r=3,s=4r = 3, s = 4,总均值 Xˉ=7+9++1312=1341211.17\bar{X} = \frac{7+9+\cdots+13}{12} = \frac{134}{12} \approx 11.17

SSA(车型)=4[(911.17)2+(1111.17)2+(13.511.17)2]=4(4.71+0.03+5.43)40.67= 4 \cdot [(9-11.17)^2 + (11-11.17)^2 + (13.5-11.17)^2] = 4 \cdot (4.71 + 0.03 + 5.43) \approx 40.67。 SSB(路面)=3[(1011.17)2+(11.3311.17)2+(12.6711.17)2+(10.6711.17)2]=3(1.37+0.03+2.25+0.25)11.67= 3 \cdot [(10-11.17)^2 + (11.33-11.17)^2 + (12.67-11.17)^2 + (10.67-11.17)^2] = 3 \cdot (1.37 + 0.03 + 2.25 + 0.25) \approx 11.67。 SST =(XijXˉ)256.67= \sum\sum(X_{ij} - \bar{X})^2 \approx 56.67。 SSE =SSTSSASSB4.33= SST - SSA - SSB \approx 4.33

ANOVA 表:

来源SSdfMSF
车型 (A)40.67220.3328.15
路面 (B)11.6733.895.38
误差4.3360.72
总计56.6711

如果 α=0.05\alpha = 0.05,查表 F0.05(2,6)=5.14F_{0.05}(2, 6) = 5.14F0.05(3,6)=4.76F_{0.05}(3, 6) = 4.76。车型的 F=28.15>5.14F = 28.15 > 5.14,有显著影响;路面的 F=5.38>4.76F = 5.38 > 4.76,也有显著影响。

3.2 有交互作用的双因素方差分析

当一个因素的影响程度依赖于另一个因素所处的水平时,就称这两个因素存在交互作用。

定义 交互作用 (Interaction) 指两个因素的组合对结果产生的影响,超出了各自独立作用的简单加和。

有交互作用的模型(每个组合下有 mm 个重复观测):

Xijk=μ+αi+βj+(αβ)ij+ϵijkX_{ijk} = \mu + \alpha_i + \beta_j + (\alpha\beta)_{ij} + \epsilon_{ijk}

平方和分解为:SST=SSA+SSB+SS(AB)+SSESST = SSA + SSB + SS(AB) + SSE

数值例题 3: 研究不同温度 (A1, A2) 和压力 (B1, B2) 对化学反应产率的影响,每个组合进行 3 次重复试验。 计算得到各部分 SS 如下:SSA=40, SSB=30, SS(AB)=20, SSE=24。 总观测数 n=223=12n = 2 \cdot 2 \cdot 3 = 12

来源SSdfMSF
温度 (A)4014013.33
压力 (B)3013010.00
A*B 交互201206.67
误差2483
总计11411

α=0.05\alpha = 0.05,查表 F0.05(1,8)=5.32F_{0.05}(1, 8) = 5.32。三个 F 值均大于临界值,说明温度、压力以及它们的交互作用对产率均有显著影响。

4. 方差分析的假设检验

方差分析的有效性依赖于前提假设的成立。

  1. 正态性检验: 常用 Shapiro-Wilk 检验或观察 Q-Q 图。如果残差沿对角线分布,则满足正态性。
  2. 方差齐性检验:
    • Bartlett 检验: 对数据正态性敏感。
    • Levene 检验: 对正态性不敏感,更为稳健。

如果违反假设:

  • 如果方差不齐,可以尝试对数变换、平方根变换等。
  • 如果严重偏离正态分布,可采用非参数统计方法,如 Kruskal-Wallis 检验(单因素)或 Friedman 检验(随机区组)。

参考文献

  1. Fisher, R. A. (1925). Statistical Methods for Research Workers. Oliver and Boyd.
  2. Montgomery, D. C. (2017). Design and Analysis of Experiments. Wiley.
  3. 贾俊平, 何晓群, 金勇进. (2021). 统计学 (第 7 版). 中国人民大学出版社.