R语言—回归诊断

Posted 大康的笔记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R语言—回归诊断相关的知识,希望对你有一定的参考价值。

上期介绍了回归诊断的标准方法,但是还有一些改进的方法可以更好的对回归模型进行验证。
(一)线性模型假设综合验证
使用gvlma包中的gvlma()函数。

#回归诊断

> state<-as.data.frame(state.x77[,c("Murder","Population","Illiteracy","Income","Frost")])

> fit<-lm(Murder~Population+Illiteracy+Income+Frost,data=state)

> library(gvlma)

> gvmodel<-gvlma(fit)

> summary(gvmodel)

我们可以看到数据满足OLS回归模型所有的统计假设(p=0.597),若p<0.05)则可用以下方法继续检测。
(二)car包中提供多个拟合和评价回归模型的函数
(1)正态性
检验正态性可以用car包中的qqPlot()函数。

>library(car)

>qqPlot(fit,labels=row.names(states),id.method="identify",simulate=TRUE,main="qqPlot")

R语言—回归诊断(2)

在上图可以很清楚的看到大多数的点均落在置信区间内,但Nevada点离直线比较远,说明该模型在该点时有较大的正残差值,也就是说模型在该点的预测是不准确的。
(2)独立性

>library(car)

>durbinWatsonTest(fit)

R语言—回归诊断(2)

结果表明p>0.05,说明变量之间相互独立,符合独立性。
(3)线性

>library(car)

>crPlots(fit)

R语言—回归诊断(2)

本图中线性关系良好,若存在非线性,说明可能对预测变量的函数形式建模不够充分,那么就需要添加一些非线性成分,如添加多项式项等。
(4)同方差性

>library(car)

>ncvTest(fit)

R语言—回归诊断(2)

结果中p>0.05,表明满足同方差性。
(5)多重共线性

>library(car)

>vif(fit)

>sqrt(vif(fit))>2

R语言—回归诊断(2)

若vif的平方根大于2,说明存在多重共线问题,本结果中均小于2,表明不存在多重共线问题。
以上就是回归诊断的常用方法,这些是对模型很重要的评价手段,我们可以根据评价结果对所建模型进行修改。下期将会介绍模型中异常观测值的处理,明天见喽!

扫描二维码

获取更多精彩

大康的笔记

R语言—回归诊断(2)


以上是关于R语言—回归诊断的主要内容,如果未能解决你的问题,请参考以下文章

R语言—回归诊断

R语言回归模型构建回归模型基本假设(正态性线性独立性方差齐性)回归模型诊断car包诊断回归模型特殊观察样本分析数据变换模型比较特征筛选交叉验证预测变量相对重要度

R语言回归模型诊断方式有哪些?如何解读这些诊断方式?:残差和样本杠杆值的关系图比例-位置图正太QQ图残差和拟合曲线关系图

R语言使用lm函数拟合回归模型(简单线性回归一元回归)并诊断模型(Regression diagnostics)使用plot函数打印回归模型的Q-Q图残差拟合图标度-位置图残差与杠杆关系图

R语言lm函数拟合多元线性回归模型(无交互作用)并诊断模型diagnostics使用plot函数打印回归模型的Q-Q图残差拟合图标度-位置图残差与杠杆关系图

R语言lm函数拟合多项式回归模型( Polynomial)并诊断模型(Regression diagnostics)使用plot函数打印回归模型的QQ图残差拟合图标度-位置图残差与杠杆关系图