Matlab实现多元回归实例知识讲解_第1页
Matlab实现多元回归实例知识讲解_第2页
Matlab实现多元回归实例知识讲解_第3页
Matlab实现多元回归实例知识讲解_第4页
Matlab实现多元回归实例知识讲解_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Good is good, but better carries it.精益求精,善益求善。Matlab实现多元回归实例-Matlab实现多元回归实例(一)一般多元回归一般在生产实践和科学研究中,人们得到了参数和因变量的数据,需要求出关系式,这时就可以用到回归分析的方法。如果只考虑是线性函数的情形,当自变量只有一个时,即,中时,称为一元线性回归,当自变量有多个时,即,中时,称为多元线性回归。进行线性回归时,有4个基本假定:因变量与自变量之间存在线性关系;残差是独立的;残差满足方差奇性;残差满足正态分布。在Matlab软件包中有一个做一般多元回归分析的命令regeress,调用格式如下:b,bi

2、nt,r,rint,stats=regress(y,X,alpha)或者b,bint,r,rint,stats=regress(y,X)此时,默认alpha0.05.这里,y是一个的列向量,X是一个的矩阵,其中第一列是全1向量(这一点对于回归来说很重要,这一个全1列向量对应回归方程的常数项),一般情况下,需要人工造一个全1列向量。回归方程具有如下形式:其中,是残差。在返回项b,bint,r,rint,stats中,是回归方程的系数;是一个矩阵,它的第行表示的(1-alpha)置信区间;是的残差列向量;是矩阵,它的第行表示第个残差的(1-alpha)置信区间;注释:残差与残差区间杠杆图,最好在0

3、点线附近比较均匀的分布,而不呈现一定的规律性,如果是这样,就说明回归分析做得比较理想。一般的,返回4个值:值、F_检验值、阈值,与显著性概率相关的值(如果这个值不存在,则,只输出前3项)。注释:(1)一般说来,值越大越好。(2)人们一般用以下统计量对回归方程做显著性检验:F_检验、t_检验、以及相关系数检验法。Matlab软件包输出F_检验值和阈值。一般说来,F_检验值越大越好,特别的,应该有F_检验值。(3)与显著性概率相关的值应该满足。如果,则说明回归方程中有多余的自变量,可以将这些多余的自变量从回归方程中剔除(见下面逐步回归的内容)。这几个技术指标说明拟合程度的好坏。这几个指标都好,就说

4、明回归方程是有意义的。例1(Hamilton,1987)数据如下:序号YX1X2112.372.239.66212.662.578.94312.003.874.40411.933.106.64511.063.394.91613.032.838.52713.133.028.04811.442.149.05912.863.047.711010.843.265.111111.203.395.051211.562.358.511310.832.766.591412.633.904.901512.463.166.96第一步分析数据在Matlab软件包中分析是否具有线性关系,并作图观察,M文件opt_ha

5、nmilton_1987:x1=2.23,2.57,3.87,3.10,3.39,2.83,3.02,2.14,3.04,3.26,3.39,2.35,2.76,3.90,3.16;x2=9.66,8.94,4.40,6.64,4.91,8.52,8.04,9.05,7.71,5.11,5.05,8.51,6.59,4.90,6.96;y=12.37,12.66,12.00,11.93,11.06,13.03,13.13,11.44,12.86,10.84,11.20,11.56,10.83,12.63,12.46;corrcoef(x1,y);corrcoef(x2,y);plot3(x1,

6、x2,y,*);得到结果:ans=1.00000.00250.00251.0000ans=1.00000.43410.43411.0000即,corrcoef(x1,y)0.0025,corrcoef(x2,y)0.4341,说明没有非常明显的单变量线性关系。图形如下:也看不出有线性关系,但是,旋转图形,可以看出所有点几乎在一个平面上。这说明,在一个平面上,满足线性关系:或者,换成一个常见的形式其中,是残差。于是,在Matlab软件包中做线性多元回归,写一个M文件opt_regress_hamilton:x1=2.23,2.57,3.87,3.10,3.39,2.83,3.02,2.14,3.

7、04,3.26,3.39,2.35,2.76,3.90,3.16;x2=9.66,8.94,4.40,6.64,4.91,8.52,8.04,9.05,7.71,5.11,5.05,8.51,6.59,4.90,6.96;y=12.37,12.66,12.00,11.93,11.06,13.03,13.13,11.44,12.86,10.84,11.20,11.56,10.83,12.63,12.46;e=ones(15,1);x=e,x1,x2;b,bint,r,rint,stats=regress(y,x,0.05)rcoplot(r,rint)其中,rcoplot(Residualcas

8、eorderplot)表示画出残差与残差区间的杠杆图。执行后得到:b=-4.51543.09701.0319bint=-4.6486-4.38223.07033.12381.02381.0399r=0.0113-0.0087-0.0102-0.00690.0101-0.0106-0.0037-0.01050.0049-0.01360.00570.0163-0.00230.01100.0071rint=-0.00870.0314-0.03030.0128-0.03010.0098-0.02990.0162-0.01060.0308-0.03130.0102-0.02520.0178-0.0299

9、0.0089-0.01740.0272-0.03310.0058-0.01610.0275-0.00270.0354-0.02360.0190-0.00790.0299-0.01560.0298stats=1.0e+004*0.00013.922200.0000即,。置信度95,且,与显著性概率相关的,这说明,回归方程中的每个自变量的选取,都是有意义的。残差杠杆图:从杠杆图看出,所有的残差都在0点附近均匀分布,区间几乎都位于之间,即,没有发现高杠杆点,也就是说,数据中没有强影响点、异常观测点。综合起来看,以上回归结果(回归函数、拟合曲线或曲面)近乎完美。(二)逐步回归假设已有数据X和Y,在Ma

10、tlab软件包中,使用stepwise命令进行逐步回归,得到回归方程,其中是随机误差。stepwise命令的使用格式如下:stepwise(X,Y)注意:应用stepwise命令做逐步回归,数据矩阵X的第一列不需要人工加一个全1向量,程序会自动求出回归方程的常数项(intercept)。在应用stepwise命令进行运算时,程序不断提醒将某个变量加入(Movein)回归方程,或者提醒将某个变量从回归方程中剔除(Moveout)。注释:使用stepwise命令进行逐步回归,既有剔除变量的运算,也有引入变量的运算,它是目前应用较为广泛的一种多元回归方法。在运行stepwise(X,Y)命令时,默认

11、显著性概率。例2(Hald,1960)Hald数据是关于水泥生产的数据。某种水泥在凝固时放出的热量(单位:卡克)与水泥中4种化学成分所占的百分比有关:在生产中测得13组数据:序号X1X2X3X4Y172666078.52129155274.331156820104.34113184787.6575263395.961155922109.27371176102.78131224472.59254182293.1102147426115.911140233483.8121166912113.3131068812109.4求出关系式。解:(1)本问题涉及的数据是5维的,不能画图观察。先做异常值分析。

12、X=7,26,6,60;1,29,15,52;11,56,8,20;11,31,8,47;7,52,6,33;11,55,9,22;3,71,17,6;1,31,22,44;2,54,18,22;21,47,4,26;1,40,23,34;11,66,9,12;10,68,8,12;Y=78.5,74.3,104.3,87.6,95.9,109.2,102.7,72.5,93.1,115.9,83.8,113.3,109.4;A=X,Y;mahal(A,A)程序执行后得到结果:ans=5.68033.64846.70023.36763.38394.43004.00806.50673.08497

13、.50165.17682.4701可以认为数据都是正常的。(2)一般多元回归。在Matlab软件包中写一个M文件opt_cement_1:X=7,26,6,60;1,29,15,52;11,56,8,20;11,31,8,47;7,52,6,33;11,55,9,22;3,71,17,6;1,31,22,44;2,54,18,22;21,47,4,26;1,40,23,34;11,66,9,12;10,68,8,12;Y=78.5,74.3,104.3,87.6,95.9,109.2,102.7,72.5,93.1,115.9,83.8,113.3,109.4;a1=ones(13,1);A=

14、a1,X;b,bint,r,rint,stat=regress(Y,A)rcoplot(r,rint)程序执行后得到:b=62.40541.55110.51020.1019-0.1441bint=-99.1786223.9893-0.16633.2685-1.15892.1792-1.63851.8423-1.77911.4910r=0.00481.5112-1.6709-1.72710.25083.9254-1.4487-3.17501.37830.28151.99100.9730-2.2943rint=-4.03904.0485-3.23316.2555-5.31261.9707-6.56

15、033.1061-4.57735.0788-0.56238.4132-6.07673.1794-6.89630.5463-3.54266.2993-3.00983.5729-2.23726.2191-4.13386.0797-6.91152.3228stat=0.9824111.47920.00005.9830以及残差杠杆图:于是,我们得到:并且,残差杠杆图显示,残差均匀分布在0点线附近,在stat返回的4个值中,0.9824,说明模型拟合的很好。F_检验值111.47920.000,符合要求。但是,与显著性概率相关的值5.98300.05,这说明,回归方程中有些变量可以剔除。(3)逐步回归在

16、Matlab软件包中写一个M文件opt_cement_2:X=7,26,6,60;1,29,15,52;11,56,8,20;11,31,8,47;7,52,6,33;11,55,9,22;3,71,17,6;1,31,22,44;2,54,18,22;21,47,4,26;1,40,23,34;11,66,9,12;10,68,8,12;Y=78.5,74.3,104.3,87.6,95.9,109.2,102.7,72.5,93.1,115.9,83.8,113.3,109.4;stepwise(X,Y)程序执行后得到下列逐步回归的画面:Movex4in程序提示:将变量x4加进回归方程(M

17、ovex4in),点击NextStep按钮,即,进行下一步运算,将第4列数据对应的变量加入回归方程。点击NextStep按健后,又得到提示:将变量x1加进回归方程(Movex1in),点击NextStep按钮,即,进行下一步运算,将第1列数据对应的变量加入回归方程。点击NextStep按健后,又得到提示:MoveNoterms,即,没有需要加入(也没有需要剔除)的变量了。注意:在Matlab7.0软件包中,可以直接点击“AllSteps”按钮,直接求出结果(省略中间过程)。intercept最后得到回归方程(蓝色行是被保留的有效行,红色行表示被剔除的变量):回归方程中录用了原始变量和。模型评估参数分别为:,修正的值,F_检验值176.627,与显著性概率相关的值,残差均方RMSE2.73427(这个值越小越好)。以上指标值都很好,说明回归效果比较理想。另外,截距intercept=103.097(Intercept=theestimatedvalueoftheconstantterm),这就是回归方程的常数项。我们将的数据放在一起画图

温馨提示

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

评论

0/150

提交评论