R 如何使用Cook'从数据集中删除异常值;距离是多少?

R 如何使用Cook'从数据集中删除异常值;距离是多少?,r,statistics,outliers,R,Statistics,Outliers,我们需要从模型中的数据集中删除异常值/影响点。我有400观察值和5解释变量 我试过这个: Outlier <- as.numeric(names (cooksdistance)[(cooksdistance > 4 / sample_size))) Outlier 4/样本大小) 其中Cook's distance是模型的计算Cook's distance 问题是,这并没有给出实际的异常值。在您用于有影响力的观测值选择的公式中,条件应如下:如果一个观测值的Cook距离大于Cook

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

我试过这个:

Outlier <- as.numeric(names (cooksdistance)[(cooksdistance > 4 / sample_size)))
Outlier 4/样本大小)
其中Cook's distance是模型的计算Cook's distance


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

在您用于有影响力的观测值选择的公式中,条件应如下:如果一个观测值的Cook距离大于Cook距离的4倍,则表示它可以被视为有效(可能是异常值)

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

在实际的普通情况下,至少 通过平方分析,库克距离可用于以下几种方式:表示有影响的数据>特别值得检查有效性的点;或指示该区域 设计能够获得更多数据点的空间

在一般情况下,具有 库克距离大于平均值的4倍可归类为 有很大影响的这不是一个硬边界

请参见
臭氧
数据集的示例:

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

臭氧欢迎来到SO!这个社区有一些建议,遵循这些建议将帮助您对您的问题获得一个好的答案。特别是,最好提供一个(最少、完整且可验证的示例)。对于特定于R的MVCE有很好的建议,我认为您可能是想从数据中删除异常值,而不是从模型中删除。这意味着您需要在代码中引用数据帧。。。如果您遵循Dan的一些建议并创建一个可复制的示例,那么将更容易提供帮助。“R for Data Science”是一个极好的资源。向下滚动至7.3.3异常值。此外,谷歌删除r中的异常值。。。有很多很多结果。Cook distance为您提供了杠杆点,这些杠杆点不一定是异常值,正如其他人提到的,您希望在模型拟合之前删除异常值(如果有的话)。