首页 / 统计学教程 / 统计方法选择
统计学 多组比较 方法选择

统计方法选择:多组数据比较

基于你的本地笔记整理:从总体检验到两两比较,避免“P值美化”和I类错误膨胀

📚
学习提示: 本页根据你在 /Users/angus/Angus/Notion/训练营/Class schedule/医学统计学/Galary/统计方法的选择-CYY笔记以及我的笔记 的笔记扩展整理,已做教学化重写。
🧭

当你面对 3组及以上 的医学数据时,最常见错误是: “先做 ANOVA,再把每两组都做一次 t 检验”。这会显著增加假阳性风险。 正确流程是:先做总体检验,再按研究目的选择合适的事后比较方法。

1. 多组比较的决策流程

步骤 1

明确结局变量类型与研究目的(探索性 or 验证性)

步骤 2

先做总体检验:ANOVA 或 Kruskal-Wallis

步骤 3

总体显著后,再做合适的两两比较(Tukey / Dunnett / LSD 等)

核心原则:“先总体、后局部”。如果总体检验不显著,通常不建议继续做大量两两比较。

2. 为什么不能直接反复做 t 检验?

若有 3 组数据并进行 3 次两两 t 检验,在每次 α=0.05 的情况下,至少一次犯 I 类错误的概率会升高到:

α' = 1 - (1 - α)m = 1 - 0.953 = 0.1426

也就是 14.26%,明显高于可接受的 5%。

组数 两两比较次数 m 家族错误率 α'(α=0.05)
3组 3 14.26%
4组 6 26.49%
5组 10 40.13%

3. 总体检验怎么选?

条件 推荐总体检验 说明
近似正态 + 方差齐 单因素 ANOVA 参数检验,统计效能通常更高
非正态或分布偏态明显 Kruskal-Wallis 非参数检验,对分布假设更宽松
正态但方差不齐 Welch ANOVA 对异方差更稳健
# R: 总体检验的常见写法
# 方差分析
fit_anova <- aov(y ~ group, data = df)
summary(fit_anova)

# 非参数总体检验
kruskal.test(y ~ group, data = df)

# 正态性与方差齐性辅助判断
shapiro.test(df$y)
bartlett.test(y ~ group, data = df)

4. 两两比较方法怎么选?

方法 适用场景 特点
Tukey 探索性研究,多组两两都要比 控制多重比较错误率,稳健
Dunnett 多个处理组只与对照组比较 功效高于“全两两比较”
LSD 预先计划好的少量比较 检出率高,但更易假阳性
SNK 传统教材常见 比较次数很多时假阳性风险偏高
Bonferroni/Holm 需要严格控制I类错误 保守,显著性更难达到

建议:探索性分析优先 `Tukey/Holm`,验证性且有明确对照组时优先 `Dunnett`。

# R: 常见事后比较
# Tukey
TukeyHSD(fit_anova)

# 计划性比较(需配合研究设计解释)
pairwise.t.test(df$y, df$group, p.adjust.method = "holm")

# 非参数场景下的两两比较
pairwise.wilcox.test(df$y, df$group, p.adjust.method = "BH")

5. 两个高频补充:I类/II类错误 与 z/t 检验

I类错误(假阳性)

原假设真实却被拒绝。多重比较次数越多,I类错误累积越明显。

II类错误(假阴性)

原假设错误却未拒绝。常见于样本量不足、效应量小的研究。

检验 常见使用场景 备注
z 检验 大样本且总体方差已知(理论条件) 实际医学研究中不常满足
t 检验 总体方差未知(最常见) 即便样本量较大,实践中也常优先 t 检验

✅ 论文写作可直接套用的统计流程描述

“连续变量先进行正态性与方差齐性检验。满足条件时采用单因素方差分析(ANOVA)进行总体比较; 不满足条件时采用 Kruskal-Wallis 检验。总体检验显著后,根据研究目的进行事后两两比较: 多组探索性比较采用 Tukey(或 Holm 校正),对照组比较采用 Dunnett。双侧检验,P<0.05 为差异有统计学意义。”