什么是岭回归?

岭回归是专门用于共线性数据分析的有偏估计的回归方法,实际上是一种改良的最小二乘法,但它放弃了最小二乘的无偏性,损失部分信息,放弃部分精确度为代价来寻求效果稍差但更符合实际的回归方程。

此处介绍下岭回归的回归系数公式,B(k)=(X’X+kI)-1X’Y作为回归系数的估计值,此值比最小二乘估计稳定。称B(k)为回归系数的岭估计。显然,当k=0时,则B(k)就成为了最小二乘估计;而当k→∞时,B(k)就趋于0。因此,k值不宜太大,我们要让k值小些。

岭回归在spss中的操作比较特殊,需要调试程序,因为spss没有为岭回归提供对话框界面,但是有一个完整的宏程序,名为“Ridge Regression.sps”,在安装路径之中,其调用方式如:

INCLUDE’SPSS所在路径Ridge Regression.sps’.

Ridgereg enter = 自变量列表

/dep = 因变量名

/start=K值起始值,默认为0

/stop=K值终止值,默认为1

/inc =K值搜索步长,默认为0.05

/k=允许搜索的K值个数,默认为999.

**注意,最后的“.”不能去掉,否则语句就不完整了。

案例:

引用的案例为,20个数据体现肥胖与肱三头肌、大腿围以及上手臂之间的关系。希望可以得出他们之间的回归方程。 其中:X1表示肱三头肌、X2表示大腿围、X3表示上手臂,是自变量;Y表示肥胖,是因变量。

SPSS操作步骤:

① 进行回归——线性——在统计对话框中选择:共线性诊断,如图1;




岭回归模型rmse代码Python 岭回归代码spss_岭回归模型rmse代码Python


图1:共线性诊断对话框

② 如果结果中的方差膨胀系数(VIF)>5,则可做岭回归分析,如图2;


岭回归模型rmse代码Python 岭回归代码spss_岭回归模型rmse代码Python_02


图2:共线性诊断结果图

由图2可得,三个自变量X1、X2、X3的容差分别是0.001、0.002和0.010,膨胀因子VIF大于100不等,(一般而言,VIF的值大于10就说明自变量间存在共线性),可见,自变量间存在严重的共线性。这个时候我们可以发挥岭回归分析的作用了。

③ 新建语法编辑器,输入如下命令:

INCLUDE'D:Program FilesIBMSPSSStatistics24SamplesSimplified ChineseRidge regression.sps'..

ridgereg enter= X1 X2 X3

/dep=Y

/inc=0.01.

如图3:


岭回归模型rmse代码Python 岭回归代码spss_线性分组码的最小汉明距为6_03


图3:语法编辑器

④ 选择“运行——全部”,得出结果,如图4、图5、图6;

图4:结果报告图


岭回归模型rmse代码Python 岭回归代码spss_python 回归去掉共线性_04


图4:报告图

我们可以看到图4中的前10个k值,在0.06-0.08时,回归系数值较稳定,我们可以取k=0.06时的值,那么回归方程中的系数值分别为:0.449394、0.444320、-0.095187。

图5,展示的是不同k值时这些回归系数构成的曲线,该曲线被称为ridge trace。这也是岭回归名称的由来。我们可以估计下,k值在0.06时,曲线变得相对平稳,这也与之前的结论一致。


岭回归模型rmse代码Python 岭回归代码spss_岭回归模型rmse代码Python_05


图5:自变量的岭迹图

图6,展现的是不同的k值系数的下降情况,为了便于观察,我们可以在0.06附近增加一条参考线,可以看到,在开始,系数下降得比较明显,过了0.06平稳点后,波动不明显,这也支持了图4和图5的研究结论。


岭回归模型rmse代码Python 岭回归代码spss_最小二乘_06


图6:决定系数和k值的线图

在SPSS学堂中,回复20180615可以获取本案例数据,您的关注是对我们最鼓励~