多元回归程序MATLAB程序

上传人:仙*** 文档编号:106758488 上传时间:2022-06-13 格式:DOC 页数:15 大小:169.50KB
收藏 版权申诉 举报 下载
多元回归程序MATLAB程序_第1页
第1页 / 共15页
多元回归程序MATLAB程序_第2页
第2页 / 共15页
多元回归程序MATLAB程序_第3页
第3页 / 共15页
资源描述:

《多元回归程序MATLAB程序》由会员分享,可在线阅读,更多相关《多元回归程序MATLAB程序(15页珍藏版)》请在装配图网上搜索。

1、matlab回归拟合总结前言1、学三条命令polyfit-拟合成一元幂函数一元多次regress-可以多元, nlinfit 2、同一个问题,这三条命令都可以使用,但结果肯定是不同的,因为拟合的近似结果,没有唯一的标准的答案.相当于咨询多个专家.3、回归的操作步骤:根据图形实际点,选配一条恰当的函数形式类型-需要数学理论与基础和经验.并写出该函数表达式的一般形式,含待定系数-选用某条回归命令求出所有的待定系数.所以可以说,回归就是求待定系数的过程需确定函数的形式一、多元回归分析对于多元线性回归模型:设变量的n组观测值为记 ,则 的估计值为排列方式与线性代数中的线性方程组相同,拟合成多元函数-r

2、egress使用格式:左边用b=b, bint, r, rint, stats右边用=regress或regress-命令中是先y后x, -须构造好矩阵x-并且x要在最前面额外添加全1列/对应于常数项-y必须是列向量-结果是从常数项开始-与polyfit的不同.其中: b为回归系数,的估计值,bint为回归系数的区间估计,r: 残差 ,rint: 残差的置信区间,stats: 用于检验回归模型的统计量,有四个数值:相关系数r2、F值、与F对应的概率p和残差的方差前两个越大越好,后两个越小越好,alpha: 显著性水平缺省时为0.05,即置信水平为95%,alpha不影响b,只影响bint.它越

3、小,即置信度越高,则bint范围越大.显著水平越高,则区间就越小返回五个结果-如有n个自变量-有误n个待定系数,则b 中就有n+1个系数含常数项,-第一项为常数项b-b的范围/置信区间-残差r-r的置信区间rint-点估计-区间估计 如果的置信区间bint的第行不包含0,则在显著水平为时拒绝的假设,认为变量是显著的*.b,y等均为列向量,x为矩阵必须在x第一列添加一个全1列.-对应于常数项.相关系数r2越接近1,说明回归方程越显著;F越大,说明回归方程越显著;F越大越好与F对应的概率p越小越好,一定要Pa时拒绝H0而接受H1,即回归模型成立.乘余残差标准差RMSE越小越好前两个越大越好,后两个

4、越小越好重点:regress 重点与难点是如何加工处理矩阵x. y是函数值,一定是只有一列.也即目标函数的形式是由矩阵X来确定如s=a+b*x1+c*x2+d*x3+e*x12+f*x2*x3+g*x12,一定有一个常数项,且必须放在最前面即x的第一列为全1列X中的每一列对应于目标函数中的一项目标函数有多少项则x中就有多少列X=ones, x1, x2, x3, x1.2, x2.*x3,x1.2 regress: y/x顺序,矩阵X需要加工处理nlinfit: x/y顺序,X/Y就是原始的数据,不要做任何的加工.即regress靠矩阵X来确定目标函数的类型形式所以X很复杂,要作很多处理 而n

5、linfit是靠程序来确定目标函数的类型形式所以X就是原始数据,不要做任何处理例1 测16名成年女子的身高与腿长所得数据如下:身高143145146147149150153154155156157158159160162164腿长8885889192939395969897969899100102配成y=a+b*x形式 x=143 145 146 147 149 150 153 154 155 156 157 158 159 160 162 164; y=88 85 88 91 92 93 93 95 96 98 97 96 98 99 100 102; plotz=x;x=ones,x;-常

6、数项b,bint,r,rint,stats=regress;-处结果与polyfit相同b,bint,stats得结果:b =bint = -16.0730-33.7071 1.5612-每一行为一个区间 0.71940.6047 0.8340stats = 0.9282 180.9531 0.0000即;的置信区间为-33.7017,1.5612, 的置信区间为0.6047,0.834; r2=0.9282, F=180.9531, p=0.0.p0.05, 可知回归模型 y=-16.073+0.7194x 成立.b,bint,r,rint,stats=regress;-结果相同b,bint

7、,r,rint,stats=regress;polyfit-当为一元时也只有一组数,则结果与regress是相同的,只是命令中x,y要交换顺序,结果的系数排列顺序完全相反,x中不需要全1列.ans =0.7194 -16.0730-此题也可用polyfit求解,杀鸡用牛刀,脖子被切断.3、残差分析,作残差图:rcoplot从残差图可以看出,除第二个数据外,其余数据的残差离零点均较近,且残差的置信区间均包含零点,这说明回归模型 y=-16.073+0.7194x能较好的符合原始数据,而第二个数据可视为异常点4、预测与作图:plothold ona=140:165;b=b+b*a;plot例2 观

8、测物体降落的距离s与时间t的关系,得到数据如下表,求s关于t的回归方程t 1/302/303/304/305/306/307/30s 11.8615.6720.6026.6933.7141.9351.13t 8/309/3010/3011/3012/3013/3014/30s 61.4972.9085.4499.08113.77129.54146.48法一:直接作二次多项式回归 t=1/30:1/30:14/30; s=11.86 15.67 20.60 26.69 33.71 41.93 51.13 61.49 72.90 85.44 99.08 113.77 129.54 146.48;p

9、,S=polyfitp =489.2946 65.8896 9.1329得回归模型为:方法二-化为多元线性回归:t=1/30:1/30:14/30;s=11.86 15.67 20.60 26.69 33.71 41.93 51.13 61.49 72.90 85.44 99.08 113.77 129.54 146.48;T=ones, t, %?是否可行?等验证.-因为有三个待定系数,所以有三列,始于常数项b,bint,r,rint,stats=regress;b,statsb = 9.1329 65.8896 489.2946stats =1.0e+007 *0.0000 1.0378

10、0 0.0000得回归模型为: %结果与方法1相同polyfit-一元多次regress-多元一次-其实通过技巧也可以多元多次regress最通用的,万能的,表面上是多元一次,其实可以变为多元多次且任意函数,如x有n列不含全1列,则表达式中就有n+1列第一个为常数项,其他每项与x的列序相对应.例3设某商品的需求量与消费者的平均收入、商品价格的统计数据如下,建立回归模型,预测平均收入为1000、价格为6时的商品需求量.需求量10075807050659010011060收入1000600 1200500300400130011001300300价格5766875439选择纯二次模型,即 -用户可

11、以任意设计函数x1=1000 600 1200 500 300 400 1300 1100 1300 300;x2=5 7 6 6 8 7 5 4 3 9;y=100 75 80 70 50 65 90 100 110 60;X=ones x1 x2 ;%10指有10组数据,x1 x2 时方程的自变量b,bint,r,rint,stats=regressb,statsb = 110.5313 0.1464 -26.5709 -0.0001 1.8475stats = 0.9702 40.6656 0.0005 20.5771故回归模型为:剩余标准差为4.5362, 说明此回归模型的显著性较好.

12、三、非线性回归拟合使用格式:beta = nlinfitbeta,r,J = nlinfitX给定的自变量数据,Y给定的因变量数据,fun要拟合的函数模型,beta0函数模型中待定系数估计初值即程序的初始实参beta返回拟合后的待定系数其中beta为估计出的回归系数;r为残差;J为Jacobian矩阵输入数据x、y分别为n*m矩阵和n维列向量,对一元非线性回归,x为n维列向量.可以拟合成任意函数.最通用的,万能的命令x,y顺序,x不需要任何加工,直接用原始数据.-所编的程序一定是两个形参待定系数/向量,自变量/矩阵:每一列为一个自变量结果要看残差的大小和是否有警告信息,如有警告则换一个b0初始

13、向量再重新计算.本程序中也可能要用.* ./ .如结果中有警告信息,则必须多次换初值来试算.难点是编程序与初值存在的问题:不同的beta0,则会产生不同的结果,如何给待定系数的初值以与如何分析结果的好坏,如出现警告信息,则换一个待定系数试一试.因为拟合本来就是近似的,可能有多个结果.1:重点难点是预先编程序即确定目标函数的形式,而regress的目标函数由x矩阵来确定,其重难点为构造矩阵a2:x/y顺序列向量-x/y是原始数据,不要做任何修改3:编程: 一定两个形参beta,xa=beta; b=beta;c=beta; x1=x; x2=x; x3=x; 即每一列为一个自变量4:regres

14、s/nlinfit都是列向量5:regress:有n项n个待定系数,x就有n列;nlinfit:有m个变量则x就有m列例1 已知数据:x1=0.5,0.4,0.3,0.2,0.1;x2=0.3,0.5,0.2,0.4,0.6; x3=1.8,1.4,1.0,1.4,1.8;y=0.785,0.703,0.583,0.571,0.126;且y与x1,x2,x3关系为多元非线性关系只与x2,x3相关为:y=a+b*x2+c*x3+d*+e*此函数是由用户根据图形的形状等所配的曲线,即自己选定函数类型求非线性回归系数a , b , c , d , e .对回归模型建立M文件model.m如下:fun

15、ction yy=myfun %一定是两个参数:系数和自变量-一个向量/一个矩阵a=betab=betac=betad=betae=betax1=x; %系数是数组,b,b,b依次代表系数1, 系数2, 系数nx2=x; %自变量x是一个矩阵,它的每一列分别代表一个变量,有n列就可以最多nx3=x;yy=beta+beta*x2+beta*x3+beta*+beta*;b与待定系数的顺序关系可以任意排列,并不是一定常数项在最前,只是结果与自己指定的相对应x一定是一列对应一个变量,不能x1=x,x2=x,x3=x主程序如下:x=0.5,0.4,0.3,0.2,0.1;0.3,0.5,0.2,0.

16、4,0.6;1.8,1.4,1.0,1.4,1.8; %每一列为一个变量,如果是倒入数据矩阵,只能把x的数据倒进去,不能把全部数据都倒进去,然后选某几列y=0.785,0.703,0.583,0.571,0.126;beta0=1,1, 1,1, 1,1;%有多少个待定系数,就给多少个初始值.beta,r,j = nlinfitbeta = -0.4420 5.5111 0.3837 -8.1734 -0.1340例2混凝土的抗压强度随养护时间的延长而增加,现将一批混凝土作成12个试块,记录了养护日期日与抗压强度ykg/cm2的数据: 养护时间:x =2 3 4 5 7 9 12 14 17

17、21 28 56 抗压强度:y =35+r 42+r 47+r 53+r 59+r 65+r 68+r 73+r 76+r 82+r 86+r 99+r 建立非线性回归模型,对得到的模型和系数进行检验.注明:此题中的+r代表加上一个-0.5,0.5之间的随机数 模型为:y=a+k1*exp+k2*exp; -有四个待定系数Matlab程序:x=2 3 4 5 7 9 12 14 17 21 28 56; r=rand-0.5; y1=35 42 47 53 59 65 68 73 76 82 86 99; y=y1+r ;myfunc=inlinebeta+beta*expbeta*x+bet

18、a*exp-beta*x,beta,x; beta=nlinfit;%初值为0.2也可以,如为1则不行,则试着换系数初值-此处为一元,x,y行/列向量都可以a=beta,k1=beta,k2=beta,m=beta%test the modelxx=min:max;2:56yy=a+k1*exp+k2*exp; plot%,xx,yy,r是画曲线,相当于拟合结果: a = 87.5244 k1 = 0.0269 k2 = -63.4591 m = 0.1083 图形:例3出钢时所用的盛钢水的钢包,由于钢水对耐火材料的侵蚀,容积不断增大.我们希望知道使用次数与增大的容积之间的关系.对一钢包作试验

19、,测得的数据列于下表:使用次数增大容积使用次数增大容积234567896.428.209.589.509.7010.009.939.991011121314151610.4910.5910.6010.8010.6010.9010.76对将要拟合的非线性模型y=aeb/x,如再加y= c*sin+aeb/x建立m-文件volum.m如下:function yhat=volumyhat=beta*expbeta./x;或function f= volum a=beta;b=beta;f=a*exp;2、输入数据:主程序:x=2:16;y=6.42 8.20 9.58 9.5 9.7 10 9.93

20、 9.99 10.49 10.59 10.60 10.80 10.60 10.90 10.76;plot beta0=8 2; beta,r ,J=nlinfit3、求回归系数:beta = 11.6037 -1.0641即得回归模型为:4、预测与作图:plot hold onxx=2:0.05:16; yy=zhang1;%-通过调用用户自编的函数plot % 拟合成线或者YY,delta=nlpredciplot或plothold onxx=2:0.05:16;yy=beta*expbeta./xx; plot例4财政收入预测问题:财政收入与国民收入、工业总产值、农业总产值、总人口、就业人

21、口、固定资产投资等因素有关.下表列出了1952-1981年的原始数据,试构造预测模型.财政收入预测问题:财政收入与国民收入、工业总产值、农业总产值、总人口、就业人口、固定资产投资等因素有关.下表列出了1952-1981年的原始数据,试构造预测模型.年份国民收入亿元工业总产值农业总产值亿元总人口万人就业人口万人固定资产投资亿元财政收入1952598349461574822072944184195358645547558796213648921619547075204916026621832972481955737558529614652232898254195682571555662828230

22、181502681957837798575646532371113928619581028123559865994266002563571959111416815096720726173338444196010791870444662072588038050619617571156434658592559013827119626779644616729525110662301963779104651469172266408526619649431250584704992773612932319651152158163272538286701753931966132219116877454229

23、805212466196712491647697763683081415635219681187156568078534319151273031969137221016888067133225207447197016382747767829923443231256419711780315679085229356203556381972183333657898717735854354658197319783684855892113665237469119741993369689190859373693936551975212142549329242138168462692197620524309

24、95593717388344436571977218949259719497439377454723197824755590105896259398565509221979270260651150975424058156489019802791659211949870541896568826198129276862127310007273280496810解设国民收入、工业总产值、农业总产值、总人口、就业人口、固定资产投资分别为x1、x2、x3、x4、x5、x6,财政收入为y,设变量之间的关系为:y= ax1+bx2+cx3+dx4+ex5+fx6使用非线性回归方法求解.1对回归模型建立M文件

25、model.m如下: function yy=model %一定是两个参数,第一个为系数数组,b,b,b %分别代表每个系数,而第二个参数代表所有的自变量, %是一个矩阵,它的每一列分别代表一个自变量. a=beta0; b=beta0; %每个元素 c=beta0; d=beta0; e=beta0; f=beta0; x1=X; %每一列 x2=X;x3=X; x4=X; x5=X; x6=X; yy=a*x1+b*x2+c*x3+d*x4+e*x5+f*x6; 2. 主程序liti6.m如下:X=598.00, 349.00 ,461.00, 57482.00, 20729.00, 44

26、.00;586, 455, 475, 58796, 21364, 89;707, 520, 491, 60266, 21832, 97;737, 558, 529, 61465, 22328, 98;825, 715, 556, 62828, 23018, 150;837, 798, 575, 64653, 23711, 139;1028, 1235, 598, 65994, 26600, 256;1114, 1681, 509, 67207, 26173, 338;1079, 1870, 444, 66207, 25880, 380;757, 1156, 434, 65859, 25590,

27、 138;677, 964, 461, 67295, 25110, 66;779, 1046, 514, 69172, 26640, 85;943, 1250, 584, 70499, 27736, 129;1152, 1581, 632, 72538, 28670, 175;1322, 1911, 687, 74542, 29805, 212;1249, 1647, 697, 76368, 30814, 156;1187, 1565, 680, 78534, 31915, 127;1372, 2101, 688, 80671, 33225, 207;1638, 2747, 767, 8299

28、2, 34432, 312;1780, 3156, 790, 85229, 35620, 355;1833, 3365, 789, 87177, 35854, 354;1978, 3684, 855, 89211, 36652, 374;1993, 3696, 891, 90859, 37369, 393;2121, 4254, 932, 92421, 38168, 462;2052, 4309, 955, 93717, 38834, 443;2189, 4925, 971, 94974, 39377, 454;2475, 5590, 1058, 96259, 39856, 550;2702,

29、 6065, 1150, 97542, 40581, 564;2791, 6592, 1194, 98705, 41896, 568;2927, 6862, 1273, 100072, 73280, 496;y=184.00 216.00 248.00 254.00 268.00 286.00 357.00 444.00 506.00 . 271.00 230.00 266.00 323.00 393.00 466.00 352.00 303.00 447.00 . 564.00 638.00 658.00 691.00 655.00 692.00 657.00 723.00 922.00 .

30、 890.00 826.00 810.0;beta0=0.50 -0.03 -0.60 0.01 -0.02 0.35;betafit = nlinfit结果为betafit = 0.5243 -0.0294 -0.6304 0.0112 -0.0230 0.3658即y= 0.5243x1-0.0294x2-0.6304x3+0.0112x4-0.0230x5+0.3658x6此题也可以用regress来求解我自己做的,不一定对?-结果有些不同,含有一个常数 clear x=xlsread; %已经把所有的有效数据拷入到cd.xls文件中去了. y=x; x=; z=ones; x=z,x;

31、 b,bint,r,rint,states=regress; b,statesb = 159.1440 0.4585 -0.0112 -0.5125 0.0008 -0.0028 0.3165stats = 1.0e+003 * 0.0010 0.2283 0 1.0488四、非线性回归或曲线回归问题配曲线的一般方法是:一先对两个变量x和y 作n次试验观察得画出散点图,散点图二根据散点图确定须配曲线的类型.通常选择的六类曲线如下:1双曲线2幂函数曲线y=a, 其中x0,a03指数曲线y=a其中参数a0.4倒指数曲线y=a其中a0,5对数曲线y=a+blogx,x06S型曲线三然后由n对试验数据确定每一类曲线的未知参数a和b.解例2.由散点图我们选配倒指数曲线y=a根据线性化方法,算得由此 最后得 15 / 15

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!