统计知识:Wilcoxon检验
老俊俊引言:
文章里关于下面的图:
对应统计检验:
还有其它很多文章也会使用这种检验,欢迎大家通过这篇文章了解其计算原理!
以下是推文内容
微信公众号:生信小知识
关注可了解更多的生物信息学教程及知识。问题或建议,请公众号留言;
目录
前言1. Wilcoxon检验2. 秩和检验2.1 适用实例2.2 计算原理2.3 计算实例2.3.1 解答过程2.3.2 R语言代码3. 符号秩检验3.1 适用实例3.2 计算原理3.3 计算实例3.3.1 解答过程3.3.2 R语言代码4. 后记
前言
决定做一个简单的统计专题,记录科研中常常会用到的统计学方法,力求以大白话的形式讲清楚每个统计方法,让大家都简单明白在什么情况下应该使用什么统计学方法。
今天正好遇到了Wilcoxon检验,那就先把这个统计学方法讲清楚。
1. Wilcoxon检验
Wilcoxon检验包含 2 种不同类型的检测,并且极容易混淆,这 2 种分别方法是
-
Wilcoxon rank-sum test:秩和检验,对应R语言的
wilcox_test(y ~ A)
,也称为Mann-Whitney U检验 -
Wilcoxon signed-rank test:符号秩检验,对应R语言的
wilcoxsign_test(y1 ~ y2)
2. 秩和检验
2.1 适用实例
属于非参数检验,用于检验两个独立样本是否来自同一分布,我们不要求被检验的 2 组数据包含相同个数的元素,换句话说,秩和检验更适用于非成对数据之间的差异性检测。常见的情形有:
-
比较pre-AML组和正常control组之间VAF的大小分布
-
A组有15个人,B组有10个人,比较A组和B组的身高
-
……
2.2 计算原理
Wilcoxon秩和检验是基于样本数据秩和。
-
先将两样本看成是单一样本(混合样本),然后由小到大排列观察值统一编秩。
-
如果原假设两个独立样本来自相同的总体为真:秩将大约均匀分布在两个样本中。小的、中等的、大的秩值应该大约均匀被分在两个样本中。
-
如果备选假设两个独立样本来自不相同的总体为真:其中一个样本将会有更多的小秩值,这样就会得到一个较小的秩和;另一个样本将会有更多的大秩值,因此就会得到一个较大的秩和。
2.3 计算实例
我们有A组和B组患者生存时间的数据:
A数据 | 总排名 | B数据 | 总排名 |
---|---|---|---|
5 | 5.5 | 3 | 1 |
6 | 8 | 4 | 3 |
7 | 11 | 4 | 3 |
7 | 11 | 4 | 3 |
8 | 13 | 5 | 5.5 |
9 | 14 | 6 | 8 |
10 | 15 | 6 | 8 |
7 | 11 |
现在使用秩和检验判断这 2 组数据是否存在显著性差异。
2.3.1 解答过程
-
建立假设:两组数据来自同一总体,之间没有差异。
-
我们首先将A和B组数据整合成一个序列,并按升序重新排序。分别计算2组数据的排名之和。
注意,当我们计算若干等值元素的排名时,会用这些元素排名的平均值作为它们在整个序列中的排名。例如,A组中的第1个元素与B组中第5个元素的值都等于5,且这2个5在整个序列中的排名分别是第5和第6,因此这两个元素的排名为(5+6)/2=5.5。其余等值元素的排名计算也与之类似。
A组排名之和:
B组排名之和:
-
令和分别表示A组和B组数据的个数,即
。根据计算公式可得和的值:
的计算:
的计算:
-
因为 <,所以根据较小的 值查表,得到 P=0.01393<0.05
2.3.2 R语言代码
1a <- c(5,6,7,7,8,9,10)
2b <- c(3,4,4,4,5,6,6,7)
3wilcox.test(a,b)
4# Wilcoxon rank sum test with continuity correction
5#
6# data: a and b
7# W = 49.5, p-value = 0.01393
8# alternative hypothesis: true location shift is not equal to 0
可以看到结果是一致的!
3. 符号秩检验
3.1 适用实例
用来检验两独立配对样本所来自的总体的分布是否存在显著差异的非参数方法。常见的情形有:
-
同一受试对象的两个部分接受不同的处理(如对于一批血清样本,将其分为两个部分,利用不同的方法接受某种化合物的检验,检验结果的差异)
-
同一受试对象的自身前后对照(如检验癌症患者术前、术后的某种指标的差异)
-
……
3.2 计算原理
-
分别用第二组样本的各个观察值减去第一组对应样本的观察值。差值为正则记为正号,差值为负则记为负号。
-
将正号的个数与负号的个数进行比较,容易理解:如果正号个数和负号个数大致相当,则可以认为第二组样本大于第一组样本变量值的个数,与第二组样本小于第一组样本的变量值个数是大致相当的,反之,差距越大。
3.3 计算实例
研究先后出生的孪生兄弟间智力是否存在差异,对12对孪生兄弟的智力进行测试,结果见下表:
ID | 先出生者 | 后出生者 | 差值符号 | 差值绝对值 | 差值排名 |
---|---|---|---|---|---|
1 | 86 | 88 | +1 | 2 | 3 |
2 | 71 | 77 | +1 | 6 | 7 |
3 | 77 | 76 | -1 | 1 | 1.5 |
4 | 68 | 64 | -1 | 4 | 4 |
5 | 91 | 96 | +1 | 5 | 5.5 |
6 | 72 | 72 | NA | 0 | NA |
7 | 77 | 65 | -1 | 12 | 10 |
8 | 91 | 90 | -1 | 1 | 1.5 |
9 | 70 | 65 | -1 | 5 | 5.5 |
10 | 71 | 80 | +1 | 9 | 9 |
11 | 88 | 81 | -1 | 7 | 8 |
12 | 87 | 72 | -1 | 15 | 11 |
上述数据为12对孪生兄弟之间的智力得分,需要判断每对孪生兄弟之间的智力得分差异,测量指标为智力得分,属于配对设计的定量资料。对孪生兄弟之间的智力得分差值进行正态性检验,可以发现智力得分的差值不符合正态分布,因此本数据选用配对样本的秩和检验。
3.3.1 解答过程
-
建立假设:先后出生顺序对于智商没有影响。
-
对所有数据对两两求差,得到差异的正负符号以及差值的绝对值,并根据绝对值的大小进行排序。
注意:当差值绝对值为0时,我们不计算该值的排名。
-
计算大于0 和小于0 的秩和,并计算得到最终的统计值W值:
大于0的秩和:
小于0的秩和:
统计值W值:
-
所以根据W值查表,得到 P=0.4765<0.05
3.3.2 R语言代码
1before <- c(86,71,77,68,91,72,77,91,70,71,88,87)
2after <- c(88,77,76,64,96,72,65,90,65,80,81,72)
3wilcox.test(before,after,paired=T)
4# Wilcoxon signed rank test with continuity correction
5#
6# data: before and after
7# V = 41.5, p-value = 0.4765
8# alternative hypothesis: true location shift is not equal to 0
可以看到结果是一致的!
4. 后记
如有新的理解,后续再补充。

欢迎加入生信交流群。加我微信我也拉你进 微信群聊 老俊俊生信交流群
哦。
群二维码:

老俊俊微信:
知识星球:
所以今天你学习了吗?
欢迎小伙伴留言评论!
今天的分享就到这里了,敬请期待下一篇!
最后欢迎大家分享转发,您的点赞是对我的鼓励和肯定!
如果觉得对您帮助很大,赏杯快乐水喝喝吧!
往期回顾
◀跟着 Genome Research 学画图: 等高线散点图
◀…
请关注“恒诺新知”微信公众号,感谢“R语言“,”数据那些事儿“,”老俊俊的生信笔记“,”冷🈚️思“,“珞珈R”,“生信星球”的支持!