资源描述
MATLAEfc多元回归分析中的应用Matlab作多元线性拟合及回归分析检验题1.合金的强度y与其中的碳含量x有比较密切的关系,今从生产中收集了一批数据如下表所示:x0.100.110.120.130.140.150.160.170.18Y4241.54545.54547.5495550解题思路如下:1. 先画出散点图,判定y与x是否有线性关系;假设线性模型;作回归分析,计算参数;模型假设检验(F检验);回归系数检验及区间估计(t检验)Matlab编程如下:clc,clearx1=0.1:0.01:0.18;%原始自变量y=42,41.5,45,45.5,45,47.5,49,55,50;%原始因变量x=ones(9,1),x1;b,bint,r,rint,stats=regress(y,x);%回归相关参数的计算(b表示回归系数用、曰;bint表示席、胄的置信区问,stat话示R2、F、p、s2b,bint,stats,rcoplot(r,rint)%画出其残差及置信区间图其结果如下:t=27-4722137-5000匕irrt=LB-36.Z&9475.7755190.2Z45s+ats0-78527-7469O.00124.GS83ResidjaiCaseOrderPint1?345B7Ca-jRMumbai由上面的计算可得:=27.4722?1=137.5000=0.79852岛的置信区间为18.6851,36.2594,目的置信区间为75.7755,199.2245R2F=27.7469p=0.0012S=4.0883由残差图,可知第八组数据存在问题,所以应该将其剔除重新计算,可得:tZJlt=fi.Ui.E=0L27B2-L以常RosasT.09770.30B3d1113-0.437ResdaLdse)pFbi791o题2.某厂生产的一种电器的销售量y与竞争对手的价格x1和本厂的价格x2有关。下表为该商品在10个城市的销售记录。试根据这些数据建立y与x1、x2的关系式,对得到的模型及系数进行检验。若某市本厂产品的售价为160(元),竞争对手售价为170(元)。试预测商品在该市的销售量。X1120140190130155175125145180150X210011090150210150250270300250Y(个)10210012077469326696585解题思路:先画出y关于x1、x2的散点图;分析其线性关系;clc,clear;x1=120140190130155175125145180150;x2=10011090150210150250270300250;y=10210012077469326696585;x=ones(10,1),x1,x2;b,bint,r,rint,stats=regress(y,x);b,bint,stats其结果如下:bint=-80,D306213.0657-01-1731.325-0-.5&?90,0153的而幻6.57S60.0247J&L由结果可以看出,p=0.0247,取ot=0.05时,回归模型可用,但是取a=0.01时,模型就不可用;R2=0.6527比较小,P0Pi的置信区间包含零点。所以下面采用x1、x2的二次函数改进。A. 二.MATLAB乍多项式回归分析一元多项式回归分析1. 使用matlab统计工具箱里面的polyfit函数实现回归分析;2. 使用polyconf函数,可以计算的到函数预测值以及置信区间半径delta。3. 使用polytool,获得一个交互式画面,用于分析其拟合性质。多元二项式回归分析使用rstool函数,作多元二项式回归分析,产生一个交互式画面,用于分析其回归关系;其中,在备选函数中,有以下几种函数:linear(线性):V=民+乩综pureqiiadratic(纯.次);y=歹。+p】*】+十工得十interaction(交又):y=片+0内+pmxm+缶七叫1二j壬花二刖quadratic(完全:次)*=岗+岗毛+色七十眼户户*1. 在交互式画面中,我们可以向matlab工作区间传送回归系数(beta),剩余标准差(rmse),残差(residuals),主要通过菜单export来实现,具体的应用参照下面的例题:题1.将17至29岁的运动员每两岁一组分为7组,每组两人测量其旋转定向能力,以考察年龄对这种运动能力的影响。由此,有以下一组数据:年龄17192123252729第一人20.4825.1326.153026.120.319.35第二人24.3528.1126.331.426.9225.721.3问:试建立年龄同这种能力的关系。解题思路:1.画出散点图;程序如下:clc,clear;x=17:2:29;y1=20.48,25.13,26.15,30,26.1,20.3,19.35;y2=24.35,28.11,26.3,31.4,26.92,25.7,21.3;plot(x,y1,*,x,y2,*);得到下面的散点图:由图分析可知,采用二次模型比较合适,所以建立二次模型:2y=a2xa1xa0下面采用函数polyfit对数据进行处理,程序如下所示:x0=17:2:29;x0=x0,x0;Y0=20.48,25.13,26.15,30,26.1,20.3,19.3524.35,28.11,26.3,31.4,26.92,25.7,21.3;p,s=polyfit(x0,y0,2);p得到:D,网03S.97S2-72.2150即得到其相关系数:a2a1ao值分别为:-0.20038.9782-72.2150接下来使用polyconf函数及polytool函数对数据进行处理如下:a.Polyconf()对于上面求得的参数,我们可以使用这个函数去计算y的拟合值,以及去预测y的置信区间半径delta程序如下:y,delta=polyconf(p,x0,s);%s为一个数据结构yColLzmuLIhwRh9是.并就2.9fl9A28.31B627.14W心.L曲L9LS9O422.2iJColLZirU13,9ikraj-i.Jni】127-g职28.3136ZLQ瞻。2i.ieas博.6如上irlta.ColonusLthrough35.62;5S.11955.11955.:25S.119SS.5l6275s.eraColLnns&thrciugh115.35S.119S555.HS5S.1L9Gs.K75b.Polytool()使用polytool去分析数据,比上面的工具具有优越性,因为可以得到一个交互式画面,通过程序:polytool(x0,y0,2)如下图所示:x的值,进而得到左其中:红线表示y的置信区间,绿线表示拟合曲线,可以通过改变下方边y的预测值以及其置信区间,另外,通过左下方ExportT拉式菜单,可以输出以下参数,具体操作如下图:选择export下拉式菜单:接着选择要输出到工作区间的参数,点击确定,得到:小WorkspaceEditViewgraphicsDebugDesktopWindowHelpLQStaclaBaseWairisValu?-11r-i1xDbetadeltaPresidualsyyyiy2g-0,2003rr97SZ-72.eM14doubles-0,2003,8.9782.-72.,14x1double*1x1struct17,191,23.2577,2.1x14doublesL)tl4doubles1x14do-jble20800,25.1300,224.3500,28.1100.,(23.146033.4911electdatdtopicMinMan-72,2.-,8,97825,11955.6275-72.2.洞7技3,86“i3.0B1J1729172919.69.28.31.19352140.1935.3021.30.3140.23.1,33.49.,题2.接着先前商品销量与价格的问题,如果选择纯二次模型:X1=120140190130155175125145180150;X2=10011090150210150250270300250;Y=10210012077469326696585;y=,、XM:1凶2+:22乂22程序如下:X=x1,x2;Rstoo(x,y,purequadratic)得到:通过交互图,我们可以移动x1、x2的位置,进而可以通过左边对话框得到y的预测值及其置信区间,和上面例题一样,通过下拉式菜单export,我们可以把回归系数(beta),剩余标准差(rmse)、残差(residuals)输出到matlab工作区间。其操作结果如下所示:Workspace另外,还可以通过改变另外一个菜单model选择不同的模型进行拟合,比较其rmse,选择比较小的那个模型作为预测模型三.MATLAB作非线性回归分析及逐步回归分析A.非线性回归分析这里的非线性回归指的是因变量y对回归系数而非自变量是非线性的。Matlab中可以利用统计工具箱中的nlinfit、nlparci、nlpredci、nlintool等工具进行处理,求出其回归系数及信区间、预测值及置信区间。下面举一个例题加以说明:例4在研究化学劫力学反应过程中,建花了个反应速度和反应物含量的数学模其中缶,/?5是未知的参数,如如3是三种反应物(狙,戊烷,异构戊烷)的含虽.y是反应速度。今测得-组数据如表4,试由此确定参数缶.岛,并给出其置信区间缶*的参考值为(01,005,0.02,1,2)o序号反应速度*氢毛n戊烷A%异构戊烷工31234567.55.79.82.02.758.3.40.201211111A708570707000007000000085424441141112133.1328530010801030012080120801019010806519065300543001208012030010190120解首先,以回归系数和自变量为输入变死,将要拟合的模型写成函数文件huaxue.m:functionyhat=huaxue(beta,x);yhat=(beta(4)*x(:z2)-x(:r3)/beta(5)./(1+beta(l)*x(:rl)+.beta(2)*x(:z2)+beta(3)*x(:z3);然后.用nlinfit计算回归系数,Hnlparci计算回归系数的置信区间.川nlpredci计算预测值及其置信区间,编程如下:clczclearxO=I8.5547030010-3.79285801034.8247030012040.024708012052.754708010614.391U019U1U72.54100806584.3547019065913.0010030054IO8.50100300120ll0.05100801201211.3228530010133.13285190120;x=xO(:,3:5);y=xO(:,2);beta=0.I,0.05,0.02,1,2f;冬回归系数的初值,任意取的betahat,r,j=nlinfit(x,y,huaxuerbeta);betaci=nlparci(betahatrrzjacobian*,j);3是下面命令用的信息betaa=betahat,betaci令回归系数及其置信区间yhatzdelta=nlpredci(huaxue,x.betahat/1:,1jacobian1,j)冬y的预测值及其置信区间的半径,置信区间为yhatdeLtao迎嬴时得到一个交互式画面,左下方的Export可向工作区传送数据,如剩余标1,准差等使用命令nllntccl(x,y,1huaxnetbeta-;:;i气7,;:1.i:e-0.1?:3当然,在此可以采用命令nlintool(x,y,huaxue,beta)直接传送出剩余标准差rmse。附:matlab程序:(word版)clc,clear;x0=18.55470300103.7928580104.824703001200.02470801202.75470801014.39100190102.5410080654.354701906513.00100300548.501003001200.051008012011.32285300103.13285190120;x=x0(:,3:5);y=x0(:,2);beta=0.1,0.05,0.02,1,2;betahat,r,j=nlinfit(x,y,huaxue,beta);betaci=nlparci(betahat,r,jacobian,j);betaa=betahat,betaci;yhat,delta=nlpredci(huaxue,x,betahat,r,jacobian,j);NlintoolB.matlab进行逐步回归分析逐步分析的由来:实际问题中,影响因变量的因素有很多,但是我们希望从其中挑选出具有显著影响的因素来建立回归模型,所以从这一点出发就涉及选取变量的问题,逐步分析正是着手解决这一问题的,为方便起见,我们下面质对线性回归模型作介绍:(下面有图片的形式加以介绍)变星选择的标准,简单地说就是所有对因变星影响显著的变鼠都应选入模型,而影响不显苫的变量都不应选入模型,从便于应用的角度应使模型中变量个数尽可能少若候选的自变量集合为s=X.,L,从中选出一个子集SuS,设禹中有I个自变量。=L-.ni),由S和因变量*构造的回归模型的误差平方和为。,则模型的剩余标准差的平方s.=Y,为数据样本容量.所选子集S应使S尽量小,_I一通常回赤型中包铜5百变1诡疚&平方和。越不,如若横型中包含有对*影响很小的变星,那么。不会由于包含这些变虽在内而减少多少,却因/的增加可能使s反而增大,同时这些对*影响不显苫的变最也会影响模型的稳定性,因此可将剩余标准差S最小作为衡量变量选择的一个数量标准。逐步回归是实现变量选择的种方法,基本思路为,先确定一初始子集,然后每次从子集外影响显著的变里中引入个对*影响最大的,再对原来子集中的变量进行检验,从变得不显著的变技中剔除个影响最小的,直到不能引入和剔除为止。使用逐步回归有两点值得注意,一是要适当地选定引入变量的显著性水平和剔除变量的显著性水平显然,?越大,引人的变景越多;越大;剔除的变量越少。一范市手各个变垦之间卸虽引入后,夜原来忱历显置通厂51变得不显著,从而被剔除,知以在翩选择至E时应尽最选择相互独立桂酮诚些3atlab统计工具箱中川作逐步丽的是命令stepw声它提供亍不交互式画血,逍过这个这具体可以自由地选择变最,进行统计分析,其通常用法是:stepwise(x,y,inmodel,alpha)其中x是白菠夏薮据7晶商变枇册分别为x川和x1矩阵,inmodel是矩阵x的列数的指标,给出初始模型中包括的子集(缺戏时设定为至?,alpha为显点住,K平.StepwiseRj?Mion窗口,显示Id!)I回教及其直信区伺和其它一些统计昂.的信息。绿色表明在模型中的变拈.红色表明从模型中移去的变危。在这个窗口中有Export按钮,点击Export产生一个菜单,表明了要传送给MatlabT.作区的参数,它们给出了统计计算的一些结果例5水泥凝冏时放出的热威,勺水泥中4种化学成分12以3入4有关,今测得组数据如表5,试用逐步回归来确定一个线性模型表5序号由巧与心y172666078.52129155274.331156820104.34113184787.6575263395.9-248-61155922109.27371176102.78131224472.59254182293.1102147426115.911140233483.8121166912113.3131068812109.4编写持序如下:clcclearxO=l7266608.5129155274,3311s20104.341131oU4?87.6575263395-961155gOn109.27371176102.7E131n9j4472.59-=5418r*i93.1102147426115,911140二3483.812116g12113,313IDc12109.4;x=xu(:,2:5)y=x0(:F6);stepvjise(X,y)ExpatRW5C=2.fl0lR-suars.9562376AiSJR-sq=C9735&5mu捋3i*756ifie-O0?MidelHiitarvi1111.10-.-nrf123A5UJEJ理由图分析可得,x3、x4不显著,应该剔除,贝U可以得到以下图形:Matlab结果如下:Sort-a5005115rt&rMpt-S2S77SR-sauars-3.97&G7BF-229.504g4硕淑0920irModelHstdr10.0TtTffG4UJmn&这个夜中的冲4两行用红色显示,表明它们已移去.从新的统计结果可以看出,虽然剩余标准差s(RMSE)没有太大的变化,但是统计皓F的值明显增大,因此新的回归模型更好一些.口以求出最终的模型为y=52.5773+14653+0.6623巧附录:matlab程序word形式:clc,clearx0=172666078.5129155274.31156820104.3113184787.675263395.91155922109.2371176102.7131224472.5254182293.12147426115.9140233483.81166912113.31068812109.4;x=x0(:,2:5);y=x0(:,6);stepwise(x,y)本篇参考书籍:matlab分析基本理论、matlab在数学中的应用注意:1.本篇重在对线性回归问题模型作一个总的概括,对于非线性回归没有作为重点;2.本篇中存在的不足与缺陷,将在后续工作中不断完善与更新;2014/7/20
展开阅读全文