R语言异常值处理方法总结

本文探讨了R语言中异常值的诊断和处理方法,包括箱线图、聚类分析、回归模型和数据平滑技术。通过mice、VIM、mvoutlier等R包,使用箱线图、聚类距离、Cook's距离等手段识别异常值,并介绍了等宽分箱、等比分箱和直接删除等处理策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文章分为两个部分,缺失值诊断和缺失值处理。所用到的R包为mice、VIM、mvoutlier


一、异常值诊断


(1)通过箱线图呈现噪声值。这种该方法可以查看明显的噪声值,但无法提供索引,无法在数据中准确定位噪声值。

(2)聚类方法诊断

为每个观测值聚类,计算与聚类中心距离。距离最大的N类(自定)被诊断为异常值。

(3)聚类方法发现强影响变量

m<-(scale(orgData2)-centers)[outliers,]
m0<-apply(m,2,sd)
m0<-m0/sum(m0)
m2<-abs(m)/apply(abs(m),1,sum)
m3<-t(m0*t(m2))
m3<-m3/apply(m3,1,sum)
#设置最小影响强度
minInf<-0.4
m3[m3>=minInf]<-1
m3[m3<minInf]<-0
orgData2[outliers,]

(4)回归方法诊断噪声值

这种方法必须提前处理缺失值。如用 mice中的多重插补法,或直接忽略。处理完缺失值后,建立线性回归模型。

a. 残差拟合图

b. QQ图

c. 标准化后的残差拟合值图

d. cook距离判断噪声值。一般来说,cook=4/(n-k-1),其中n为观测数,k为变量数(不包括常数项)。计算每个观测的cook距离,若观测cook值明显大于计算出的cook,则可认为是异常点。


二、异常值处理

(1)等宽分箱平滑

这种方法将属性值按照最大最小值,等距地分为N份。用每一份中的平均值或中位数,替换异常值,进行平滑处理。使用cut函数,如cut(orgData4$Gest,4)。

(2)等比分箱平滑

思路与等宽分箱类似。不同之处在于,等比分箱采用分位数进行分箱处理。如qu

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值