matlab实现多元逐步回归算法.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
自己编写的多元逐步回归分析算法matlab程序,在matlab工具箱中已经提供了一个可视化的图形界面分析窗口,但是一些具体的参数还不能直接得到,这里自己编写了一个小程序,希望对需要的能够提供一定的帮助。共两个文件:dyzbhg.m和xiaoqu.m 第一个函数 dyzbhg.m function dyzbhg(xy) %多元逐步回归分析 %作者:唐世星 %2006.11.20 %xy为待输入的原始数据,按照先x后y按列排列的数组 %如:x1 x2 x3 x4 y等等 %clc;%clear all; %计算离差阵R(m,m) [n,m]=size(xy); %F1=0;F2=0; %disp(均值为:) xy_aver=mean(xy)%求均值 for i=1:m ??? for j=1:i ??????? R(i,j)=0; ??????? for k=1:n ??????????? R(i,j)=R(i,j)+(xy(k,i)-xy_aver(i))*(xy(k,j)-xy_aver(j)); ??????? end ??????? R(j,i)=R(i,j); ??? end ??? SR(i)=sqrt(R(i,i));%计算对角线元素的平方根 end %disp(************ Deviation Matrix Value of SR (离差阵RSR) ***********) %输出离差阵R,及SR %[R? SR] %计算相关系数R(m,m) for i=1:m ??? for j=1:i ??????? R(i,j)=R(i,j)/(SR(i)*SR(j)); ??????? R(j,i)=R(i,j); ??? end end %disp(********** Correlation Coefficient Matrix (相关系数阵R) **********)%输出相关系数阵R %R flag=1;%是否重复进行逐步回归的标志 while(flag) ??? disp(******** Stepwise Regression Analysis Start *************) ??? F1=input(剔除门坎值:F1=); ??? F2=input(引入门坎值:F2=); ??? S=0;%计算步数 ??? L=0;%引入方程的自变量个数 ??? FQ=n-1;%残差平方和的自由度??? ??? disp(************** Discriminant Value of Contribution V **************) ??? Imin(1)=0;Imax=1:m-1;%定义已引入(最小)和未引入(最大)变量的序号 ??? inn=0;outt=0;%引入和剔除的变量的顺序号 ??? while(1) ??? %??? pause ??????? VN=1E+08;%已引入方程的自变量贡献的最小值 ??????? VX=0;%未引入方程的自变量贡献的最大值 ??????? IN=0;%贡献最小的已引入的自变量序号 ??????? IX=0;%贡献最大的未引入的自变量序号 ??????? S=S+1; ??????? disp([--------- step = int2str(S) ------------])%输出步骤数 ??????? for i=1:m-1 ??????????? if R(i,i)1E-08 ??????????????? continue ??????????? end ??? %??????? disp([VMAX= int2str(VX) ; IMAX= int2str(IX)]) %输出Vmax=VX;Imax=IX; ??????????? V(i)=R(m,i)^2/R(i,i);%计算已引入的变量的方差贡献 ??????????? if V(i)=0 ??????????????? if V(i)VX %寻找未引入变量方差贡献的最大值 ??????????????????? for in=1:length(Imax) ??????????????????????? if i==Imax(in) ???????????????????????????? VX=V(i);IX=i; ???????????????????????? end ???????????????????? end ??????????????? end ??????????? end ??????????? if abs(V(i)) ??????????????? for out=1:length(Imin) ??????????????????? i

您可能关注的文档

文档评论(0)

新起点 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档