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为您提供了杠杆点,这些杠杆点不一定是异常值,正如其他人提到的,您希望在模型拟合之前删除异常值(如果有的话)。