• R语言使用wilcox.test函数进行秩和检验、Wilcoxon秩和检验分析两组数据的均值是否有差异
2022-04-25 16:11:00

# R语言使用wilcox.test函数进行秩和检验、Wilcoxon秩和检验分析两组数据的均值是否有差异

目录

更多相关内容
• median_test(DV ~ IV, distribution="exact", data=wIndDf) Exact Median Test data: DV by IV (A, B) Z = 1.143, p-value = 0.3868 alternative hypothesis: true mu is not equal to 0 Wilcoxon秩和检验（曼 ...

## 安装所需的包

wants <- c("coin")
has   <- wants %in% rownames(installed.packages())
if(any(!has)) install.packages(wants[!has])>

## 一个样本

### 测试

set.seed(123)
medH0 <- 30
DV    <- sample(0:100, 20, replace=TRUE)
DV    <- DV[DV != medH0]
N     <- length(DV)
(obs  <- sum(DV > medH0))
[1] 15
(pGreater <- 1-pbinom(obs-1, N, 0.5))

[1] 0.02069
(pTwoSided <- 2 * pGreater)

[1] 0.04139

### 威尔科克森排检验

IQ    <- c(99, 131, 118, 112, 128, 136, 120, 107, 134, 122)
medH0 <- 110
wilcox.test(IQ, alternative="greater", mu=medH0, conf.int=TRUE)


Wilcoxon signed rank test

data:  IQ
V = 48, p-value = 0.01855
alternative hypothesis: true location is greater than 110
95 percent confidence interval:
113.5   Inf
sample estimates:
(pseudo)median
121 

## 两个独立样本

### 测试

Nj  <- c(20, 30)
DVa <- rnorm(Nj[1], mean= 95, sd=15)
DVb <- rnorm(Nj[2], mean=100, sd=15)
wIndDf <- data.frame(DV=c(DVa, DVb),
IV=factor(rep(1:2, Nj), labels=LETTERS[1:2]))

查看每组中低于或高于组合数据中位数的个案数。

library(coin)
median_test(DV ~ IV, distribution="exact", data=wIndDf)

Exact Median Test

data:  DV by IV (A, B)
Z = 1.143, p-value = 0.3868
alternative hypothesis: true mu is not equal to 0 

### Wilcoxon秩和检验（曼 - 惠特尼检疫）

wilcox.test(DV ~ IV, alternative="less", conf.int=TRUE, data=wIndDf)


Wilcoxon rank sum test

data:  DV by IV
W = 202, p-value = 0.02647
alternative hypothesis: true location shift is less than 0
95 percent confidence interval:
-Inf -1.771
sample estimates:
difference in location
-9.761 
library(coin)
wilcox_test(DV ~ IV, alternative="less", conf.int=TRUE,
distribution="exact", data=wIndDf)

Exact Wilcoxon Mann-Whitney Rank Sum Test

data:  DV by IV (A, B)
Z = -1.941, p-value = 0.02647
alternative hypothesis: true mu is less than 0
95 percent confidence interval:
-Inf -1.771
sample estimates:
difference in location
-9.761 

## 两个依赖样本

### 测试

N      <- 20
DVpre  <- rnorm(N, mean= 95, sd=15)
DVpost <- rnorm(N, mean=100, sd=15)
wDepDf <- data.frame(id=factor(rep(1:N, times=2)),
DV=c(DVpre, DVpost),
IV=factor(rep(0:1, each=N), labels=c("pre", "post")))
medH0  <- 0
DVdiff <- aggregate(DV ~ id, FUN=diff, data=wDepDf)
(obs   <- sum(DVdiff$DV < medH0)) [1] 7 (pLess <- pbinom(obs, N, 0.5))  [1] 0.1316 ### 排名威尔科克森检验 wilcoxsign_test(DV ~ IV | id, alternative="greater", distribution="exact", data=wDepDf)  Exact Wilcoxon-Signed-Rank Test data: y by x (neg, pos) stratified by block Z = 2.128, p-value = 0.01638 alternative hypothesis: true mu is greater than 0  ## 分离（自动）加载的包 try(detach(package:coin)) try(detach(package:modeltools)) try(detach(package:survival)) try(detach(package:mvtnorm)) try(detach(package:splines)) try(detach(package:stats4)) 展开全文 • 文章目录前言一、为什么t检验和wilcoxon秩和检验要二选一？二、使用步骤1.引入库2.读入数据总结 前言 所谓显著性差异，就是证明数据的差异不是偶然发生的。 一、为什么t检验和wilcoxon秩和检验要二选一？ 示例：... # 前言 所谓显著性差异，就是证明数据的差异不是偶然发生的。生信分析中九成以上的问题，本质上就是寻找差异或者证明差异。 # 一、T 检验和wilcoxon秩和检验，怎么选？ 简单的说，T检验主要关注样本平均数的差异，而wilcoxon秩和检验是基于样本内数据的秩（排序）与值，关注中位数的差异。T检验的前提是数据正态分布，如何判断，见R语言检验数据正态分布 # 二、T 检验 ## 1. 单一样本t检验 单一样本t检验（One-sample t test），是用来比较一组数据和一个特定数值有无显著性差异。应用场景：20个肿瘤样本中，判断某个基因X测序后来的count数是否高于、低于还是等于25(前提是count符合正态分布）。 ## 2. 配对样本t检验 配对样本t检验（paired-samples t test），要求两组数据每对之间要有一定的对应关系。比如：（1）同一组样本在处理前后的平均值有无显著性差异（这个好理解，处理前样本与处理后对应，比如一个人饭前饭后的体重）。（2）癌和癌旁（一定是对应的样本）某些特征的显著性差异。（3）有配对关系的样本，用不同处理方式处理。 ## 3. 独立样本t检验 独立样本t检验（independent t test），比较两组独立数据有无显著性差异。应用场景：（1）TCGA数据库中的肿瘤样本与正常样本（他们来自不同patients，与癌与癌旁不一样）。（2）不同分子分型的肿瘤样本比较。 ## 4. 检验方向 单尾检验和双尾检验的区别在于是否拒绝H0标准。单尾需要选择方向，假设包含一个<小于符号，则使用左尾；假设包含一个>大于符号，则使用右尾。双尾检验即拒绝域一分为二位于数据集的两侧，两侧各占α/2，总和为α。 ## 4. 用R语言来做t检验 # One sample t test : 单一样本t检验 # Comparison of an observed mean with a # a theoretical mean t.test(x, mu=0) # Paired t test ：配对样本t检验 t.test(x, y, paired=TRUE) # Independent t test：独立样本t检验 # Comparison of the means of two independent samples (x & y) t.test(x, y) # Paired t test t.test(x, y, paired=TRUE)  Arguments x a (non-empty) numeric vector of data values. y an optional (non-empty) numeric vector of data values. alternative a character string specifying the alternative hypothesis, must be one of “two.sided” (default), “greater” or “less”. You can specify just the initial letter. mu a number indicating the true value of the mean (or difference in means if you are performing a two sample test). paired a logical indicating whether you want a paired t-test. var.equal a logical variable indicating whether to treat the two variances as being equal. If TRUE then the pooled variance is used to estimate the variance otherwise the Welch (or Satterthwaite) approximation to the degrees of freedom is used. alternative是用来假设方向的参数。“two.sided”, “less”, “greater” 双尾 左尾 右尾 t.test(x, y, alternative=c(“two.sided”, “less”, “greater”)) 双尾，左尾，右尾，假设不同，P值不同，得出的显著性结论不同。 > t.test(1:10, y = c(7:20, 200)) Welch Two Sample t-test data: 1:10 and c(7:20, 200) t = -1.6329, df = 14.165, p-value = 0.1245 alternative hypothesis: true difference in means is not equal to 0 95 percent confidence interval: -47.242900 6.376233 sample estimates: mean of x mean of y 5.50000 25.93333 > t.test(1:10, y = c(7:20, 200), alternative = "less") Welch Two Sample t-test data: 1:10 and c(7:20, 200) t = -1.6329, df = 14.165, p-value = 0.06226 alternative hypothesis: true difference in means is less than 0 95 percent confidence interval: -Inf 1.588745 sample estimates: mean of x mean of y 5.50000 25.93333 > t.test(1:10, y = c(7:20, 200), alternative = "great") Welch Two Sample t-test data: 1:10 and c(7:20, 200) t = -1.6329, df = 14.165, p-value = 0.9377 alternative hypothesis: true difference in means is greater than 0 95 percent confidence interval: -42.45541 Inf sample estimates: mean of x mean of y 5.50000 25.93333  # 三、wilcoxon秩和检验 直接上马 > x <- c(1.83, 0.50, 1.62, 2.48, 1.68, 1.88, 1.55, 3.06, 1.30) > y <- c(0.878, 0.647, 0.598, 2.05, 1.06, 1.29, 1.06, 3.14, 1.29) > wilcox.test(x, y, paired = TRUE, alternative = "greater") Wilcoxon signed rank exact test data: x and y V = 40, p-value = 0.01953 alternative hypothesis: true location shift is greater than 0 > wilcox.test(x, y, paired = TRUE, alternative = "less") Wilcoxon signed rank exact test data: x and y V = 40, p-value = 0.9863 alternative hypothesis: true location shift is less than 0 > wilcox.test(x, y, paired = TRUE, alternative = "two.sided") Wilcoxon signed rank exact test data: x and y V = 40, p-value = 0.03906 alternative hypothesis: true location shift is not equal to 0 > wilcox.test(x, y, paired = F, alternative = "greater") Wilcoxon rank sum test with continuity correction data: x and y W = 58, p-value = 0.06646 alternative hypothesis: true location shift is greater than 0 Warning message: In wilcox.test.default(x, y, paired = F, alternative = "greater") : 无法精確計算带连结的p值  # 四、可视化画图（boxplot 箱图） library(ggplot2) library(ggsignif) library(ggpubr) library(RColorBrewer) A <- c(1.83, 0.50, 1.62, 2.48, 1.68, 1.88, 1.55, 3.06, 1.30) B <- c(0.878, 0.647, 0.598, 2.05, 1.06, 1.29, 1.06, 3.14, 1.29) C <- A+1 D <- B+1 plot_data <- data.frame(A,B,C,D) require(tidyr) plot_data <- gather(plot_data) colnames(plot_data) <- c("group","test_data") #----------------------- p<- ggplot(data=plot_data)+ geom_boxplot(mapping=aes(x=group,y=test_data,colour = group ), #箱线图 alpha = 0.5, size=1.5, width = 0.6)+ geom_jitter(mapping=aes(x=group,y=test_data,colour = group), #散点 alpha = 0.3,size=3)+ scale_color_manual(limits=c("A","B","C","D"), values=c("#85B22E","#5F80B4","#E29827","#922927"))+ #颜色 geom_signif(mapping=aes(x=group,y=test_data), # 不同组别的显著性 comparisons = list(c("A", "B"), # 哪些组进行比较 c("A", "C"), c("A", "D"), c("B", "C"), c("B", "D"), c("C", "D")), map_signif_level=T, # T显示显著性，F显示p value tip_length=c(0,0,0,0,0,0,0,0,0,0,0,0), # 修改显著性线两端的长短 y_position = c(2.9,3.6,3.8,3.4,3.2,2.9), # 设置显著性线的位置高度 size=1, # 修改线的粗细 textsize = 4, # 修改显著性标记的大小 test = "t.test")+ # 检验的类型 theme_classic( # 主题设置，这个是无线条主题 base_line_size = 1 # 坐标轴的粗细 )+ labs(title="EXAMPLE A",x="",y="test_data")+ # 添加标题，x轴，y轴内容 theme(plot.title = element_text(size = 15, colour = "black", hjust = 0.5), axis.title.y = element_text(size = 15, # family = "myFont", color = "black", face = "bold", vjust = 1.9, hjust = 0.5, angle = 90), legend.title = element_text(color="black", # 修改图例的标题 size=15, face="bold"), legend.text = element_text(color="black", # 设置图例标签文字 size = 10, face = "bold"), axis.text.x = element_text(size = 13, # 修改X轴上字体大小， color = "black", # 颜色 face = "bold", # face取值：plain普通，bold加粗，italic斜体，bold.italic斜体加粗 vjust = 0.5, # 位置 hjust = 0.5, angle = 0), #角度 axis.text.y = element_text(size = 13, color = "black", face = "bold", vjust = 0.5, hjust = 0.5, angle = 0) ) p  展开全文 • （1）检验每组数据是否服从正态分布； 第一组数据利用Matlab编译程序如下： clc; clear; load('c.mat'); c=c';%转置 alpha=0.05;%0.95置信度 % 第一组数据正态分布判断 [mu,sigma]=nor... （1）检验每组数据是否服从正态分布； 第一组数据利用Matlab编译程序如下： clc; clear; load('c.mat'); c=c';%转置 alpha=0.05;%0.95置信度 % 第一组数据正态分布判断 [mu,sigma]=normfit(c); p1=normcdf(c,mu,sigma); [H1,s1]=kstest(c,[c,p1],alpha); if H1==0 disp('该数据源服从正态分布。') else disp('该数据源不服从正态分布。') end 在结果窗口可得：该数据源服从正态分布。（如下图） 同理，第二组数据经计算，该数据源也服从正态分布 （2）用秩和检验法检验两组数据的差异性 利用Matlab编译程序如下： clear; load('c.mat'); load('d.mat'); [p,h]=ranksum(c,d); 可得结果：p=6.666459108310351e-12,h=1 如果h1=1，则两组数据有明显区别，即表示认为数据一与数据二有显著性区别，这一断言的犯错概率是6.666459108310351e-12 展开全文 • 使用Mann-Whitney-Wilcoxon检验，我们可以确定种群分布是否相同而不假设它们遵循正态分布。 例 在数据集mtcars的数据框列mpg中，有各种1974美国汽车的汽油里程数据。 > mtcars$ mpg[1] 21.0 21.0 22.8 21.4...
• Wilcoxon秩和检验（曼 - 惠特尼检疫） wilcox.test(DV ~ IV, alternative="less", conf.int=TRUE, data=wIndDf)       Wilcoxon rank sum test       data: DV by IV...
• 在本文中，我们将要讲解的则是用于检验非正态分布数据差异的统计方法——秩和检验。本文将重点介绍以下内容：非独立样本秩和检验、单样本秩和检验和配对样本秩和检验。 为了帮助更多的临床医师学习如何运用JMP高效地...
• R语言使用wilcox.test函数进行秩和检验、Wilcoxon秩和检验分析两组数据的均值是否有差异、其中其中两个分组的数据的长度不相同（向量长度不同）
• 展开全部1， 首先，分别把这两组数据分别设为xy，打开SPSS，点击左下角的Variable View选项卡，e5a48de588b63231313335323631343130323136353331333365666163在Name列那里的第一行输y，第二行输x，返回Data View...
• 感谢你的阅读，专栏文章持续更新，希望感兴趣的伙伴点个赞，关注不迷路！ 你的支持是我前进的动力！ 深耕于机器学习算法、深度学习、数据分析等领域，希望我这微不足道的知识能帮到您。
• 曼-惠特尼U检验又称“曼-惠特尼秩和检验”，是由H.B.MannD.R.Whitney于1947年提出的。它假设两个样本分别来自除了总体均值以外完全相同的两个总体，目的是检验这两个总体的均值是否有显著的差别。 可以看作是对两...
• 阅读期刊文献时，各种统计检验（T检验、wilcoxon秩和检验、方差分析…）方法让人眼花缭乱，分不清它们之间的区别；当处理自己数据时，又面临着不知道如何挑选合适的检验方法，学习操作那些复杂的生信软件等等挑战。 ...
• 差异分析是基础数据分析手段，在进行样本间差异比较的时候经常被用到。所以无论是中文核心期刊还是SCI论文，常常需要绘制差异分析柱形图。显著性标记柱形图是在差异分析柱形图的基础上添加显著性标识，可以直观的...
• 秩和检验是一种非参数检验法，不需要对数据分布作特殊假设，因而能适用于更复杂的数据分布情况。秩和检验是通过推断总体的分布是否相同，进而判断两组样本之间的差异是否显著。 秩和检验的做法是：首先把两组样本...
• ## 秩和检验

千次阅读 2020-06-06 10:56:18
从总体中随机抽取一定量的样本，用样本指标估计总体指标，分为参数统计非参数统计。 参数统计：在总体分布类型已知的条件下，对其未知参数进行检验的...秩和检验：用秩和进行假设检验的方法。 1.配对资料符号的
• R语言使用wilcox.test函数进行秩和检验、Wilcoxon秩和检验分析两组数据的均值是否有差异（分析两组工人血铅值有无差异）
• R语言使用wilcox.test函数进行秩和检验、Wilcoxon秩和检验分析两组数据的均值是否有差异、设置exact参数为FALSE不进行精确检验
• 文章目录配对设计秩和检验一、检验步骤说明二、结果代码 配对设计秩和检验 配对设计的情况：（1）同对的受试者分别给予两种处理，如同窝别、体重相近的两只动物配对；（2）同一受试对象处理前后的比较。 配对设计...
• 选用t-检验的基本前提假设是，两组样本都服从正态分布，且方差相同。设有两类(x, y)分别有mmm个nnn个样本，它们的总体样本方差是： sp2=(n−1)Sx2+(m−1)Sy2m+n−2s_p^2=\frac{(n-1)S_x^2+(m-1)S_y^2}{m+n-2}sp2...
• R语言使用wilcox.test函数进行秩和检验、Wilcoxon秩和检验分析两组数据的均值是否有差异、设置correct参数为FALSE不进行连续性校正
• ·Nonparametric Tests→2 Related Samples（Wilcoxon符号秩和检验数据格式： Exact：样本量小选Exact，样本量大（对子数>50）选Asymptomatic only。 Options：选Descriptive，计算描述性统计量。（中...
• Wilcoxon 检验秩和检验rank-sum test
• 本文介绍如何在ř中计算两个样本的秩检验。 可视化数据并在ř中计算的Wilcoxon测试 ř函数用于计算的秩检验 为了执行两个样本的Wilcoxon检验，比较两个独立样本（x＆y）的均值，R函数wilcox.test（）可以如下使用...

...