异常值的观测

       异常值是数据集较为特殊的一类值,指距离大部分数据点明显较远的值。他的产生原因可能是数据录入错误,数据产生条件与其他数据不一致或小概率事件等。并且,异常值对数据分析的结果影响也很大。

观测异常值:


箱线图


       箱线图是一种根据极值,四分位数,和中位数画出的图形,图中还标出了常规意义上的异常值,即距离中位数远于三个标准差的值。我们可以使用Boxplot( )函数画出箱线图,箱线图虽然直观易读,但是它提供的信息并不准确,比如说是那些数字是异常值,我们并不知道。这个时候,我们就可以用boxplot.stats()函数来查看详细的信息,stats信息是去掉异常值的极值,四分位数,以及中位数,n的信息表示属性数据点的个数,conf的信息表示属性中位数±IQR/sqrt(n)的结果,是用来衡量中位数的一个置信区间,out的信息表示属性中异常值的具体数值。outlier<-which(attenu$dist %in% boxplot.stats(attenu$dist)$out)可以直接删除异常值,%in%匹配了他们之间有交集的那一部分,which()函数将符合这些条件的数据赋给了outlier变量。
       对于多峰分布的数据集,可以使用DMwR包或drep包,根据提供的LOF算法提供的局部异常因子lofactor()函数。它可以帮助我们找到那些离数据左边和右边很远的数据点,并且把这些数据点视为异常值。但数据如果是时间序列数据,由于存在周期性,因此就不能使用lofactor()函数。但可以使用stl()函数来对时间序列数据进行处理,它是通过利用稳健回归算法对时间序列进行一个分解,进而达到识别异常值的目的。

        outilers()包还提供了Grubbs和Dixon等检测异常值的方法。Grubbs是将数据值和数据集均值的差的绝对值与数据集标准差相除,然后将除数和异常值分布进行一个比较,如果除数大于临界值,则认为该数据值是异常值。Dixon也是使用比较统计量和临界值的方法来检验异常值。


  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值