基础方法 | 如何用R语言做回归诊断:原理与操作

Posted 来点方法

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基础方法 | 如何用R语言做回归诊断:原理与操作相关的知识,希望对你有一定的参考价值。

好久好久好久~ 没有更新了,断更之后的第一次复更还是偷个懒。
3 13 日本公众号推送了一文 ,主要讲解了回归诊断的原理与Stata 操作,本次推送则是主要讲解一下R 语言的回归诊断操作,具体原理不再赘述,可参考上一篇推文!
R 语言在回归诊断方面的功能是十分出色的!

方法1 :非正式诊断
这也是在回归诊断中最常用的,即通过作图的方法进行诊断。 R 语言在这方面非常的“秀”,只用一个命令就能输出所有的诊断图。代码如下:

>m1<- lm y~x1+x2… # 首先拟合一个线性模型
>par(mfrow=c(2,2))# 4 张诊断图一起显示出来,如果没有这个命令,诊断图一张一张显示
>plot(m1)# 如果有报错Error in plot.new() : figure margins too large # 只需将右侧显示栏拉大再运行即可
plot m1 )运行完后,会在 R studio 右侧的 Viewer 界面显示四个诊断图
                                             
接下来,我们来看一下这四个图都改如何解读:
图一残差拟合图:主要用于线性诊断
若因变量与自变量线性相关,那么残差值与预测(拟合)值就没有任何系统关联
解决措施 // 换模型、二次项等
图二正态QQ 图:主要用于正态检验
正态 QQ 图是在正态分布对应的值下,标准化残差的概率图。若满足正态假设,那么图上的点应该落在呈 45 度角的直线上
图三位置尺度图:主要用于同方差检验
若满足不变方差假设,那么在“位置尺度图” 中,水平线周围的点应该随机分布。
图四残差与杠杆图:主要用于奇异值诊断
残差与杠杆图,离群点
解决办法 // 删掉。然后重新再做一次回归。

方法2 :正式诊断
对于正式诊断,主要是通过一些统计量进行的,在 R 语言中, R 包“ gvlma ”中给出了一个综合诊断标准,运行完下列代码后, R 会直接返回下图的结果,例如在本文中的例子,他告诉你,你的假定没有没有满足。
>library(gvlma)
>gvmodel <- gvlma(m1)
>summary(gvmodel)
此外,也可以利用“car ”包中的durbinWatsonTest 进行误差独立性诊断,如果p 不显著,说明没有自相关
利用ncvTest 进行同方差诊断,如果p 不显著,说明满足同方差
示例如下:
>library(car)
>durbinWatsonTest(m1)# 误差独立型诊断
>ncvTest(m1)# 同方差诊断


以上是关于基础方法 | 如何用R语言做回归诊断:原理与操作的主要内容,如果未能解决你的问题,请参考以下文章

如何用r语言对rugarch拟合好的模型做诊断

如何用R软件做多类别Logistic回归

r语言怎么做每一列和第一列线性回归

R语言—回归诊断

r语言如何最小二乘线性回归分析

如何用r语言分析两个变量是不是有影响