如何使用R软件识别并移除离群值?
卖萌控的博客
点击这里进入电脑版页面!体验更好
如何使用R软件识别并移除离群值?
2022-10-7 萌小白


目录



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
发表评论:
昵称

邮件地址 (选填)

个人主页 (选填)

内容