R语言数据异常值处理

文章目录

什么是异常值

异常值简单来说就是偏离数据集整体的值。在统计学意义上,如果一个值偏离整体,那么就会影响其正态分布,进而影响需要以正态分布为前提的统计模型(如线性回归、方差分析)的结果准确度。

检验异常值的方法

原则

检验异常值的方法通常基于 3 α 3α 3α原则(拉依达准则法)。即将超过3个标准差的数值视为异常值。一个变量整体如果正态分布,那么变量组成部分在 ± 3 α ±3α ±3α分布的概率为99.7%。超过3个标准差的概率为 P ( ∣ x − μ ∣ 3 α ) = 0.003 P(|x-μ|3α)=0.003 P(xμ3α)=0.003,属于小概率事件。

箱线图

箱线图( B o x p l o t Boxplot Boxplot)是一种利用数据中的五个统计量:最小值( M i n Min Min)、第一四分位数( Q 1 Q1 Q1)、中位数( M e d Med Med)、第三四分位数( Q 3 Q3 Q3)和最大值( M a x Max Max)来描述数据的一种方法。它可以简单地看出数据是否对称、分布的分散程度,还可以用于对多个样本进行比较。
检验异常值最直观的方法就是用箱线图进行可视化(也称 T u K e y ′ s TuKey’s TuKeys t e s t test test法)。它以四分位距( I Q R IQR IQR)的1.5倍为标准,规定:超过上四分位+1.5倍 I Q R IQR IQR距离或下四分位-1.5倍 I Q R IQR IQR距离的点为异常点。
示例

#设置种子
set.seed(1234)
#生成200个服从N(0,1)的随机数
x <- rnorm(200)
#使用boxplot.stats函数查看统计。
#结果依次返回箱线图相关5个统计值、非缺失值个数、95%置信区间、异常值
boxplot.stats(x)
$stats
[1] -2.7322195 -0.7748037 -0.1718906  0.5565266  2.5489911

$n
[1] 200

$conf
[1] -0.32063066 -0.02315059

$out
[1]  3.043766 -2.855759
#绘制箱线图
boxplot(x)

《R语言数据异常值处理》
从图中可以看出存在两个 ○ ○ ,这两个 ○ ○ 即是异常值。

set.seed函数功能是设置种子,方便结果的复现。如果不设置种子,x<-rnorm(200)生成的随机数每次会不一样,不利于结果重现。
R语言中,异常值的检测除了箱线图还有局部异常因子法(LOF法)、聚类分析方法、时间序列数据异常值检测、稳健马氏距离检测。本文为入门教程,不提。

异常值的处理

异常值的处理通常为:

  • 删除包含异常值的个案(行变量)
  • 将异常值按缺失值方法处理
  • 不处理
    原文作者:「已注销」
    原文地址: https://blog.csdn.net/renewallee/article/details/102879195
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞