现在已经得到一元线性回归模型,但是使用所得到的线性模型之前还需要进行回归诊断。线性回归的诊断,主要是检验线性回归模型的假设是否成立,即随机误差项(残差项)的正态性、独立性和随机性。
1.R 自带模型诊断图
对已经拟合的回归模型进行假设诊断最直观和简单的方法就是用R语言自带的模型诊断图进行判断,具体使用方法如下。
(1)残差图(Residuals vs Fitted):图上的点基本服从随机分布,可以认为不存在异方差的情况。
(2)标准Q-Q图(Normal Q-Q):图上的点基本都在y=x直线附近,可认为样本近似服从正态分布。
(3)标准化残差方根散点图(Scale-Location):类似于残差图,只是其纵坐标变为了标准化残差的绝对值开方。点的分布基本是随机的。
(4)库克距离图(Cook‘s distance):一般认为当D<0.5时不是异常值点;当D>0.5时,是异常值点。本例中最大的库克距离为0.3左右,可以认为没有异常值点。
(5)基于performance包的check_model函数将上述图做了一个整合,适用于各种回归模型的诊断。
2.利用car包进行回归模型诊断
在R扩展包car中有一系列函数用于回归模型诊断,更容易理解和判断,简要介绍如下。(www.xing528.com)
(1)残差的正态性分析。相较于plot()函数,画更为精确的学生化残差图。直线两侧的虚曲线代表置信区间,落在两曲线外的点可以认为是离群点。
(2)残差的独立性分析。在线性回归模型基本假设中有cov(εi,εj)=0的假设,如果一个模型不满足该式则称随机误差项之间存在自相关现象。这里的自相关不是指两个或两个以上的变量之间的相关关系,而是指一个变量前后期数值之间的相关关系。如果它们是相关的,那么最小二乘法回归低估了系数的标准误,此时预测变量似乎非常显著,其实可能不显著。R语言car包中的durbinWatsonTest()函数可以进行Durbin-Watson检验。原假设是随机误差自相关为零,残差是独立的。这里p<0.01拒绝了原假设,接受备择假设(自相关不为零,残差不独立),因为本例数据中存在多个依赖于重复自变量(相同浓度)的因变量,实际处理过程中应先取平均值再进行回归分析。
(3)残差的方差齐性分析。car包中有两个函数可以很方便判断误差的方差是否具有齐性。ncvTest()函数可以进行方差齐性检验,该检验若显著,说明方差齐性不满足,即误差的方差不恒定。本例中p=0.34,说明满足方差齐性的假设条件。spread Level Plot()可以绘制标准化残差绝对值与拟合值的散点图,同时添加一条最佳拟合曲线,如满足方差齐性的假设,拟合曲线为水平曲线,点在拟合曲线周围呈水平随机分布。非水平的曲线暗示着方差不等。程序还会给出幂次转换的建议。若输出结果建议幂次变换(suggested power transformation)接近1,则异方差不明显,即不需要进行变换;若幂次变换为0.5,则用根号y代替y;若幂次变换为0,则用对数变换。
在大多数情况下,如果模型类型是已知或者指定的情况下,通过一元回归分析检验表明数据可能不满足上述检验假设条件,说明数据中可能存在异常值。数据中的异常值可能会使预测失真并影响准确性,尤其是在回归模型中,如果您没有正确检测并处理它们,那么它们会影响精度。car包中的influence Plot()函数可以一次性检验整合多个特征检验,将离群点、高杠杆点、强影响点整合到一个图中。
●离群值:可以通过学生化残差(studentized residual)判读。残差大于2或者小于-2即为离群值,正的残差说明模型低估了响应值,负的残差则高估了响应值。也可以通过Q-Q图判断,即偏离直线的点。
●高杠杆值:通过帽子统计量(Hat values)判断,大于帽子均值的2或3倍以上。图中水平轴(Hat values)超过0.2或0.3的点为高杠杆值。
●强影响值:是使模型的参数估计值比例失衡的观测值(即移除某一个强影响值会使模型的参数发生很大的变动,使得模型的稳健性大打折扣),通过库克距离(Cooks Distance)判断。库克距离越大;说明影响越大,若库克距离大于1,就认为是强影响值。图中用圆圈的直径表示库克距离。
●高杠杆值是否是强影响值,需要在是否为离群值基础上判断。
如果数据集中出现异常值,可以采用直接删除、均值替换、回归插补、用mice包多重插补等方法进行处理,对模型进行优化。用mice包多重插补在此不展开叙述,可查看相关帮助文件。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。