首页 > 科研绘图 > 如何使用R软件识别并移除离群值?
2022
10-07

如何使用R软件识别并移除离群值?

目录

1.离群值的基础知识1.1 为什么需要关注离群值outliers?1.2 什么是离群值outliers2. 离群值的可视化2.1用Boxplot来可视化离群值(Outliers)2.2 另一种方法更好地可视化离群值(Outliers)3. 删除离群值3.1 方法一(更简单的方法)3.2 方法二(更易懂的方法)4. 小结5. 参考资料

1.离群值的基础知识1.1 为什么需要关注离群值outliers?1.2 什么是离群值outliers

离群值Outliers是统计学专业术语,是指相比一组数据中的其它数据的极限值。

统计学家已经设计出几种方法来定位数据集中的异常值。最常见的方法为四分位间范围 (IQR) 方法。IQR(Interquartile Range)代表四分位数间距,是这些值中的50%中间值,分别是

Q1-25%,

Median-50%,

Q3-75%,

IQR=Q3-Q1

离群值是小于Q1-(1.5)IQR或大于Q3+(1.5)IQR的值。

An outlier would be a point below [Q1-(1.5)IQR] or above [Q3+(1.5)IQR]。

2. 离群值的可视化2.1用Boxplot来可视化离群值(Outliers)data( "warpbreaks") #加载数据集

boxplot( warpbreaks) $out#画箱式图

# [1] 70 67

2.2 另一种方法更好地可视化离群值(Outliers)# 安装包

install.packages( "ggstatsplot")

#加载包

library( ggstatsplot)

# 加载数据集

#画图

ggbetweenstats( warpbreaks,

wool, breaks, outlier.tagging=TRUE)

3. 删除离群值

"哦!这是一个离群值, 因为它远离其余的点 "

然后呢?然后还要继续基于R对离群值进行处理。

3.1 方法一(更简单的方法)outliers <-boxplot(warpbreaks$breaks, plot=FALSE)$out

#定义离群值

x<-warpbreaks

x<- x[-which(x$breaks %in% outliers),]

#提取出不包含离群值的数据集3.2 方法二(更易懂的方法)Q <- quantile(warpbreaks$breaks, probs=c(.25, .75), na.rm = FALSE)

#计算25%与75%的值

iqr <- IQR(warpbreaks$breaks)

#计算四分位间距

up <- Q[2]+1.5*iqr # Upper Range 上限

low<- Q[1]-1.5*iqr # Lower Range 下限

eliminated<- subset(warpbreaks, warpbreaks$breaks > (Q[1] - 1.5*iqr) & warpbreaks$breaks < (Q[2]+1.5*iqr))

#提取出不包含离群值的数据集

ggbetweenstats(eliminated, wool, breaks, outlier.tagging = TRUE)

# 作图

4. 小结

An outlier would be a point below [Q1-(1.5)IQR] or above [Q3+(1.5)IQR]。

使用ggstatsplot包中的ggbetweenstats函数更好实现离群值的可视化

移除 OR 不移除 离群值 关键还要结合临床知识

5. 参考资料

How to Remove Outliers in R

最后编辑:
作者:萌小白
一个热爱网络的青年!

发布评论

表情