极端值的英文原文为Outliers,我自己其实一直不确定Outliers的常用翻译是什么,有些人可能也使用“异常值”,我在下述的文本中将统一使用Outliers。
Outliers在统计学实践中一直是一个比较恼人的问题,Outliers可能会使统计结果朝期待/不期待的方向偏移,而如何对Outliers进行处理则成了一件极具主观性的事情。
这篇文章并不试图教授Outliers的处理方法,我会通过一个基于回归模型的例子,来分享一些关于Outliers的思考。
我们现在想要调查上海市中学生智力对其学业表现的影响,假如其对应的总体数据如下:
我们可以从数据中很容易地观察到两变量的线性关系:
我们将这一线性关系用方程式表示,并将其称为该线性回归的总体模型:
在实践中,我们无法获取总体数据,自然也无法知晓总体模型。我们会从该总体中进行取样,在样本量足够大的情况,我们基于样本数据获得的样本模型虽然和总体模型有偏差(蓝色为样本模型,红色为总体模型),但比较接近:
现在我们来看一个特例,当我们的数据集中有一个智力很高,学业表现也异常好的个体(这一个体也来自于这一总体)时,会发生什么:
回归模型的直线由于这一个体有了很大的偏移(较总体模型而言),这是线性回归方法的固有缺陷:回归模型拟合的对象是样本数据,而非总体数据。
这个个体值在统计学上也被称为Outlier,我在初学统计学的时候会认为Outlier是某种异常值,或者说某种错误的东西,比如它可能是数据记录员的笔误。但从我们的例子可以看出,这一Outlier没有任何“错误之处”。它和其他数据点一样,都是总体数据中的一个点,出自于总体。
实践中对Outlier的处理方式通常是将Outlier剔除,但是在很多实验科学中,大家提出Outlier时的理由很有可能是认为Outlier是某种异常的,“错误的”实验结果导致的,所以需要删除。但从上述例子中可以看出,即使Outlier本身是某种合理流程的产物,但只要它离群,它就会使我们的统计结果产生偏差。因此,“离群”往往就足以作为将其剔除的充足理由了。
但是我们这里所说的“剔除”也不是将Outlier从数据集中永久抹去,统计学的实践是一种充满智慧的实践,我们关心的是:离群的Outlier是否会使我们的统计结果产生较大偏移?那么相应的解决办法不应该是直接剔除Outlier,而是对带有Outlier以及剔除Outlier的数据集分别进行回归分析,来观察模型的具体差异。
上述我十分简单地讲述了一些有关Outliers的理解,下面我们再简述一下Outliers为什么可以以一己之力对回归模型产生如此大的影响。
我们已经知道,回归模型的获得通过最小二乘法实现,而在我们的例子中,最小二乘法在做的事情无非是最小化直线到各个数据点的距离平方和,找到一条最贴合数据集的直线。
假如我们有一个数据集,并且带有一个离群点,那么我们可以想象,如果直线选择拟合“主体数据”而忽视离群点,最终付出的代价(距离平方和的增加),要远远大于“无条件拟合”离群点的代价。
如果我们尝试重复采样带有单个Outlier的数据集,并进行回归拟合,我们会发现Outlier处的残差方差异常的小,这也就暗示了回归直线始终穿过Outlier的周围,或者说回归直线“更照顾”Outlier:
我把用于生成上述图片的R代码上传到了粉丝群资料链接中,对该代码和生成过程感兴趣的粉丝可以自行下载研究!
如上,就是今日的全部内容。如果上述内容对您有帮助,欢迎关注本公众号,对本文点赞+在看,持续接收更多干货!