matlab做岭回归分析,岭回归分析(SPSS+SAS)

e53be9a6c7e06d12af97009f1e7c4949.png

岭回归

e53be9a6c7e06d12af97009f1e7c4949.png

岭回归:岭回归分析是在构建多重线性回归模型时, 对基于“最小二乘原理”推导出的估计回归系数的计算公式作一下校正,使回归系数更稳定。

当自变量之间存在较强的多重共线性时,求得的多重线性回归模型很不稳定; 尤其是某些自变量回归系数的正负号与实际问题的专业背景不吻合时,岭回归分析可以很好地解决这一问题。

e53be9a6c7e06d12af97009f1e7c4949.png

岭回归实施的一般步骤

e53be9a6c7e06d12af97009f1e7c4949.png

(●)

岭回归分析通常要先对 X 变量作中心化和标准化处理, 以使不同自变量处于同样数量级上而便于比较。

(●●)

确定 k 值

① 岭迹图

岭迹法主要是通过将β(k) 的分量βi(k) 的岭迹画在同一幅图上, 从图中选择尽可能小的k值, 使得各回归系数的岭估计大体稳定, 即各分量在图上的岭迹曲线趋于平行于X轴。

选择k值的一般原则主要有:①各回归系数的岭估计基本稳定;②用最小二乘估计时符号不合理的回归系数, 其岭估计的符号将变得合理;③回归系数的大小要与实际相符, 即从专业上讲对因变量影响较大的自变量其系数的绝对值也较大;④均方误差增大不太多。

②方差膨胀因子法

方差膨胀因子cjj度量了多重共线性的严重程度, 一般当cjj>10时, 模型就有严重的多重共线性。

(●●●)

根据岭迹图进行变量筛选及重新确定k值

把岭迹应用于回归分析中自变量的选择,其基本原则为:

(1) 去掉岭回归系数比较稳定且绝对值比较小的自变量。这里岭回归系数可以直接比较大小,因为设计阵X 是假定已经中心标准化了的。

(2) 去掉岭回归系数不稳定但随着k 值的增加迅速趋于零的自变量。

(3) 去掉一个或若干个具有不稳定岭回归系数的自变量。如果不稳定的岭回归系数很多,究竟去掉几个, 去掉哪几个, 并无一般原则可遵循。这要结合已找出的复共线性关系以及去掉后重新进行岭回归分析的效果来决定。

(●●●●)

对模型进行表达及作出专业结论

在进行岭估计后, 应根据所估计的参数写出回归方程, 并结合专业知识判断方程中各自变量的系数及正负号是否符合实际情况。最后根据回归系数的大小来判断各自变量对因变量影响的大小及根据所求得的回归方程进行预测。

e53be9a6c7e06d12af97009f1e7c4949.png

案例分析

e53be9a6c7e06d12af97009f1e7c4949.png

以下为11名儿童的智力测试数据,试以IQ为因变量拟合多重线性回归模型。其中,变量常识(X1)、算数(X2)、理解(X3)、拼图(X4)、积木(X5)、译码(X6),IQ(Y)。

数据视图

matlab做岭回归分析,岭回归分析(SPSS+SAS)_第1张图片

数据类型:自变量(X1~X6),因变量Y 均为定量资料;根据研究目的,试采用多重线性回归模型来分析。

e53be9a6c7e06d12af97009f1e7c4949.png

SPSS操作

e53be9a6c7e06d12af97009f1e7c4949.png

(Ⅰ)先拟合多重线性回归模型

具体步骤 ☞☞☞☞【多重线性回归分析】

(Ⅱ)输出结果

为了说明问题,只列出系数表;

变量X1~X6 ,p-value 均 大于0.05,即纳入多重线性回归模型中无统计学意义;其次,共线性诊断中,VIF(variation inflation factor)均大于10,提示变量间存在多重共线性。

matlab做岭回归分析,岭回归分析(SPSS+SAS)_第2张图片

由于多重共线性的存在,使得多重线性回归模型不稳定,而岭回归分析可以很好地解决这个问题。

e53be9a6c7e06d12af97009f1e7c4949.png

SPSS之岭回归

e53be9a6c7e06d12af97009f1e7c4949.png

在SPSS中没有专门的菜单模块来做岭回归分析,但可以通过额外编写了 一个程序文件:ridge regression.sps, 用户可以编写一段代码来调用该程序做岭回归分析。

matlab做岭回归分析,岭回归分析(SPSS+SAS)_第3张图片

其中,

INCLUDE' 文件 Ridge regression.sps 所在路径 ' .

RIGDEREG ENTER =  自变量

/DEP= 因变量

/START= k值起始值

/STOP= k值终末值

/INC =  k值步长

【运行】单击 Run

ALL

运行结果:

岭回归:岭迹图,从图中大致看出k≧0.1 时,岭迹曲线趋于稳定 。

matlab做岭回归分析,岭回归分析(SPSS+SAS)_第4张图片

输出的变量X1~X6 不同K值情况下的回归系数

(在SPSS中,原始数据已标准化)

matlab做岭回归分析,岭回归分析(SPSS+SAS)_第5张图片

验证当k=0.1时的模型,

matlab做岭回归分析,岭回归分析(SPSS+SAS)_第6张图片

验证结果:

matlab做岭回归分析,岭回归分析(SPSS+SAS)_第7张图片

本结果拟合得不太理想,仅供参考~~~

因此可以写出岭回归方程式:y= ~~~~

e53be9a6c7e06d12af97009f1e7c4949.png

SAS之岭回归

e53be9a6c7e06d12af97009f1e7c4949.png

(Ⅰ)读取数据,

data test.multiple_reg;input x1 x2 x3 x4 x5 x6 y @@;cards;14 13 28 14 22 39 5410 14 15 14 34 35 3712 12 19 13 24 39 287 8 7 9 20 24 1913 12 24 12 26 38 3619 15 23 16 24 38 2819 16 26 21 38 69 539 10 14 9 31 46 4010 8 15 13 15 43 519 8 12 10 22 43 5512 10 20 14 12 28 42;run;

(Ⅱ)使用原始数据做回归分析

/**** 多重线性回归模型,自变量筛选方法为stpewise*****/proc reg data = test.multiple_reg ;stepwise : model y = x1-x6 / selection = stepwise vif collin ;run;quit ;/*****  岭回归 ridge regression   **********/proc reg data = test.multiple_reg outest = out_2 outvif ;model y = x1-x6 / ridge = 0.0 to 1 by 0.01 ;plot / ridgeplot ;run;quit ;/***  打印输出结果******/proc print data = out_2 ;run;

(Ⅲ)原始数据标准化

/**** 数据标准化处理********/proc standard data = test.multiple_regm=0 s=1out =test.multiple_reg_standard ;run;

(Ⅳ)标准化后的数据 进行岭回归

/**  使用标准化后的数据 ***/proc reg data = test.multiple_reg_standardoutest = out_3 outvif ;model y = x1-x6  /  ridge = 0.0 to 1 by 0.01  ;plot / ridgeplot ;run;quit ;proc print data = out_3 ;run;

【输出结果】此结果为原始数据标准化后的结果

下图为岭迹图,大致发现,当k≧0.1 时,岭迹曲线趋于稳定 。

matlab做岭回归分析,岭回归分析(SPSS+SAS)_第8张图片

obs = 22,k=0.1,各回归系数的VIF 均小于2 ;

obs=23,给出了变量x1~x6的回归系数;

matlab做岭回归分析,岭回归分析(SPSS+SAS)_第9张图片

在SAS中, 岭迹图描绘的是原始系数估计值随岭参数 k 的变化轨迹,原始系数描绘岭迹图会存在1个问题: 回归方程中系数数量级别差异较大;因此,对原数据标准化处理可以很好地避免这一问题。

参考来源:

[1]胡良平,岭回归分析.科研方法专题

[2] 尹 康 , 常用统计软件关于岭回归计算原理的比较分析 . 统计研究

50791da0ce7d53de6b1640fc2317914d.png

挑灯

夜写,只为

好看

你可能感兴趣的:(matlab做岭回归分析)