使用R boxplot.stats函数进行异常检测

本文介绍了使用R语言中的boxplot.stats函数进行异常值检测的方法,通过计算四分位距(IQR)确定上须值和下须值,从而识别数据中的异常点。在示例中,我们展示了如何过滤并可视化这些异常值,利用ggplot2库创建了原始数据点图和箱线图,有效地突出了异常值的位置。
部署运行你感兴趣的模型镜像

异常值一般指数据远离大多数观察值。有很多种方式进行异常值检测,如基于变量空间距离度量,把距离太远的观察值标记为异常值。还有基于数据分布的检测方法,本文利用boxplot.stats函数来解释基于分布的异常检测方法,并利用ggplot图视表示。

boxplot.stats函数原理

该检测方法先假定数据的预期分布,把背离这种分布的数值标记为异常值。

首先计算数据集的四分位数据Q1、Q3,利用公示计算四分位距:IQR=Q3-Q1 ;
然后就能计算两边的异常值(或离群值):

  • 上须值:Q3+1.5*IQR
  • 下须值:Q1-1.5*IQR

识别异常值就是计算大于上须值或小于下须值的数据。

library(ggplot2)
library(tibble)

set.seed(222)

m <- as_tibble(rnorm(100)) %>% mutate(id=row_number(), .before="value")
head(m, 10)
#     id    value
# <int>    <dbl>
#     1  1.49   
#     2 -0.00189
#     3  1.38   
#     4 -0.380  
#     5  0.184  
#     6 -0.247  
#     7 -1.22   
#     8  1.56   
#     9  0.427  
#    10 -1.20 

st <- boxplot.stats(m$value)
out_points <- filter(m, m$value %in% st$out)
out_points

#      id value
#   <int> <dbl>
# 1    70 -2.77
# 2    74 -2.53

# 首先画原始数据,然后再用红色画出离群值
ggplot(m, aes(x=id, y=value)) + geom_point() +
  geom_point(data = out_points, aes(x=id, y=value, color ="red"))

ggplot(m, aes(y=value)) + geom_boxplot() +
  ggtitle("箱线图展示")
在这里插入图片描述
在这里插入图片描述

您可能感兴趣的与本文相关的镜像

Seed-Coder-8B-Base

Seed-Coder-8B-Base

文本生成
Seed-Coder

Seed-Coder是一个功能强大、透明、参数高效的 8B 级开源代码模型系列,包括基础变体、指导变体和推理变体,由字节团队开源

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值