异常点VS高杠杆点VS强影响点(Outlier,High Leverage Point,Influential Point)

一,定义

异常点(Outlier)残差很大的点(即:因变量y的值是极端值的观测值)

高杠杆点(High Leverage Point):远离样本空间中心的点(即:自变量x的值是极端值的观测值)

强影响点(Influential Point)对模型有较大影响的点,如果删除该点能改变拟合回归方程

注意:

1,异常点不一定是强影响点,强影响点也不一定是异常点

2,高杠杆点不一定是强影响点,强影响点也不一定是高杠杆点

下面以几张图举例,让大家更好地分清楚什么是异常点,高杠杆点和强影响点。(下图摘自:https://online.stat.psu.edu/stat462/node/170/

(1)

虚线和实线分别是包含红点在内和不包含红点在内训练出来的回归模型。可以看到,两条回归线之间相差不大,因此,该红点不是强影响点。

同时,该红点并没有离其他自变量的值很远,因此也不是高杠杆点。但是它离回归线很远(残差大),因此该红点是异常点。

(2)

虚线和实线分别是包含红点在内和不包含红点在内训练出来的回归模型。可以看到,两条回归线之间相差不大,因此,该红点不是强影响点。

同时,该红点离回归线不远,因此也不是异常点。但是它离其他自变量的值很远,因此该红点是高杠杆点。

(3)

虚线和实线分别是包含红点在内和不包含红点在内训练出来的回归模型。可以看到,两条回归线之间相差较大,因此,该红点是强影响点。

同时,该红点离其他自变量的值较远,因此是高杠杆点。它离回归线也很远(残差大),因此该红点也是异常点。

二,判断

上面的图例是简单线性回归,在实际应用中,通常有多个自变量,因此在高维空间中,我们不可能通过画图来判断某个观测值是否是异常点或高杠杆点或强影响点。

1,判断是否是异常点

(1)标准化残差(standardized residuals):。相对于普通残差来说,消除了量纲的影响。如果标准化残差的绝对值>3,该观测值即判定为异常值。可用R的rstandard()方法计算出标准化残差。

(2)学生化残差(studentized residuals):。相对于标准化残差,还去除了高杠杆值的影响。如果学生化残差的绝对值>3,该观测值即判定为异常值。可用R的outlierTest()方法求得有最大学生化残差的观测值和Bonferroni调整后的p值,从而做出判断。

(3)删除学生化残差(deleted studentized residuals):尽管学生化残差去除了杠杆值的影响,但是异常值会把回归线“拉向”它所在的位置,因此去除掉该点的影响更为客观公正。如果删除学生化残差的绝对值>3,该观测值即判定为异常值。可以用R的rstudent()方法计算出删除学生化残差。(需要注意的是:如果有不止一个异常点,那么即使删除这一个异常点,其他异常值仍会把回归线“拉向”它们所在的位置。)

2,判断是否是高杠杆点

(1)如果帽子统计量大于平均帽子值的3倍,那么可以判断该观测值是高杠杆点。可用R的hatvalues()方法计算出帽子统计量(hat statistic)。

附:为什么叫帽子统计量?(具体请见:https://online.stat.psu.edu/stat462/node/171/

 

H被称为帽子矩阵,因为其相当于给y戴上了一顶帽子来预测y的值。[公式]是权重,当[公式]较大时,说明第[公式]个观测值对第[公式]个拟合值有较大的影响。

它的均值为[公式]

3,判断是否是强影响点

(1)Cook距离法(Cook's D):。Cook距离直接总结了去除某一个数据点之后,其他样本拟合值的变化,相当于综合了残差和杠杆值的信息。可用R的cooks.distance()方法计算出Cook's D。

  • 如果 Di 大于 0.5,那么第i个观测值可能是强影响点,需要对其进行进一步查看。
  • 如果 D大于 1,那么第i个观测值很可能就是强影响点。
  • 如果 Di 小于 0.5,那么第i个观测值不是强影响点。

(2)Dffits(Difference in Fits):比较去除某一个数据点和包含此数据点的预测值y的变化。可以调用R的influence.measures()做诊断。

(3)Dfbetas:比较去除某一个数据点和包含此数据点的每个变量参数的变化。可以调用R的influence.measures()做诊断。

 

另外,可用R的influencePlot()方法将异常点、高杠杆点和强影响点整合到同一张图中

 

此外,用statsodels包可以一并计算出异常点、高杠杆点和强影响点的信息:

三,处理

1,强影响点并不一定是不好的,而是说如果某个点影响特别大,那么需要进一步调查,比如说看是否对变量进行转换。

2,如果发现异常点,首先检查其是否是错误导致的,比如输入错误,测量错误等等,如果是,那么直接删除。但是有时候异常点会提示重要的信息,因此如果异常点不是由错误导致的,则需要进一步的调查,不可简单删除了事。并且所有删除数据点的方法和理由都应该呈现在报告中。删除数据点后要与删除之前的模型作比较,看模型是否变得更好,并将两个模型都记录在报告中。

参考:https://cran.r-project.org/web/packages/olsrr/vignettes/influence_measures.html

猜你喜欢

转载自www.cnblogs.com/HuZihu/p/12017890.html