从0开始学习R语言--Day15--非参数检验

非参数检验

如果在进行T检验去比较两组数据差异时,假如数据里存在异常值,会把数据之间的差异拉的很大,影响正常的判断。那么这个时候,我们可以尝试用非参数检验的方式来比较数据。

假设我们有A,B两筐苹果,我们并不知道重量具体是多少,且看着苹果有很多不同大小,有的异常大,有的特别小。此时,我们先对两筐苹果做上属于各自的A、B标记,然后混在一起,通过天平比较大小,也就是对苹果重量做个排名。然后计算各自分组的所有苹果的排名总和,并计算检验统计量

将求得的U与以两组苹果数量为基础查的查曼-惠特尼U检验临界值表的U做对比,如果小于后者,则说明两组苹果存在差异。

下面我们用一组例子来说明:

R 复制代码
set.seed(123)

# A筐苹果:偏重的苹果(大部分在150g-300g)
apple_A <- round(runif(10, min=150, max=300), 1)

# B筐苹果:偏轻的苹果(大部分在100g-200g)
apple_B <- round(runif(10, min=100, max=200), 1)

# 创建数据框
fruit_data <- data.frame(
  weight = c(apple_A, apple_B),
  basket = rep(c("A", "B"), each=10)  # 标记属于哪一筐
)

# 查看数据
print(fruit_data)

boxplot(weight ~ basket, data=fruit_data, 
        col=c("lightgreen", "orange"),
        main="两筐苹果的重量对比")

wilcox.test(weight ~ basket, data=fruit_data)

输出:

R 复制代码
	Wilcoxon rank sum exact test

data:  weight by basket
W = 93, p-value = 0.0004871
alternative hypothesis: true location shift is not equal to 0

从输出中可以看到,首先根据箱线图判断,因为明显不重叠,所以判断出两组数据可能存在差异。此时我们进一步计算,由于p=0.0004871 ,小于等于0.05,从而可以确定存在显著的差异,而不是因为异常值导致的差异。

相关推荐
Alsn861 小时前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
YM52e1 小时前
买菜计算器小应用 - HarmonyOS ArkUI 开发实战-PC版本
学习·华为·harmonyos·鸿蒙·鸿蒙系统
小雨下雨的雨1 小时前
HarmonyOS ArkUI训练营入门-组件掌握系列-Animation 动画效果实现-PC版本
学习·华为·harmonyos·鸿蒙
cqbzcsq2 小时前
CellFlow虚拟细胞论文阅读
论文阅读·人工智能·笔记·学习·生物信息
YangYang9YangYan3 小时前
2026初入职场学习数据分析的价值
学习·数据挖掘·数据分析
guslegend3 小时前
理论学习:什么是 Coding Agent?
学习
自传.4 小时前
尚硅谷 Vibe Coding|第三章(1) Claude Code深度使用与进阶技巧 学习笔记
笔记·学习·尚硅谷·vibecoding
踏着七彩祥云的小丑4 小时前
Go学习第9天:并发编程 + 文件操作 + 正则表达式
学习·golang·正则表达式·go
有Li4 小时前
PTCMIL:基于提示 token 聚类的全切片图像多实例学习分析文献速递/多模态医学影像最新进展
论文阅读·学习·数据挖掘·聚类·文献·医学生
憧憬成为web高手4 小时前
l33t-hoster
学习·web安全·网络安全