matlab中岭回归方程,基于MATLAB的岭回归分析程序设计及其应用

第20卷 第6期 辽宁工程技术大学学 (自然科学版) 2001年12月 V ol.20, No.6 Journal of Liaoning Technical University (Natural Science ) Dec., 2001 _______________________________

收稿日期:2001-01-09

基于MATLAB的岭回归分析程序设计及其应用

曾繁会, 吕渭济

(辽宁工程技术大学 工商管理学院,阜新 123000)

关键词:岭回归;MATLAB;岭回归分析;岭回归系数;程序设计 中图 :O 212.4 文献标识码:A

0 引 言

岭回归亦称“脊回归估计”、“岭估计”,是一种改进最小二乘估计的方法,适用于自变量x 1,x 2,…,x p 间相关性强时,或某些变量的变化范围太小时,也即线性回归模型中正规方程的系数矩阵X ′X 接近奇异时的情形。在这种情况下,用传统的基于最小二乘法估计参数的多元线性回归、逐步回归等方法往往不能得到令人满意的结果,甚至有的结果与专业知识不一致,通常可以采用岭回归分析方法。

1 岭回归程序(Ridge 1.m )的设计

设有p 个自变量x 1,x 2,…,xp ,一个因变量y ,进行n 次统计得到数据表Xnxp ,Ynx 1。对于岭参数k (k ∈[0,1]),估计岭回归系数的步骤如下:

(1) 将原始数据x 1,x 2,…,xp ,y 作标准化变换,变换后均值为0,标准差为1。X ,Y 矩阵分别变为Z ,Y 。

(2 ) 对于k ∈[0,1],求)1(k 。

(3)将标准化变换后的矩阵Znxp ,Ynx1添加伪样本数据变为Zplus (n +p )xp,Yplus (n +p )x1. (4)利用MATLAB 中Regress 函数拟合过原点的多元线性回归方程,所估计出的回归系数即为岭回归系数βi (k )(i =1,2,…,p )。

(5)在应用程序中通过MATLAB 的画图语句Plot 绘出βi (k ) 随k 变化的趋势,决定选择合适的k 对应的βi(k )作为最后的岭回归系数。

岭回归函数Ridge.m 程序清单如下: function [b,bint,r,rint,stats] = ridge1(Y,X,k) [n,p ] = size(X );

mx = mean (X ); my = mean (Y ); stdx = std(X );stdy=std(Y );

idx = find(abs(stdx) < sqrt(eps));

M X = mx(ones(n ,1),:);STD X = stdx(ones(n ,1),:); Z = (X – M X ) ./ STD X ;Y =(Y -my)./stdy; pseudo = sqrt(k*(n -1)) * eye(p);

Zplus = [Z;pseudo];Yplus = [Y;zeros(p ,1)]; [b,bint,r,rint,stats] = regress(Yplus,Zplus);

注:在Ridge1.m 中若用Regress 求岭回归系数βi (k )的同时也求出常数项,则可直接将其对应的回归模型用于经济预测及决策分析中。

应用程序设计

应用程序的数据表见[1],福建省1991年9个地区的婴儿死亡率及相关指标。采用岭回归分析(Ridge1.m )来比较各种因素对婴儿死亡率的相关次序及数量程度。

程序中数据矩阵x 9x 6,行指标为地区编 1-9,列指标X =[x 1,x 2,…,x 6]分别为x 1:从事乡妇儿保工作年限2年以上的人员占乡妇儿保人员比重(%);x 2:7岁以下儿童系统管理率(%);x 3:3岁以下儿童生长发育监测率(%);x 4:年人均收入(元);x 5:文盲、半文盲率(%);x 6:乡级妇儿保人员培训比例(%);Y nx1:婴儿死亡率(%)。程序清单如下: x =[71.35 22.90 3.76 1158.18 12.20 55.87; 67.92 34048 17.11 1494.38 19.82 56.60; 79.38 24.91 33.60 691.56 16.17 92.78; 87.97 10.18 0.73 923.04 12.15 24.66; 59.03 7.71 3.58 696.92 13.50 61.81; 55.23 22.94 1.34 1083.84 10.76 49.79; 58.30 12.78 5.25 1180.36 9.58 57.02; 67.43 9.59 2.92 797.72 16.82 38.29; 76.63 15.12 2.55 919.49 17.79 32.07];

y =[28.46;27.76;26.02;33.29;40.84;44.50;28.09;46.24;45.21];

x’*x ;count=0;kvec=0.1:0.1:1; for k=0.1:0.1:1

文章编 :1008-0562(2001)03-0838-02

相关资源:火凤凰软件安装包封装大师8.56文已注册版本.exe_火凤打包…

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年2月15日
下一篇 2021年2月15日

相关推荐