# 一元方差分析 ANOVA

对于多个总体数据,有时需要考察它们的均值是否存在显著差异
例如,比较不同教学方法对学生成绩的影响,或者不同药物对患者康复的效果

方差分析 (Analysis of Variance, ANOVA) 是一种用于比较多个样本均值是否存在显著差异的统计方法
其基本思想是将总变异分解为组间变异和组内变异两部分,通过比较这两部分的变异来判断组均值是否存在显著差异

考虑 kk 个正态总体,总体方差可以未知,此处假设相等,即 Πi:N(μi,σ2)\Pi_i: N(\mu_i, \sigma^2)

设置原假设

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

即,问题为 考察各总体均值是否相等

kk 个总体中各自取 nin_i 个样本

Xi1,Xi2,,Xini,i=1,2,,kX_{i1}, X_{i2}, \dots, X_{in_i}, \quad i=1,2,\dots,k

第一个下标指示总体编号,第二个下标指示样本编号

那么对于各个总体,有

1σ2j=1ni(XijXi)2χni12\frac{1}{\sigma^2}\displaystyle\sum_{j=1}^{n_i}(X_{ij} - \overline X_i)^2 \sim \chi^2_{n_i - 1}

其中 Xi=1nij=1niXij\overline X_i = \dfrac{1}{n_i}\displaystyle\sum_{j=1}^{n_i} X_{ij} 为第 ii 个样本的样本平均

利用 χ2\chi^2 分布的可加性,有

1σ2i=1kj=1ni(XijXi)2χ(i=1k(ni1))2=χnk2\frac{1}{\sigma^2}\displaystyle\sum_{i=1}^{k}\sum_{j=1}^{n_i}(X_{ij} - \overline X_i)^2 \sim \chi^2_{\left(\displaystyle\sum_{i=1}^{k}(n_i - 1)\right)} = \chi^2_{n - k}

其中 n=i=1knin = \displaystyle\sum_{i=1}^{k} n_i 为总样本量


现在,如果原假设 H0H_0 成立,那么各样本来自同一总体(均值和方差都相等)
所以可以将样本视作从 N(μ,σ2)N(\mu, \sigma^2) 中抽取的,数量为 n=i=1knin = \displaystyle\sum_{i=1}^{k} n_i 的样本
同样可以制作服从 χ2\chi^2 分布的统计量

1σ2i=1kj=1ni(XijX)2χn12\frac{1}{\sigma^2}\displaystyle\sum_{i=1}^{k}\sum_{j=1}^{n_i}(X_{ij} - \overline X)^2 \sim \chi^2_{n - 1}

其中 X=1ni=1kj=1niXij\overline X = \dfrac{1}{n}\displaystyle\sum_{i=1}^{k}\sum_{j=1}^{n_i} X_{ij} 为所有样本的总体平均

为了实际分析各组数据分散情况,定义三组平方和

  • 组间变异平方和 (Sum of Squares Between, SSB)「級間変動」
  • 组内变异平方和 (Sum of Squares Within, SSW)「級内変動」
  • 总变异平方和 (Total Sum of Squares, TSS)「全変動」

sis_i 为第 ii 组样本的标准差

S1=SSB=i=1kni(XiX)2S_1 = SSB = \displaystyle\sum_{i=1}^{k} n_i (\overline X_i - \overline X)^2

S2=SSW=i=1k(ni1)si2=i=1kj=1ni(XijXi)2S_2 = SSW = \displaystyle\sum_{i=1}^{k} (n_i - 1) s_i^2 = \displaystyle\sum_{i=1}^{k}\sum_{j=1}^{n_i}(X_{ij} - \overline X_i)^2

S=TSS=i=1kj=1ni(XijX)2S = TSS = \displaystyle\sum_{i=1}^{k}\sum_{j=1}^{n_i}(X_{ij} - \overline X)^2

此时容易证明以下等式

S=S1+S2S = S_1 + S_2

由于第 ii 组样本的组内数据差异 XijXiX_{ij} - \overline X_i 独立于其平均 Xi\overline X_i
并且 Xi\overline X_i 实际上是 XijX_{ij} 的函数
所以可以进一步得到与总平均的独立性,即 XijXiX_{ij} - \overline X_i 独立于 X\overline X
因此 S1S_1S2S_2 独立,考虑等式

Sσ2=S1σ2+S2σ2\frac{S}{\sigma^2} = \frac{S_1}{\sigma^2} + \frac{S_2}{\sigma^2}

此时

  • 等式左侧服从 χn12\chi^2_{n - 1} 分布
  • 等式右侧互相独立,第二项服从 χnk2\chi^2_{n - k} 分布

那么,右侧第一项必然服从 χk12\chi^2_{k - 1} 分布

因此,可以构造服从 FF 分布的统计量

F=S1/(k1)σ2S2/(nk)σ2=S1(nk)S2(k1)Fk1,nkF = \frac{S_1/(k - 1)\sigma^2}{S_2/(n - k)\sigma^2} = \frac{S_1(n-k)}{S_2(k - 1)} \sim F_{k - 1, n - k}

推导基于假设:原假设 H0H_0 成立,即各总体均值相等
所以 FF 统计量可以用于检验该假设

根据 FF 分布的性质,可以通过查表得到临界值 Fk1,nk(α)F_{k - 1, n - k}(\alpha)
如果计算得到的 FF 统计量大于该临界值,则拒绝原假设 H0H_0,认为各总体均值存在显著差异
否则,不拒绝原假设 H0H_0,认为各总体均值无显著差异

实际上,如果原假设 H0H_0 不成立,那么组间变异 S1S_1 显著增大的情况下,组内变异 S2S_2 相对较小
因此 FF 统计量会显著增大,从而更容易超过临界值,导致拒绝原假设 H0H_0
FF 分布的统计量来判断是否拒绝原假设 H0H_0 是合理的做法

在危险度 α\alpha

  • F>Fk1,nk(α)F \gt F_{k - 1, n - k}(\alpha),则拒绝原假设 H0H_0,认为各总体均值存在显著差异
  • FFk1,nk(α)F \leq F_{k - 1, n - k}(\alpha),则不拒绝原假设 H0H_0,认为各总体均值无显著差异

例题
某化学药品同时由 44 家不同厂家生产,对其药物成分纯度进行测定,得到以下数据(单位:百分比)

第一厂家第二厂家第三厂家第四厂家
样本数量 nin_i1717151514141818
样本平均 Xi\overline{X}_i18.018.018.518.517.917.918.318.3
样本标准差 si2s_i^2(0.83)2(0.83)^2(0.75)2(0.75)^2(1.00)2(1.00)^2(0.95)2(0.95)^2

在危险度 0.050.050.010.01 下,能否认为各厂家生产的药品纯度存在显著差异?

总样本量 n=17+15+14+18=64n = 17 + 15 + 14 + 18 = 64
总平均 X=17×18.0+15×18.5+14×17.9+18×18.364=18.1796875\overline{X} = \dfrac{17 \times 18.0 + 15 \times 18.5 + 14 \times 17.9 + 18 \times 18.3}{64} = 18.1796875
组间变异平方和 SSB

S1=17(18.018.1796875)2+15(18.518.1796875)2+14(17.918.1796875)2+18(18.318.1796875)2=3.44359375S_1 = 17(18.0 - 18.1796875)^2 + 15(18.5 - 18.1796875)^2 + 14(17.9 - 18.1796875)^2 + 18(18.3 - 18.1796875)^2 = 3.44359375

SSB 的自由度 k1=41=3k - 1 = 4 - 1 = 3
组内变异平方和 SSW

S2=(171)(0.83)2+(151)(0.75)2+(141)(1.00)2+(181)(0.95)2=47.2399S_2 = (17 - 1)(0.83)^2 + (15 - 1)(0.75)^2 + (14 - 1)(1.00)^2 + (18 - 1)(0.95)^2 = 47.2399

SSW 的自由度 nk=644=60n - k = 64 - 4 = 60
计算 FF 统计量

F=S1/(k1)S2/(nk)=3.44359375/347.2399/60=1.45791746F3,60F = \frac{S_1/(k - 1)}{S_2/(n - k)} = \frac{3.44359375/3}{47.2399/60} = 1.45791746 \sim F_{3, 60}

查询临界值

  • 在危险度 0.050.05 下,F3,60(0.05)=2.758F_{3, 60}(0.05) = 2.758
  • 在危险度 0.010.01 下,F3,60(0.01)=4.126F_{3, 60}(0.01) = 4.126

由于 F=1.45791746F = 1.45791746 均小于上述两个临界值
所以在危险度 0.050.050.010.01 下均不拒绝原假设 H0H_0
结论:在危险度 0.050.050.010.01 下,不能认为各厂家生产的药品纯度存在显著差异