R语言异常值处理方法总结
来源:互联网 发布:软件开发需求文档 编辑:程序博客网 时间:2024/06/05 03:56
文章分为两个部分,缺失值诊断和缺失值处理。所用到的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)等比分箱平滑
思路与等宽分箱类似。不同之处在于,等比分箱采用分位数进行分箱处理。如quantile(orgData4$Gest,probs=seq(0,1,1/4))。若按此种方法分,分割值为第一分位数、中位数和第三中位数。这种方法较等宽分箱的优势在于,数据在箱中分布较为均匀,得出箱中的平均数或中位数,可以较好地替换平滑异常值。
(3)直接删除法
(4)回归拟合法
前面可以用利用大于计算出的cook值的方法发现异常值。发现异常值后,用线性回归模型的拟合值进行代替。我对这种方法用一个疑虑。回归模型的建立是包含异常值的,但用包含异常值拟合的模型去拟合异常值,会不会产生结果的失真?或许可以采用处理缺失值类似的方法,先剔除异常值的影响,重新建模,用剔除异常值的模型与拟合异常值。
- R语言异常值处理方法总结
- R语言异常处理机制
- R语言字符串处理总结
- R语言|数据预处理--5异常值分析及处理
- R语言中的异常或错误处理
- R语言文本读取异常处理
- 【转】R语言异常检测处理
- R语言--异常值检测
- R语言︱异常值检验、离群点分析、异常值处理
- R语言︱异常值检验、离群点分析、异常值处理
- Perl异常处理方法总结
- R语言遇到bug的处理方法
- R语言缺失值处理
- R语言缺失值处理
- R语言 缺失值处理
- R语言缺失值处理
- R语言缺失值处理
- R语言画地图方法总结
- sql 行转列,总结分析
- 读取文本文件中文每一行并存储到txt
- H-Index leetcode
- POJ - 1723 Soldiers 士兵站队 排序+中位数
- LeetCode Perfect Squares(动态规划)
- R语言异常值处理方法总结
- 用Java访问带有Kerberos认证的HBase
- hihocoder1039:字符串
- Android将应用log信息保存文件
- MyBatis
- #163 – Constructing FrameworkPropertyMetadata(构造FrameworkPropertyMetadata)
- Android仿微信,上传本地多张图片,缩放预览,以及图片处理等
- TreeSet中红黑树依赖的2种排序方式
- 三门问题