事后多重比较
这个方法是做什么的
方差分析的 F 检验只回答“k 个组的均值是不是全都相等”;它显著了,你仍然不知道是哪几对之间有差别。这个模块把这一步补完:它自己先跑一遍单因素方差分析(卡②给出完整的方差分解表),再对全部 k(k−1)/2 对做两两比较,逐对给出均值差、标准误、95% 置信区间、校正后的 p 与 Cohen's d。所以不必先去「单因素方差分析」跑一遍再回来。
事后检验方法在控件里选,共六种:LSD、Bonferroni、Sidak、Scheffe、Tukey(默认)、Tamhane's T2。卡①逐条查前提——残差的 Shapiro-Wilk 正态性、基于中位数的 Levene 方差齐性、各组样本量是否均衡——并直接写明每一条对方法选择意味着什么;卡④除两两比较表外,还给整体效应量 η²(带 95% 置信区间)、ω² 与 Cohen's f;打开“字母标注法”开关,会多出一张论文里常见的 a/b/c 标注表,小写对应 α=0.05、大写对应 α=0.01。
需要准备什么数据
- 放入 [定量] 检验变量Y:1 个,定量变量(数值)
- 放入 [定类] 分组变量X:1 个,定类变量(分组/标签)
数据要求
- 数据表至少 10 行。
- 单列缺失率不超过 20%。
- 不接受取值全都一样的列(零方差列没有可分析的变异)。
- 「放入 [定类] 分组变量X」的类别数需在 2~20 之间。
- 「放入 [定类] 分组变量X」的每一组至少 3 个样本。
以上条目由系统从该方法的校验规则直接生成,与上传数据时的实际拦截规则一致。
什么时候用它
- 单因素方差分析整体显著后,定位到底是哪几对组之间有差异
- 三种及以上处理、方案、地区在同一个数值指标上的两两对比
- 需要一张带 a/b/c 字母标注的组均值表,直接誊进论文
- 需要逐对的均值差及其置信区间,而不只是一个 F 值
- 各组方差不齐,需要改用 Tamhane's T2 做两两比较
前提与方差分析完全相同:观测独立、残差近似正态、各组方差齐。分组变量至少 2 个水平、最多 20 个,每组至少 3 个有效观测(否则组内均方 MSE 估不稳)。要注意:方差齐性虽由卡①的 Levene 检验给出证据,换不换方法得你自己在控件里改,模块不会替你自动切换。
什么时候不要用它
- 分组变量只有两个水平:只有一对可比,多重比较无事可做,用「独立样本T检验」更直接,它还会在方差不齐时自动切到 Welch。
- 残差严重偏离正态且各组样本量小:卡①给出的建议是改用 Kruskal-Wallis 检验、事后配 Dunn 检验,对应「多独立样本Kruskal-Wallis检验」。
- 有两个及以上分组因素,或关心交互作用:用「双因素方差分析」或「多因素方差分析」,本模块只处理单因素。
- 同一批被试在多个时点上的重复测量:本模块把每一行都当独立观测,个体之间的底子差异全被丢进组内误差 MSE,配对比较的标准误因而被高估——检验偏保守,本该发现的差异被白白错过。应改用「重复测量方差分析」,它把被试间变异单独分离出去,不留在误差项里。
- 想在比较组均值时扣掉某个协变量(比较疗效时控制基线):用「协方差分析」。
- 比较的是各组的比例而不是均值:多组独立用「卡方检验」,同一批人多个条件用「Cochran's Q 检验」。
容易误读的地方
- “LSD 更容易出显著”不是优点,是它压根没做校正。 LSD 就是拿池化的 MSE 做一串两两 t 检验,p 值原样输出。k=5 时有 10 对,每对各按 α=0.05 判一次;若各组真的没有差别,按各次比较独立粗算,至少出现一次假阳性的概率接近 40%。这就是族系错误率:星号变多不代表你发现了更多东西,只代表你把犯错的机会分成十次用掉了。卡⑤的表注也会专门加一句“LSD 不做多重性校正,族系误差率会随比较次数上升”。
- 六种方法各自控制不同的东西,必须在看结果之前选定。 方差齐、样本量相近、要做全部两两比较 → Tukey,这个场景下族系误差率控制最优、效能也最好;只关心事先指定的少数几对 → Bonferroni 或 Sidak;要检验任意线性对比(比如“前两组合起来 vs 后三组”)→ Scheffe,最保守;方差不齐 → Tamhane's T2。挨个跑一遍再挑星号最多的那次去报告,是最典型的 p-hacking,因为这些方法的差别恰恰就在于各自控制什么错误率。
- 整体 F 显著而两两全都不显著,是正常现象,不是算错了。 F 检验用上了全部组的信息,两两比较各自只用两组、还要付校正的代价,所以当整体效应由多组的微小差异累积而成时,校正后可能一对都过不了线。反过来也一样:F 不显著时本模块仍会把两两比较表算出来,卡⑤会注明那些结果“仅供探索性参考”——那里的星号不能当结论用。
- 选 Tamhane's T2 时,均值差的 95% 置信区间会留空。 这不是缺功能。Tamhane 对每一对用各自的 Welch 自由度与非池化标准误,而表里的标准误列是基于池化 MSE 算的,两者口径不同,硬套一个统一临界值只会给出错误的区间——表注把这个原因写了出来。确实方差不齐又需要区间估计,可以逐对用「独立样本T检验」去取,但那样得到的区间没有做过多重比较校正,不能与这张表的 p 值混着报。
- Cohen's d 的置信区间和校正后的 p 对不上,是预期行为。 表里 d 的 95% 区间是逐对的、未校正的非中心 t 区间,而 p 已按你选的方法校正过,于是会出现“p 校正后不显著、d 的区间却不含 0”这种组合。判断显著性看 p 和“差值的 95%CI”(后者的临界值与所选方法口径一致,区间不含 0 与 p<0.05 必然一致),d 的区间只用来谈效应有多大。
左边是同一批对象测两次,分析的是每个人自己的差值,个体差异被抵消掉;右边是两拨不同对象各测一次,分析的是两组的整体水平,个体差异留在组内。数据是哪一种,决定了该用哪一族方法——摆错了不会报错,只会悄悄换掉你在检验的东西。
4 组要做 6 次两两检验,每次 5% 的假阳性概率累积到 26.5%。方差分析先用一次整体检验把这个概率压回 5%,显著之后再做自带校正的事后比较——绕开整体检验直接两两比,等于把这笔账藏了起来。
报告里有什么
- 输出结果一:数据概览与前提检验
- 输出结果二:方差分析主结果表
- 输出结果三:各组均值对比图
- 输出结果四:效应量与事后多重比较
- 输出结果五:结论与学术表述
上图以图形化的方式直观展示了不同组别下检验变量的均值水平,可以快速地对各组均值进行高低对比。