Wilcoxon-Mann-Whitney秩和检验/rank sum test(或test U)

本文通过两个足球队一年内进球数的实例,介绍了如何使用R语言进行Mann-Whitney U 检验,这是一种非参数检验方法,用于比较两个独立样本群组的中位数是否存在显著差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Source: http://www.r-bloggers.com/wilcoxon-mann-whitney-rank-sum-test-or-test-u/

 

比较两个独立样本群组的平均值,这里不需要假设总体为Gaussian类型分布;这也称作Mann-Whitney U-test
你想要看看两个足球队在一年进球数均值是否一样。以下为每个队在一年6场比赛中的进球数:

Team A: 6, 8, 2, 4, 4, 5
Team B: 7, 10, 4, 3, 5, 6

Wilcoxon-Matt-Whitney test (or Wilcoxon rank sum test, orMann-Whitney U-test) 用于比较两个并不满足正态分布群组的均值比较:这是一个非参数检验(non-parametrical test)。其与应用于独立样本的t-test相当。

让我们看看如何在R中解决这个我问题:

a = c(6, 8, 2, 4, 4, 5)
b = c(7, 10, 4, 3, 5, 6)

wilcox.test(a,b, correct=FALSE)

Wilcoxon rank sum test

data: a and b
W = 14, p-value = 0.5174
alternative hypothesis: true location shift is not equal to 0


p-value大于0.05,因此我们可接受null hypothesis H0,即两个群组的均值统计相等。如果你运行 wilcox.test(b, a, correct = FALSE),p-value在逻辑上将会是一样的:

a = c(6, 8, 2, 4, 4, 5)
b = c(7, 10, 4, 3, 5, 6)

wilcox.test(b,a, correct=FALSE)

Wilcoxon rank sum test

data: b and a
W = 22, p-value = 0.5174
alternative hypothesis: true location shift is not equal to 0


而值W的计算如下:

sum.rank.a = sum(rank(c(a,b))[1:6]) #sum of ranks assigned to the group a
 W = sum.rank.a – (length(a)*(length(a)+1)) / 2
 W
[1] 14

sum.rank.b = sum(rank(c(a,b))[7:12]) #sum of ranks assigned to the group b
 W = sum.rank.b – (length(b)*(length(b)+1)) / 2 
 W
[1] 22


最后我们比较对独立样本Wilcoxon的表上查表得到的区间。对两个6个样本群组查表得到的区间是(26,52),而我们样本的区间为:

sum(rank(c(a,b))[1:6]) #sum of ranks assigned to the group a
[1] 35
sum(rank(c(a,b))[7:12]) #sum of ranks assigned to the group b
[1] 43


因为计算的区间(35, 43)包含在查表区间(26,52),我们论断接受null hypothesis H0,即均值相等

=========================================================

在使用函数wilcox.test,以下的输入参数形式才是使用了rank sum检验方法:

wilcox.test(a,b, paired=F)

    Wilcoxon rank sum test with continuity correction

data:  a and b 
W = 14, p-value = 0.5711
alternative hypothesis: true location shift is not equal to 0 

#------------------------------------------

wilcox.test(b,a, paired=F)

    Wilcoxon rank sum test with continuity correction

data:  b and a 
W = 22, p-value = 0.5711
alternative hypothesis: true location shift is not equal to 0 

这里求得的两个W值分别是低尾部值和高尾部值,我们可以用以下函数获得接受区间:

qwilcox(0.025, length(a), length(b), lower.tail=T)
[1] 6

qwilcox(0.025, length(a), length(b), lower.tail=F)
[1] 30 

之前计算的W值区间(14, 22)在[6,30]范围内,所以我们接受null hypothesis,即a和b的均值显著相等。


<think>好的,我现在要解决用户的问题:Mann-Whitney U检验Wilcoxon秩和检验的区别以及它们的适用场景。首先,我需要回忆一下这两种检验方法的基本概念和相关知识。 根据用户提供的引用资料,引用[1]提到Mann-Whitney检验适用于独立样本的非参数检验,而Wilcoxon秩和检验用于成对样本。但引用[3]和[4]中提到Wilcoxon秩和检验有时也被称为Mann-Whitney U检验,这让我有点困惑,可能这里存在术语上的混淆。需要进一步确认这两个检验的关系和区别。 首先,我应该回顾这两个检验的起源。Wilcoxon秩和检验是由Frank Wilcoxon提出的,用于比较两个独立组的数据。而MannWhitney后来扩展了这个方法,提出了U统计量,因此形成了Mann-Whitney U检验。所以实际上,这两个检验本质上是相同的,只是计算统计量的方式不同,但结果可以互相转换。这可能就是为什么有些资料将两者视为同一检验的原因。 但引用[1]中将Wilcoxon秩和检验列为成对样本的检验,这似乎与常规的理解不同。通常,成对样本使用的是Wilcoxon符号秩检验Wilcoxon signed-rank test),而独立样本使用的是Wilcoxon秩和检验,即等同于Mann-Whitney U检验。可能用户提供的引用中存在术语的不一致错误,需要仔细核对。 接下来,我需要明确两者的适用场景。根据引用[2]和[4],Mann-Whitney U检验适用于两个独立样本,不满足正态分布的情况。而Wilcoxon秩和检验在引用[4]中提到用于配对样本,但根据常规统计学资料,Wilcoxon秩和检验通常指的就是独立样本的情况,而成对样本则使用符号秩检验。这里可能存在混淆,需要进一步确认正确的术语用法。 再查阅标准统计学资料,Wilcoxon秩和检验Wilcoxon rank-sum test)和Mann-Whitney U检验确实是同一检验的不同名称,用于比较两个独立样本的位置参数。而成对样本使用的是Wilcoxon符号秩检验Wilcoxon signed-rank test),属于不同的检验方法。因此,引用[1]中可能存在错误,将Wilcoxon秩和检验归类为成对样本,这可能是一个误解。 因此,正确的区分应该是:Mann-Whitney U检验Wilcoxon秩和检验是同一检验的不同名称,适用于独立样本;而Wilcoxon符号秩检验适用于成对样本。用户问题中的混淆可能来源于不同文献中的术语使用不一致。 接下来,我需要整理这些信息,并明确回答两者的区别和适用场景。需要指出术语的混淆点,并强调正确的应用场景。同时,参考用户提供的引用资料,特别是引用[4]中提到Wilcoxon秩和检验同时考虑了差异方向和大小,而Mann-Whitney U检验用于独立样本的比较。 最后,总结两者的区别在于适用样本类型(独立vs成对),但需要指出在某些文献中,Wilcoxon秩和检验可能被错误地指代成对样本的情况,而正确的情况是,Wilcoxon秩和检验等同于Mann-Whitney U检验用于独立样本,成对样本应使用符号秩检验。同时,应用场景方面,当数据不满足正态分布样本量较小时,应使用这些非参数检验方法。</think>### Mann-Whitney U检验Wilcoxon秩和检验的区别及适用场景 #### 1. **核心区别** - **Mann-Whitney U检验**: 用于比较两个**独立样本**是否来自同一分布,特别适用于数据不满足正态分布假设的情况。其核心思想是对两组数据的秩次进行统计分析,计算U统计量来判断差异[^2][^4]。 公式: $$U = R_1 - \frac{n_1(n_1+1)}{2}$$ 其中,$R_1$为第一组样本的秩和,$n_1$为第一组样本量。 - **Wilcoxon秩和检验**: *在部分文献中,Wilcoxon秩和检验Mann-Whitney U检验被视为同一方法*,均用于**独立样本**的非参数检验[^3][^4]。但需注意术语混淆: - **Wilcoxon符号秩检验**(Wilcoxon signed-rank test)适用于**成对样本**(如治疗前后的对比),通过计算差值符号和秩次进行检验[^1]。 #### 2. **术语混淆的澄清** - **独立样本**场景: Mann-Whitney U检验Wilcoxon秩和检验本质相同,只是统计量的计算方式不同,结果可互相转换。 - **成对样本**场景: 应使用**Wilcoxon符号秩检验**,而非“秩和检验”。部分文献错误地将成对样本检验称为“Wilcoxon秩和检验”,需注意区分。 #### 3. **适用场景** | **场景** | **检验方法** | **特点** | |----------------|---------------------------|--------------------------------------------------------------------------| | 独立样本比较 | Mann-Whitney U检验 | 不依赖正态分布假设,适用于小样本数据偏态的情况[^2]。 | | 独立样本比较 | Wilcoxon秩和检验 | 与Mann-Whitney U检验等价,不同名称。 | | 成对样本比较 | Wilcoxon符号秩检验 | 分析配对数据(如同一组实验前后的测量值),利用差值符号和秩次[^4]。 | #### 4. **实际应用示例** - **Mann-Whitney U检验**(Python实现): ```python from scipy.stats import mannwhitneyu group1 = [28, 30, 25, 33, 29] group2 = [22, 24, 26, 20, 18] u_stat, p_value = mannwhitneyu(group1, group2) print(f"U统计量: {u_stat}, p值: {p_value}") ``` - **Wilcoxon符号秩检验**(Python实现,注意需成对数据): ```python from scipy.stats import wilcoxon before = [80, 75, 85, 90, 78] after = [85, 70, 88, 92, 82] stat, p_value = wilcoxon(before, after) print(f"统计量: {stat}, p值: {p_value}") ``` #### 5. **总结对比** | **维度** | Mann-Whitney U检验 | Wilcoxon符号秩检验 | |----------------|----------------------------|----------------------------| | 样本类型 | 独立样本 | 成对样本 | | 假设条件 | 不依赖正态分布 | 不依赖正态分布 | | 核心思想 | 比较两组秩和 | 分析配对差值的符号和秩次 | | 主要应用 | 独立组间差异(如性别对比) | 同一组前后差异(如治疗效果) | --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值