R语言过滤极端异常值

在做归一化时,往往需要过滤掉异常值,来消除异常值对归一化的影响,接下来我们看看异常值的定义,以及如何处理异常值。

四分位数(quartile)是指在统计学中把所有数值由小到大排列并分成四等份,处于三个分割点位置的数值。四分位数也被称为四分位点,它是将全部数据分成相等的四部分,其中每部分包括 25%的数据,处在各分位点的数值就是四分位数。四分位数有三个,第一个四分位数是下四分位数,第二个四分位数就是中位数,第三个四分位数称为上四分位数,分别用 Q1、Q2、Q3表示

四分位距IQR:是Q3-Q1,也就是说上下四分位数的差值。

上下限:上下限并不是整个数据样本的最大值和最小值,而是上限 = Q3+1.5IQR和下限 = Q1-1.5IQR ,在上下限这里分别划出两条线段作为异常值的分界点。

那么在箱线图中,上下限之间就是数据样本的正常分布区间,超出上下限就定义为异常值。而异常值又可以细分为温和异常值和极端异常值。

温和异常值: 介于Q3+1.5IQR与Q3+3IQR之间,或Q1-3IQR 与Q1-1.5IQR之间的异常点。

极端异常值:超出Q3+3IQR或Q1-3IQR之外的异常点。
在这里插入图片描述

R语言过滤极端异常值

将极端异常值替换为Q3+3IQR或Q1-3IQR

# 加载包
library(tidyverse)

# 自定义函数,传入数据列,返回经过处理的数据列(将极端异常值替换为Q3+3IQR或Q1-3IQR)
IQRFilter = function(x){          
  myQuart =quantile(x,na.rm=T)            # 找出数据列的Q123分位数
  IQR =  myQuart[4] - myQuart[2]          # IQR = Q3-Q1
  outliers_top = myQuart[4] + 3 * IQR     # 计算上方的极端异常值 Q3+3IQR
  outliers_bottom = myQuart[2] - 3 * IQR  # 计算下方的极端异常值 Q1-3IQR
  x[x>outliers_top] = outliers_top        # 将数据中大于Q3+3IQR的数替为Q3+3IQR
  x[x<outliers_bottom] = outliers_bottom  # 将数据中小于Q1-3IQR的数替为Q1-3IQR
  return(x)
}

# 将数据框中的数字类型的数据一列一列的传入自定义函数IQRFilter
iris %>%
  mutate(across(where(is.numeric),IQRFilter))
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
R语言中,我们可以使用boxplot函数来绘制箱线图,并且可以通过参数来进行异常值检验。 首先,我们需要了解箱线图的构成,箱线图由以下几部分组成: 1. 最大值和最小值:箱线图的两端表示数据的最大值和最小值。 2. 上四分位数(Q3)和下四分位数(Q1):箱线图的箱体表示数据的四分位数,即将数据按大小排序后,将其划分为四等份,其中上四分位数表示数据的前75%的中位数,下四分位数表示数据的后25%的中位数。 3. 中位数(Q2):箱线图的箱体中央线表示数据的中位数,即将数据按大小排序后,位于中间的数值。 4. 异常值(outliers):箱线图中的点表示数据中的异常值,即与其他数据相比较为极端的值。 接下来,我们可以使用boxplot函数的参数来进行异常值检验: 1. notch:是否绘制缺口,如果数据的中位数不在箱体中央线上,则绘制缺口。 2. varwidth:是否根据箱体的大小调整箱体宽度。 3. outline:是否将异常值绘制为点,如果为FALSE,则不绘制异常值。 4. range:在计算异常值时,是否使用1.5倍的四分位距。 例如,我们可以使用以下代码来绘制箱线图并进行异常值检验: ``` # 生成随机数据 data <- rnorm(100) # 绘制箱线图并进行异常值检验 boxplot(data, notch=TRUE, varwidth=TRUE, outline=TRUE, range=1.5) ``` 在绘制完箱线图后,我们可以根据图中的点来判断是否存在异常值,如果存在,则需要进一步分析和处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值