我们需要从模型的数据集中删除异常值/影响点。我有400
个观察结果和5
个解释变量。
我已经尝试过了:
Outlier <- as.numeric(names (cooksdistance)[(cooksdistance > 4 / sample_size)))
库克距离是模型计算出的库克距离。
问题在于,这并没有给我真正的异常值。
答案 0 :(得分:0)
在用于有影响力的观察选择的公式中,条件应如下:如果观察的库克距离大于库克距离的4倍,则可以认为它是有影响力的(可能是离群值)。
库克距离或库克D是对数据点影响的常用估计值
在执行最小二乘回归分析时。至少在实践中是普通的 在平方分析中,可通过多种方式使用库克距离:表示有影响力的数据>特别值得验证有效性的点;或指出 设计空间,这样可以获取更多数据点。
通常,那些具有 厨师的距离大于平均值的4倍,可以归类为 有影响。这不是硬性界限。
请以ozone
数据集的influential observation identification为例:
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非常低。