线性回归分析中的异常值应该如何处理?

机器算法验证 回归 异常值
2022-02-12 22:41:24

通常情况下,统计分析师会收到一组数据集,并要求他们使用线性回归等技术拟合模型。数据集经常伴随着类似于“哦,是的,我们搞砸了收集其中一些数据点——尽你所能”的免责声明。

这种情况导致回归拟合受到可能是错误数据的异常值的严重影响。鉴于以下情况:

  • 从科学和道德的角度来看,无缘无故丢弃数据是很危险的,因为它“使拟合看起来很糟糕”。

  • 在现实生活中,收集数据的人经常无法回答诸如“在生成这个数据集时,你到底把哪些点搞砸了?”之类的问题。

哪些统计检验或经验法则可用作线性回归分析中排除异常值的基础?

多线性回归有什么特别的考虑吗?

4个回答

您可以使用稳健的回归方法,而不是排除异常值。例如,在 R 中,可以使用rlm()MASS 包lm()中的函数代替函数。估计方法可以调整为对异常值或多或少具有鲁棒性。

有时异常值是不良数据,应排除,例如拼写错误。有时他们是韦恩格雷茨基或迈克尔乔丹,应该保留。

异常值检测方法包括:

单变量 -> 箱线图。超出 1.5 倍四分位数范围是异常值。

双变量 -> 带有置信椭圆的散点图。例如,在 95% 置信椭圆之外是异常值。

多元 -> Mahalanobis D2 距离

将这些观察结果标记为异常值。

运行逻辑回归(在 Y=IsOutlier 上)以查看是否存在任何系统模式。

删除那些你可以证明它们不代表任何子群体的人。

我确实认为仅排除异常值是有道理的。回归线应该总结数据。由于杠杆作用,您可能会遇到 1% 的数据点影响斜率 50% 的情况。

如果您不告诉任何人您排除了异常值,那么从道德和科学的角度来看,这只是危险的。只要你指出它们,你就可以说:

“这条回归线非常适合大多数数据。1% 的时间会出现一个不符合这一趋势的值,但是嘿,这是一个疯狂的世界,没有系统是完美的”

记号笔,

从字面上看你的问题,我认为没有统计测试或经验法则可以用作在线性回归分析中排除异常值的基础(而不是确定给定的观察值是否是异常值)。这必须来自学科领域的知识。

我认为最好的开始方法是询问异常值是否有意义,尤其是考虑到您收集的其他变量。例如,你的研究中有一个 600 磅的女性,从各种运动损伤诊所招募来,这真的合理吗?或者,一个人在 60 岁时列出 55 年或专业经验,这难道不奇怪吗?等等。希望你有一个合理的基础,要么把它们扔掉,要么让数据编译器为你仔细检查记录。

正如 Rob 和 Chris 分别建议的那样,我还建议使用稳健的回归方法和透明地报告丢弃的观察结果。

希望这会有所帮助,布伦登