常用分析的R代码——配对样本Wilcoxon符号秩检验(差值不服
前言
专题目的:粗暴,简单,直接套用
如果我们想知道成对测量值(均值)之间是否有差异,可考虑配对t检验。
本章配对样本Wilcoxon符号秩检验可以认为是“常用分析的R代码——配对t检验(差值服从正态)”的续集,只是差值不服从正态分布/有序标量,所以很多代码都是一样的(会标注不一样的地方)~
使用配对样本t检验,需要满足5个条件:
条件1:观察变量为连续变量或有序分类变量。
条件2:观察变量为配对设计。
条件3:观察变量可分为2组,本研究中分为A方法和B方法两组,该条件满足。
![](https://img.haomeiwen.com/i15675936/1c1a9d557fe80b95.png)
代码(含图)如下
#1.输入数据 (同前)(数据啥样就是啥样,正态性关键看第三步)
# 组A
before <-c(15.4,25.3,25.6,34.7,28.8,18.9,30.0,16.7,15.8,27.7)
# 组B
after <-c(5.5,5.4,5.7,15.7,18.7,72.5,72.4,37.0,66.7,60.0)
##2.绘制Q-Q图(正态性检验的判断)(同前)
d <- before - after #计算两组间差值
qqnorm(d) #绘制Q-Q图
qqline(d) #增加趋势线
#如Q-Q图上散点基本围绕对角线分布,提示数据呈正态分布;
##3.正态性检验(正态性检验的判断)(同前但主要转折点是这里!!!)
shapiro.test(d) #shapiro-Wilk正态性检验
#如“Shapiro-Wilk normality test (S-W正态性检验)”表格结果显示P=x<0.1,也提示数据不满足/服从正态分布(满足条件5)。
#P=x>0.1直接配对T检验
#所以需要进行配对样本Wilcoxon检验
##4.配对样本Wilcoxon符号秩检验(Paired Samples Wilcoxon Signed Rank Test)
# 创建数据框
my_data <- data.frame(
group = rep(c("before", "after"), each = 10),
weight = c(before, after)
)
res <- wilcox.test(weight ~ group, data = my_data, paired = TRUE)
res
#如果要测试治疗前的数值是否小于治疗后的数值,请输入以下命令:
wilcox.test(weight ~ group, data = my_data, paired = TRUE,
alternative = "less")
#如果要测试治疗前的数值是否大于治疗后的数值,请输入
wilcox.test(weight ~ group, data = my_data, paired = TRUE,
alternative = "greater")
#解读
#如检验的p值为 0.23>0.05,大于显着性水平alpha = 0.05。
#然后我们可以肯定原假设,并得出结论,治疗前后没有显著不同。
##5.差值描述
summary(d) #差值d的描述
#列出了变化差值“d”的“Median (中位数)”为xxx,P25(1st Qu.)~P75(3rd Qu.)为xxx。
#6.作图 (每组有多少个就写多少个,这个例子是10个)(同前)
data <- data.frame(subject = rep(c(1:10), 2),
time = rep(c("before", "after"), each = 10),
score = c(before, after))
print(data)
str(data)
attach(my_data)
par(pty = "s")
#黑白箱形图
boxplot(score ~ time)
#有颜色的箱形图
boxplot(score ~ time,
col = c("#003C67FF", "#EFC000FF"),
main = "Wilcoxon Signed Rank Test",
xlab = "Time", ylab = "Score")