其他分享
首页 > 其他分享> > R语言-使用箱型图进行数据异常值分析

R语言-使用箱型图进行数据异常值分析

作者:互联网

R语言-使用箱型图进行数据异常值分析


首先介绍本文章的主要内容:
1. 检查批量数据的完整性(录入不全)
2. 异常值分析(录入错误以及数据不合理)

箱形图(英文:Box plot),是一种用作显示一组数据分散情况资料的统计图。在各种领域也经常被使用,常见于品质管理,快速识别异常值。
在这里插入图片描述一.箱子的中间一条线,是数据的中位数,代表了样本数据的平均水平。

二.箱子的上下限,分别是数据的上四分位数和下四分位数。这意味着箱子包含了50%的数据。因此,箱子的宽度在一定程度上反映了数据的波动程度。

三.在箱子的上方和下方,又各有一条线。代表着最大最小值。如果有点冒出去,理解成“异常值”就好。

示例数据集为:

在这里插入图片描述``
R语言代码:统计完整数据个数与不完整数据个数

#设置工作空间
setwd("F:/chapter3/数据探索")
#读取表单数据
saledata=read.csv(file="./data/catering_sale.csv",header=TRUE)
#记录完整数据个数
sum(complete.cases(saledata))
#记录不完整数据个数
sum(!complete.cases(saledata))

结果:说明有200个完整的数据和一个不完整的数据
在这里插入图片描述

#输出不完整数据占样本总量的大小
mean(!complete.cases(saledata))
#提取不完整所在的行
saledata[!complete.cases(saledata),]

在这里插入图片描述


# 异常值检测箱线图
sp <- boxplot(saledata$"销量", boxwex = 0.7)
title("销量异常值检测箱线图")
xi <- 1.1
#标准方差公式
sd.s <- sd(saledata[complete.cases(saledata), ]$"销量")
#中位数公式
mn.s <- mean(saledata[complete.cases(saledata), ]$"销量")
points(xi, mn.s, col = "red", pch = 18)
arrows(xi, mn.s - sd.s, xi, mn.s + sd.s, code = 3, col = "pink", angle = 75, length = .1)
text(rep(c(1.05, 1.05, 0.95, 0.95), length = length(sp$out)), 
     labels = sp$out[order(sp$out)], sp$out[order(sp$out)] + 
       rep(c(150, -150, 150, -150), length = length(sp$out)), col = "red")

在这里插入图片描述可以看到在箱型图中超过上下界的8个销售额数值可能为异常值

标签:语言,异常,完整,saledata,箱型,数据,cases,complete
来源: https://blog.csdn.net/qq_38988257/article/details/113838247