Math-01.显著性检验-06.Mann-Whitney检验

Mann-Whitney U 检验(又称 Wilcoxon 秩和检验,两独立样本)比较两组连续或有序数据的分布位置,假设正态,基于秩(rank)而非原始数值。

段末注释(rank)为将样本从小到大排序后的名次;非参数检验对分布形态假设较弱。

系列01 总论 | 参数对照:02 t检验


1. 检验问题(D1)

图 1 Mann-Whitney 直观

  • $H_0$:两独立样本来自相同分布(或 $P(X>Y)=0.5$)
  • $H_1$:一组倾向于更大(或分布不同)

比较的是随机抽取时一组大于另一组的概率,而非严格均值(除非分布形状相同)。


2. 数据条件(D2)

条件 说明
独立 两组独立样本
连续或有序 可排序;大量结(tie)需注意
非正态 / 小 $n$ 相对 t 的优势场景
形状 检验位置差时,两组分布形状宜相似

3. 检验统计量(D3–D4)

图 2 秩和与 U 统计量

合并两组排序,记 $R_1$ 为第一组秩和:

$$
U_1 = n_1 n_2 + \frac{n_1(n_1+1)}{2} - R_1
$$

大样本下 $U$ 近似正态;小样本用精确分布表。


4. 适用场景(D5–D7)

图 3 适用场景

场景 说明
酶活偏态、$n$ 小 替代双样本 t
有序评分(1–5) 非参数合适
异常值多 秩对极端值稳健
存量文章推荐 两组数据差异显著性检验 §3

5. 局限与误用(D8)

图 4 局限

问题 说明
形状差大 显著可能来自尺度而非位置
配对数据 应用 Wilcoxon 符号秩wilcoxon
多组 Kruskal-Wallis
检验均值 应用 t(若正态)
效应量 报告 rank-biserial $r$ 或 Cliff’s delta

6. 示例代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import numpy as np
from scipy import stats

rng = np.random.default_rng(42)
# 偏态数据
g1 = rng.lognormal(0, 0.5, 12)
g2 = rng.lognormal(0.2, 0.5, 12)

u, p = stats.mannwhitneyu(g1, g2, alternative='two-sided')
print(f"Mann-Whitney U={u:.0f}, p={p:.4f}")

# 与 t 对比
t, p_t = stats.ttest_ind(g1, g2, equal_var=False)
print(f"Welch t p={p_t:.4f}")

# 配对 → Wilcoxon signed-rank
before = rng.normal(1.0, 0.2, 10)
after = before + rng.normal(0.15, 0.1, 10)
w, p_w = stats.wilcoxon(after - before)
print(f"Wilcoxon signed-rank p={p_w:.4f}")

7. 小结

  • Mann-Whitney:两独立样本非参数;基于秩,对偏态/小 $n$ 稳健。
  • 配对用 Wilcoxon 符号秩;多组用 Kruskal-Wallis

系列导航02 t | 05 KS


参考文献

  1. scipy.stats.mannwhitneyu
-------------本文结束感谢您的阅读-------------