梅斯医学MedSci APP
医路相伴,成就大医

数据中的异常值,应该直接删除吗?

Tags: 异常值      作者:冯国双 更新:2019-05-20

不少人曾问我:我的数据中有异常值,是不是应该删除?要回答这个问题,我们必须从异常值的概念来谈起。可能有的人觉得异常值很好理解,不就是“异常”的值吗?关键是,怎样才算异常呢?

例:在10个数据中(下图黑色点)人为加入红、绿、紫色的3个点,它们都是异常值吗?



异常值其实是一个较为宽泛的概念,它至少包含了三种情形:

(1) 离群值(outliner)

离群值是指从因变量y的角度来看属于异常的值,如图中的红色点和绿色点,偏离y的均值较其它点更远。

离群值通常采用学生化残差来判断。

(2) 高杠杆值(high leverage)

高杠杆值是指从自变量x的角度来看属于异常的值,如图中的紫色点和绿色点,在x轴上偏离x的均值较远。

高杠杆值通常采用杠杆值来判断。

(3) 强影响值(influential observation)

强影响值是指对模型影响较大的值,也就是说,如果删除了该值,会导致模型发生很大变化(如系数值改变较大)。

强影响点通常采用COOK'D值、DFBETAS和DFFITS来判断。

下图比较了不同异常值对模型拟合效果的影响。图中黑色实线表示不含这3个异常值的拟合线,绿色、红色、紫色虚线分别表示含绿色点、红色点、紫色点时的拟合线。



不难看出,含有绿色点时,对模型拟合影响几乎不大(与黑色实线几乎重合);含有紫色点时,拟合线被向下拉低,即回归系数远低于黑色实线;含有红色点时,拟合线也被拉低。

如果要判断的话,绿色点虽然从x方向和y方向上都偏离均值,但却不是强影响点;紫色点和红色点才是强影响点,因为单独的任一点便可以导致系数发生很大变化。

我们现在已经明白了如何判断一个点是不是异常点,紧接着的问题就是,如果我发现了异常点,应该怎么处理?不少人习惯简单粗暴的方法,即直接删除。这并不是最好的办法,有时甚至会让你错过一些真正的规律。

当你发现异常值后,一定要先分清是什么原因导致的异常值,然后再考虑如何处理。

如果是属于录入错误或实验室记录错误等,这很容易,立刻修改即可。

如果不是录入错误,而是确实存在这样的异常值,这时需要根据不同情形来分别对待。

首先,如果这一异常值并不代表一种规律性的,而是极其偶然的现象,或者说你并不想研究这种偶然的现象,这时可以将其删除。例如,你要研究身高与血压的关系,但你的研究人群中恰好纳入了姚明,这种情况下,可以将其删除,只用其他人进行分析。因为这并不代表一种规律性的现象,而且你可能也不想研究特殊的情况。

其次,如果异常值存在且代表了一种真实存在的现象,那就不能随便删除。比如调查了100个村的癌发病率,可能确实有个别村庄的发病率远远高于其它村,这时就不能随便删除,而是要把这些异常点纳入,重新拟合模型,研究其规律。

例:某实验室检测了细菌培养菌群数量与时间的关系,试进行分析。

很明显,下图中的两个红点是异常点,可以让线性回归的系数发生剧烈变化。



那这种情况下是否需要删除这两个值呢?首先看一下这两个值是否实验误差,如果这两个值是准确的,那它很可能代表了一种真实情况。也就是说,在短期内增长缓慢,但是到了一个关键时间点后(如30),种群数量就会剧增。

此时如果你直接删除这两个点,就无法真正发现这种规律。所以我们可以纳入这两个点,但是不能拟合线性回归,而是要根据其形状拟合非线性模型。如此处可以考虑对时间time进行指数变换,可以发现变换后模型更能有效地拟合数据。


来源:小白学统计
版权声明:
本网站所有注明“来源:梅斯医学”或“来源:MedSci原创”的文字、图片和音视频资料,版权均属于梅斯医学所有,非经授权,任何媒体、网站或个人不得转载,授权转载时须注明“来源:梅斯医学”。本网所有转载文章系出于传递更多信息之目的,且明确注明来源和作者,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。同时转载内容不代表本站立场。
在此留言
小提示:本篇资讯需要登录阅读,点击跳转登录
移动应用
medsci.cn © 2020