Stata中的模型诊断图之偏残差图以及非线性回归简述

Updated: Apr 1

偏残差图(component plus residual plot)又称成分+残差图, 是在多元回归中常被用来诊断非线性的工具. 它与普通残差图 (residual plot) 的区别在于它用偏残差代替普通残差, 从而构建与预测变量Xi之间的散点图. 这里的偏残差是通过最小二乘法得到的残差. 偏残差图的优势在于Y与Xi 之间未考虑进模型的非线性关系能体现在最小二乘法的偏残差中. 在Stata里, 偏残差图通过散点图和一条拟合直线显示出来; 如果图中的散点并没有围绕在拟合直线的附近, 而是呈无序的分散状态, 我们可以假设Y与Xi之间很有可能存在非线性关系. 进一步地, 我们可以通过描绘并平滑偏残差与Xi的关系, 从而能够显示y与Xi之间的偏相关关系. 我们最常用到的平滑曲线是Lowess曲线, 我会在下文做出进一步的解释.


注意:偏残差图中拟合线的斜率和残差与原始多元回归模型中Xi的系数估计值 (estimated coefficient) 和残差一致. 偏残差图不仅可以像普通残差图一样检测异常值(outlier), 判断是否存在变量的不均匀性(inhomogeneity of variance), 以及是否需要对第i个变量进行形式上的变换, 比如对数变换或者增加其的高阶项; 除此之外, 偏残差图还可以用来检测第i个解释变量与其他变量相比对于自变量y是否有显著影响以及模型中是否存在其他重要的非线性形式, 从而可以使我们对模型是否需要非线性的改造进行判断 . 简单来说, 偏残差图相当于校正了其他因素以后来考察自变量与因变量的关系, 从而能够更准确地判断自变量与因变量是否为线性关系.


在偏残差图的基础上, 还有一种图叫增强的偏残差图 (augmented component plus residual plot), 或者叫增强的成分+残差图. 它实际上是偏残差图的一种变化形式, 可以更精准地检测多元回归中的非线性. 它与普通偏残差图的区别在于, 其在完全模型和散点图中都加入了第i个解释变量的二次项.


在Stata里绘制偏残差图和增强的偏残差图用到的命令是:

cprplot independent_variable
acprplot independent_variable

之前提到了利用平滑拟合曲线来判断原始模型是否存在非线性. 最常使用的拟合曲线是用局部加权回归Lowess(locally-weighted scatterplot smoother)拟合出的一条符合整体趋势的线, 我们称为Lowess曲线. Lowess与参数回归不同, 它不是参数回归, 因而没有回归系数可估计, 这种方法是在寻找一条拟合效果相对更好的曲线, 我们将该线作为基线, 偏离基线距离较远的点我们就将其视为是真正的异常值点. 除此之外, 我们还可以在偏残差图中添加中值样条拟合曲线(median spline line) 来进一步说明是否存在非线性. 这种方法是通过样条函数来拟合出一条曲线. 在偏残差图中, 如果直线与拟合曲线接近重合表明自变量Xi与因变量存在很好的线性关系, 如果差别较大则表明自变量与因变量之间可能存在非线性关系.


在Stata的偏残差图里绘制平滑曲线和样条拟合曲线的方法为:

cprplot independent_variable, lowess
acprplot independent_variable, lowess

以及

cprplot independent_variable, mspline
acprplot independent_variable, mspline

接下来我会为大家举例说明如何在Stata里绘制偏残差图, 同时添加Lowess曲线和样条拟合曲线. 我使用的数据是auto.dta. 首先我会以price为因变量, mpg和weight为自变量进行多元线性回归:

sysuse auto
regress price mpg weight

接着我们来绘制自变量mpg的偏残差图和增强的偏残差图以及拟合曲线:

cprplot mpg, lowess
acprplot mpg, lowess
cprplot mpg, mspline
acprplot mpg, mspline

上图中分别为添加了Lowess曲线的偏残差图和增强的偏残差图 .下图中为添加了中位样条拟合曲线的偏残差图和增强的偏残差图. 从前两幅图中我们可以看到拟合的直线与Lowess平滑曲线虽然在中部较为接近, 但整体上并非完全接近重合, 说明自变量mpg与因变量price之间存在非线性关系. 同时散点图显示所有的点在拟合直线附近有较大的浮动, 并没有集中在拟合直线周围, 说明自变量中存在异常值. 增强的偏残差图增更进一步说明非线性关系的存在, 因为我们可以看到平滑曲线与拟合直线之间的差异度进一步增大了. 我们还可以通过增加样条曲线进一步判断:

从图中我们可以看到样条拟合虽然没有很精准地捕捉散点的趋势, 但相比于直线拟合来说, 拟合程度较好一些. 这一点在增强的偏残差图中有较为明显的体现. 从图中我们可以看到对于模型非线性关系的假设完全成立. 这提醒我们可能需要对自变量mpg进行变换, 比如对数变换, 指数变换或者增加二次项和三次项等高阶项.


接下来我们来绘制另一个自变量weight的偏残差图和增强的偏残差图:

cprplot weight, lowess
acprplot weight, lowess
cprplot weight, mspline
acprplot weight, mspline


和之前一样我绘制了四幅图. 从散点图我们可以看出图中的点成发射状, 很明显不在拟合直线的附近. Lowess曲线虽然大致和直线的趋势接近, 但还是说明模型有可能存在非线性关系. 后两幅增加了样条拟合曲线的图中, 拟合样条曲线充分说明多元回归中存在非线性, 需要我们对weight进行形式上的转换.


通过偏残差图来检测模型的非线性只是我们常用的一种诊断方式. 我们还可以用RESET检验法来检测非线性. 对于非线性问题, 我们需要选择一个适合的模型. 常用的非线性回归模型有曲线回归, 分段回归 (piecewise linear regression) 和样条回归 (spline regression). 其中曲线方程有对数曲线型, 指数曲线型, S曲线型等, 对于选择使用哪一种模型, 可以通过散点图的趋势直观判断. 另一种常用的非线性模型是分段回归模型, 顾名思义, 它的每一段都是基于线性回归而建立的, 即根据不同拐点的选择, 将函数分成多个线性段. 还有一种常用的非线性模型就是样条回归, 样条回归通过节点把数据划分成一个个连续的区间, 每个节点之间用单独的模型 (线性函数或者低阶多项式函数)来拟合. 节点越多, 模型就越灵活. 对于具体采用以上哪一种模型 要根据实际情况来确定.


如果您想了解其他检查非线性的方法, 请发邮件至sales@surveydesign.com.au.

41 views0 comments