离群值(outlier),是指在数据中有一个或几个数值与其他数值相比差异较大的数值。一般我们通过箱形图来直观判断,如果观测值距箱式图底线Q1(下四分位数)或顶线Q3(上四分位数)过远,如超出箱体高度(四分位数间距)的两倍以上,则可视该观测值为离群值/异常值。
计算:
- Q1 = 数据集的中位数
- Q2 = 较小数据集的中位数(根据Q1分成两段)
- Q3 = 较大数据集的中位数
- IQR = Q3 – Q1
一般我们定义Q1 – 1.5 IQR以下 或 超过 Q3 + 1.5 IQR的数据为离群值。
下面利用ggstatsplot
来计算绘制箱形图并添加标签:
# 安装包ggstatsplot
# install.packages("ggstatsplot")
library(ggstatsplot)
library(dplyr)
# 加载数据集
data <- warpbreaks %>% as.data.frame()
data$label <- paste0("L", row.names(data))
# 标注离群值,此处选择了默认的小提琴+箱形图绘制,也可以选择只用箱形图
ggbetweenstats(data,
wool,
breaks,
mean.plotting = F,
bf.message = F,
results.subtitle = F,
outlier.tagging = T,
# 添加标签
outlier.label = label,
# 小提琴设置参数
violin.args = list(width = 0.8, alpha = 0.2))
参考资料:
1.https://www.r-bloggers.com/2020/01/how-to-remove-outliers-in-r/