3. 多组实验数据的方差齐性检验与选择
问题定位:三组以上均值比较前的前提检查
单因素方差分析(One-way ANOVA)要求各组数据来自正态总体且方差相等。当实验设计包含三组及以上处理水平时,直接比较均值前必须先检验方差齐性。本节以某材料在不同固化温度(A=60℃、B=80℃、C=100℃、D=120℃)下的抗压强度测试为例,每组 8 个重复样本,共 32 个观测值,演示 Levene 检验与 Bartlett 检验的完整执行路径与判读逻辑。
两类检验的适用边界不同:Bartlett 检验对正态性偏离极为敏感,若数据存在轻度偏态或离群点,容易把非正态误判为方差不齐;Levene 检验(尤其基于中位数的 Brown-Forsythe 变体)对非正态更稳健。因此实践中常以 Levene 为主判据、Bartlett 为辅助参照,两者结论冲突时优先采信 Levene。
检验实现:Levene 与 Bartlett 的完整计算
下面用 Python 完成两项检验。数据为教学示例,按固化温度分组录入,可直接运行。Levene 检验采用中位数中心化(center='median'),即 Brown-Forsythe 形式;Bartlett 检验直接调用 scipy.stats.bartlett。
import numpy as np
from scipy import stats
# 教学示例数据:4 个固化温度水平,每组 8 个抗压强度观测值 (MPa)
groups = {
"60C": [42.1, 43.5, 41.8, 44.0, 42.7, 43.2, 41.5, 43.9],
"80C": [46.3, 47.1, 45.8, 46.9, 47.5, 46.0, 45.5, 47.2],
"100C": [49.2, 50.6, 48.7, 51.3, 49.8, 50.1, 48.9, 52.0],
"120C": [47.8, 49.5, 46.2, 51.8, 48.3, 50.7, 45.9, 52.4],
}
data = list(groups.values())
labels = list(groups.keys())
# 各组描述统计
for name, g in groups.items():
g = np.array(g)
print(f"{name}: mean={g.mean():.2f}, var={g.var(ddof=1):.3f}, n={len(g)}")
# Levene 检验(中位数中心化,稳健)
lev_stat, lev_p = stats.levene(*data, center='median')
# Bartlett 检验(要求正态)
bar_stat, bar_p = stats.bartlett(*data)
print(f"\nLevene W={lev_stat:.4f}, p={lev_p:.4f}")
print(f"Bartlett B={bar_stat:.4f}, p={bar_p:.4f}")
alpha = 0.05
print("\n判读:")
print("Levene :", "方差齐性成立" if lev_p >= alpha else "方差不齐")
print("Bartlett:", "方差齐性成立" if bar_p >= alpha else "方差不齐")
示例数据下,各组方差分别约为 0.86、0.44、1.35、5.10,120℃ 组明显偏大。预期 Levene 与 Bartlett 均给出较小 p 值,但 Bartlett 因对大方差组更敏感,p 值通常更小。实际运行时以输出为准,不应把预期值当作实测结论。
结果判读与后续方法选择依据
判读遵循两条规则:其一,以 Levene 的 p 值为主要依据,p ≥ 0.05 视为方差齐性成立;其二,若 Levene 与 Bartlett 结论冲突,检查各组正态性,非正态时以 Levene 为准。下表给出本例的判读与对应方法选择逻辑。
| 检验 | 统计量 | p 值(示例预期) | 结论 | 后续方法 |
|---|---|---|---|---|
| Levene(中位数) | W | < 0.05 | 方差不齐 | Welch ANOVA + Games-Howell |
| Bartlett | B | < 0.05 | 方差不齐 | 同上,作辅助确认 |
| 若 Levene p ≥ 0.05 | — | ≥ 0.05 | 方差齐性成立 | 标准 ANOVA + Tukey HSD |
当样本量不均衡(各组 n 不同)时,方差齐性检验的结论更需谨慎:Levene 在 n 差异大时检验功效下降,此时可结合方差比(最大方差/最小方差)作辅助判断,比值超过 4 时即使 p 略大于 0.05 也建议改用 Welch 方法。
Bartlett 检验的前提是各组数据服从正态分布。若数据存在离群点或明显偏态,Bartlett 的 p 值会被系统性压低,导致“方差不齐”的假阳性。此时不应据此直接放弃标准 ANOVA,而应以 Levene 结果为准,并检查离群点的来源。
可复用判读清单
- 先做各组 Shapiro-Wilk 正态性检验,记录各组 p 值。
- 正态成立:同时运行 Bartlett 与 Levene,比较两者结论是否一致。
- 正态不成立:只运行 Levene(中位数中心化),忽略 Bartlett。
- 以 Levene p ≥ 0.05 判为方差齐性成立,进入标准 ANOVA 路线。
- Levene p < 0.05 判为方差不齐,改用 Welch ANOVA,事后比较用 Games-Howell。
- 样本量不均衡时,补充方差比检查,比值 > 4 倾向稳健方法。