首页 > 解决方案 > 如何使用库克距离从数据集中删除异常值?

问题描述

我们需要从模型中的数据集中删除异常值/影响点。我有400观察和5解释变量。

我试过这个:

Outlier <- as.numeric(names (cooksdistance)[(cooksdistance > 4 / sample_size)))

其中库克距离是模型的计算库克距离。

问题是这并没有给我实际的异常值。

标签: rstatisticsoutliers

解决方案


在您用于影响观察选择的公式中,条件应如下所示:如果观察的库克距离超过库克距离的 4 倍,则意味着它可以被认为是有影响的(可能是异常值)。


库克距离或库克 D 是执行最小二乘回归分析时数据点影响的常用估计值。

在实际的普通最小二乘分析中,库克距离可用于多种方式:指示有影响的数据 > 特别值得检查有效性的点;或指示设计空间中能够获得更多数据点的区域。

在一般使用中,厨师距离大于平均值 4 倍的那些观察结果可能被归类为有影响的。这不是一个硬性界限。

以数据集的有影响的观察识别为例:ozone

ozone <- read.csv("http://rstatistics.net/wp-content/uploads/2015/09/ozone.csv")
m <- lm(ozone_reading ~ ., data=ozone)
cooksdistance <- cooks.distance(m)

influential <- as.numeric(names(cooksdistance)[(cooksdistance > 4 * mean(cooksdistance, na.rm = TRUE))]) 

ozone[influential, ]
#     Month Day_of_month Day_of_week ozone_reading pressure_height Wind_speed Humidity Temperature_Sandburg Temperature_ElMonte
# 19      1           19           1          4.07            5680          5       73                   52               56.48
# 23      1           23           5          4.90            5700          5       59                   69               51.08
# 58      2           27           5         22.89            5740          3       47                   53               58.82
# 133     5           12           3         33.04            5880          3       80                   80               73.04
# 135     5           14           5         31.15            5850          4       76                   78               71.24
# 149     5           28           5          4.82            5750          3       76                   65               51.08
# 243     8           30           1         37.98            5950          5       62                   92               82.40
# 273     9           29           3          4.60            5640          5       93                   63               54.32
# 286    10           12           2          7.00            5830          8       77                   71               67.10
#     Inversion_base_height Pressure_gradient Inversion_temperature Visibility
# 19                    393               -68                 69.80         10
# 23                   3044                18                 52.88        150
# 58                    885                -4                 67.10         80
# 133                   436                 0                 86.36         40
# 135                  1181                50                 79.88         17
# 149                  3644                86                 59.36         70
# 243                   557                 0                 90.68         70
# 273                  5000                30                 52.70         70
# 286                   337               -17                 81.14         20

解释:

第 58、133、135 行的臭氧读数非常高。

第 23、135 和 149 行的 Inversion_base_height 非常高。

第 19 行的 Pressure_gradient 非常低。


推荐阅读