异常值是数据集较为特殊的一类值,指距离大部分数据点明显较远的值。他的产生原因可能是数据录入错误,数据产生条件与其他数据不一致或小概率事件等。并且,异常值对数据分析的结果影响也很大。
对于多峰分布的数据集,可以使用DMwR包或drep包,根据提供的LOF算法提供的局部异常因子lofactor()函数。它可以帮助我们找到那些离数据左边和右边很远的数据点,并且把这些数据点视为异常值。但数据如果是时间序列数据,由于存在周期性,因此就不能使用lofactor()函数。但可以使用stl()函数来对时间序列数据进行处理,它是通过利用稳健回归算法对时间序列进行一个分解,进而达到识别异常值的目的。
观测异常值:
箱线图
对于多峰分布的数据集,可以使用DMwR包或drep包,根据提供的LOF算法提供的局部异常因子lofactor()函数。它可以帮助我们找到那些离数据左边和右边很远的数据点,并且把这些数据点视为异常值。但数据如果是时间序列数据,由于存在周期性,因此就不能使用lofactor()函数。但可以使用stl()函数来对时间序列数据进行处理,它是通过利用稳健回归算法对时间序列进行一个分解,进而达到识别异常值的目的。
outilers()包还提供了Grubbs和Dixon等检测异常值的方法。Grubbs是将数据值和数据集均值的差的绝对值与数据集标准差相除,然后将除数和异常值分布进行一个比较,如果除数大于临界值,则认为该数据值是异常值。Dixon也是使用比较统计量和临界值的方法来检验异常值。