R语言入门秘录23/25:检查线性回归

数据分析网整理自tbkken的《R语言入门25招》,一招招技能带你走进R语言。

问题

已经做完了线性回归,现在想检查一下所得到的模型的质量。

解决方案

首先把这个模型画出来,可以得到几个用来判断模型质量的图:

> m <- lm(y ~ x) 
> plot(m)

接下来,可以看一下残差的图,这可以发现可能的异常值。也可以用car包中的outlier.test函数:

> library(car) 
> outlier.test(m)

最后,可以看看哪些观察有较大的影响(例如可以用influence.measures函数)。

讨论

在R中,线性回归分析变得无比简单,一个lm函数就摆平了一切。但拟合数据还仅仅是万里长征第一步。最终决定成败的是拟合的模型是否能真正地派上用场,而且有好效果。

首先,模型必须要是统计显著的。检查模型摘要(见第22招)中的F统计量,确保它的P值足够小。通常来说,P值应该小于0.05,否则模型就可能没意义。

简单的画出model对象,也可以得到一些有用的诊断图:

> m <- lm(y ~ x) 
> plot(m)

图1-7中是一个拟合效果很好的回归的诊断图:

  • Residuals vs Fitted(残差vs拟合值)图中的点是随机散布的,没有任何特别的模式。
  • 正态Q–Q图中的点基本上是在对角线上的,说明残差基本符合正态分布。
  • 在Scale–Location图和Residuals vs Leverage图中的点都没有远离中心。

R语言入门秘录23/25:检查线性回归图1-7:拟合效果较好的模型

与之相对的是,图1-8中的诊断图就说明回归模型的效果不太好。在残差vs拟合值图中是有明显的抛物线。这就说明该模型是不完全的:有一个二次因素没有考虑到。残差的不同模型说明了不同的问题,例如,锥形表示y中有非常数方差。解释这些模式是一件很艺术的事情,最好是去看看关于线性回归的书。

图1-8中还能看出一些问题。跟好的回归相比,这里的正态Q-Q图中有太多的点没在对角线上。在Scale–Location和Residuals vs Leverage图中,有不少点偏离中心位置,说明部分样本有明显的杠杆作用。

R语言入门秘录23/25:检查线性回归图1-8 拟合效果较差的模型

另一个现象是,编号28的点在每个图中都显得与众不同。这实际上是在警告我们,这个观察很特别。比如,这有可能是个异常值。可以用car包的outlier.test函数来检查一下:

> outlier.test(m)
max|rstudent| = 3.183304, degrees of freedom = 27, 
unadjusted p = 0.003648903, Bonferroni p = 0.1094671

Observation: 28

outlier.test可以发现模型中最异常的观察。在这里,它发现了28号观察,这说明28号应该是个异常值。

扩展阅读

标准的R中并没有包含car包,需要用install.packages下载安装。

本文采用「CC BY-SA 4.0 CN」协议转载自互联网、仅供学习交流,内容版权归原作者所有,如涉作品、版权和其他问题请给「我们」留言处理。

(0)
上一篇 2016-01-16 14:45
下一篇 2016-01-19 14:53

相关文章

关注我们
关注我们
分享本页
返回顶部