ARTICLE
Kruskal-Wallis检验
Kruskal-Wallis检验 (Kruskal-Wallis Test) Kruskal-Wallis检验 (Kruskal-Wallis Test),亦称 Kruskal-Wallis H检验,是一种基于秩 (Rank) 的非参数统计检验方法,用于比较三个或更多独立样本是否来自同一分布。它是曼-惠特尼U检验 (Mann-Whitney U Test)
Kruskal-Wallis检验 (Kruskal-Wallis Test)
Kruskal-Wallis检验 (Kruskal-Wallis Test),亦称 Kruskal-Wallis H检验,是一种基于秩 (Rank) 的非参数统计检验方法,用于比较三个或更多独立样本是否来自同一分布。它是曼-惠特尼U检验 (Mann-Whitney U Test) 对两组以上情形的推广,同时也是单因素方差分析 (One-Way ANOVA) 的非参数替代方案。
背景与动机
在实际研究中,当需要比较多个独立组的集中趋势时,最常用的方法是单因素方差分析 (ANOVA)。然而,ANOVA 依赖于若干严格的假设,包括:
当这些假设(尤其是正态性和方差齐性)不成立时,ANOVA 的结果可能不可靠。特别是当样本量较小、数据呈现明显偏态、或存在异常值 (Outliers) 时,ANOVA 的第一类错误率会偏离名义水平。此时,Kruskal-Wallis检验作为一种不依赖总体分布假设的方法,提供了更为稳健的选择。它由 William Kruskal 和 W. Allen Wallis 于 1952 年提出。
基本思想与原理
Kruskal-Wallis检验的核心思想是将所有组的观测值合并在一起进行排序,然后基于各组秩和的差异来判断各组是否存在显著差异。其零假设和备择假设如下:
- 零假设 :所有 个组来自同一总体分布,或来自具有相同中位数的分布。
- 备择假设 :至少有一个组的数据倾向于比其他组更大或更小(即至少一个组的总体分布位置与其他组不同)。
检验的基本逻辑是:如果零假设为真,即 个样本来自同一总体,那么将这些观测值混合排序后,各组的平均秩应该大致相等。反之,如果某个组的观测值系统性地偏高或偏低,则该组的平均秩会显著偏离总体平均秩。
检验统计量
设从 个总体中分别抽取容量为 的独立样本,总样本容量为 。Kruskal-Wallis检验统计量 的计算步骤如下:
- 混合排序: 将所有 个观测值从小到大排列,并赋予秩 (Rank) 。若出现结 (Ties),则取平均秩。
- 计算秩和: 令 为第 组所有观测值的秩之和。
- 计算检验统计量: \[ H = \frac{12}{N(N+1)} \sum_{i=1}^{k} \frac{R_i^2}{n_i} - 3(N+1) \] 当存在大量结(ties)时,需对 进行校正: \[ H_c = \frac{H}{1 - \frac{\sum_{j=1}^{m} (t_j^3 - t_j)}{N^3 - N}} \] 其中 为结的组数, 为第 组结的大小。
在零假设下,当每个组的样本量 足够大时(通常认为 ),统计量 近似服从自由度为 的卡方分布 (Chi-Square Distribution)。当样本量较小时,应查阅精确的 Kruskal-Wallis 检验临界值表。
应用条件与假设
与 ANOVA 相比,Kruskal-Wallis检验的假设更为宽松:
- 样本独立性: 各组内的观测值相互独立,且各组之间也相互独立。
- 因变量的测量尺度: 因变量可以是有序变量 (Ordinal Variable) 或连续变量 (Continuous Variable)。
- 分布形状相似性: 严格来说,零假设为所有组来自同一分布。但在实践中,Kruskal-Wallis检验常被理解为对中位数的检验。当各组的分布形状相似时,这一解释是有效的;若分布形状差异较大(如一方差极大、另一方差极小),则检验结果可能难以解释为中位数的差异。
事后检验 (Post-hoc Analysis)
当 Kruskal-Wallis检验拒绝了零假设,表明至少有一组与其他组存在显著差异时,需要进一步进行两两比较以确定具体是哪些组之间存在差异。常用的方法包括:
- Dunn检验 (Dunn's Test):最常用的事后比较方法,使用各组平均秩的差异及联合标准误进行计算,并采用Bonferroni校正 (Bonferroni Correction) 或其他方法调整 p 值。
- Conover检验 (Conover's Test):比 Dunn检验更具检验功效(Power),但相应地也更可能拒绝零假设。
- Nemenyi检验 (Nemenyi Test):一种较为保守的事后检验方法。
与 ANOVA 的比较
- 数据类型:ANOVA 要求连续变量;Kruskal-Wallis 适用于连续变量或有序变量。
- 分布假设:ANOVA 要求正态分布;Kruskal-Wallis 无特定分布假设。
- 方差齐性:ANOVA 要求方差齐性;Kruskal-Wallis 不严格要求。
- 检验对象:ANOVA 检验均值差异;Kruskal-Wallis 检验分布位置(通常为中位数)差异。
- 检验功效:当假设满足时 ANOVA 最优;当假设不满足时 Kruskal-Wallis 更稳健。
- 使用统计量:ANOVA 使用 F 统计量;Kruskal-Wallis 使用 H 统计量(近似卡方分布)。
在数据满足 ANOVA 假设的情况下,Kruskal-Wallis检验的渐近相对效率 (Asymptotic Relative Efficiency, ARE) 约为 0.955,即其功效约为 ANOVA 的 95.5\%。这意味着即使数据完全满足参数条件,使用 Kruskal-Wallis检验也仅损失不到 5\% 的效率,这使其成为一种极具吸引力的稳健替代方案。
应用示例
Kruskal-Wallis检验广泛应用于行为科学、医学研究、生态学和经济学等各个领域。例如:
- 医学: 比较三种不同药物对患者疼痛评分的缓解效果,疼痛评分数据为有序分类,且可能不服从正态分布。
- 生态学: 比较四个不同栖息地中某种植物物种的丰度差异,数据可能呈现偏态分布。
- 经济学: 比较不同教育水平群体(高中、本科、研究生)的工资收入中位数是否存在显著差异。
局限性
- 信息损失: 将原始数据转换为秩的过程会导致部分信息损失,因此当数据满足参数检验假设时,ANOVA 更具检验功效。
- 分布假设的隐含要求: 当各组分布形状差异悬殊时,对结果的解释需要谨慎,拒绝零假设可能反映的是分布形状的差异而非位置的差异。
- 结的影响: 大量结的存在会降低检验的灵敏度(Power),此时需要使用校正后的统计量 。
软件实现
几乎所有主流统计软件均支持 Kruskal-Wallis检验:
- R语言: 使用 \texttt{kruskal.test()} 函数。
- Python: 使用 \texttt{scipy.stats.kruskal()} 函数。
- SPSS: 通过「非参数检验 独立样本 Kruskal-Wallis检验」菜单执行。
- Stata: 使用 \texttt{kwallis} 命令。
总之,Kruskal-Wallis检验是参数方差分析在非参数领域的重要补充,它为处理不符合参数检验假设的多组比较问题提供了实用且可靠的解决方案。