R语言 单样本Wilcoxon检验与两独样本Wilcoxon检验

单样本Wilcoxon检验:

当样本分布非正态,且经过一定的数值转换尝试后,仍然无法满足正态性要求时,单样本的Wilcoxon符号秩检验成为备选方法。

## 代码测试##
##单样本的wilcox 检验##
library(datasets)
data(DNase)
ata <- DNase

#实验中的conc变量(蛋白浓度)是否不同于理论值3.0?
shapiro.test(my_data$conc)
#data:  my_data$conc
#W = 0.71508, p-value < 2.2e-16 conc不符合正态性分布

# 单样本Wilcoxon检验
test <- wilcox.test(my_data$conc, mu = 3)
test 
test$p.value
#V = 7051, p-value = 0.2756   蛋白浓度与3无显著性差异


#################################
#检验蛋白浓度是否小于3(单向测试)
wilcox.test(my_data$conc, mu = 3,
              alternative = "less")
#检验蛋白浓度是否大于3(单向测试)
wilcox.test(my_data$conc, mu = 3,
              alternative = "greater")


两独样本Wilcoxon检验

women_weight <- c(88.9, 81.2, 73.3, 21.8, 63.4, 84.6, 28.4, 28.8, 28.5)
men_weight <- c(37.8, 80, 33.4, 36, 89.4, 83.3, 97.3, 81.3, 92.4)
# 建立一个数据框
my_data <- data.frame( 
  group = rep(c("Woman", "Man"), each = 9),
  weight = c(women_weight,  men_weight)
)
library(dplyr)

#按性别group计算统计信息
group_by(my_data, group) %>%
  summarise(
    count = n(),
    mean = mean(weight, na.rm = TRUE),
    sd = sd(weight, na.rm = TRUE)
  )

# Shapiro-Wilk normality test for Men's weights
with(my_data, shapiro.test(weight[group == "Man"]))# p = 0.017
# Shapiro-Wilk normality test for Women's weights
with(my_data, shapiro.test(weight[group == "Woman"])) # p = 0.045

#p值小于显着性水平0.05,说明数据分布不符合正态分布
#两组数据中只有一组不是正态分布,也要使用非参数两样本Wilcoxon秩检验

#F检验来检验方差齐性。可以使用var.test()函数执行以下操作
res.ftest <- var.test(weight ~ group, data = my_data)
res.ftest

#ratio of variances 
#0.880622 
#F检验为p = 0.8617。它大于显着性水平alpha = 0.05。因此,两组数据的方差之间没有显著差异。因此我们认为男女两组方差相等(方差齐性)。

res <- wilcox.test(weight ~ group, data = my_data, var.equal = TRUE)
res
#p-value = 0.1135 男性的体重与女性的体重没有显著不同。

第十一讲 R-两独样本Wilcoxon检验 - 知乎 (zhihu.com)

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值