《MATLAB程序设计之算法回归分析.ppt》由会员分享,可在线阅读,更多相关《MATLAB程序设计之算法回归分析.ppt(52页珍藏版)》请在三一办公上搜索。
1、2023/7/29,1,回归分析,撰写:刘伟 董小刚 林玎 制作:李慧玲 李刚健吉林建工学院基础科学系,实验目的,实验内容,1、回归分析的基本理论。,3、实验作业。,2、用数学软件求解回归分析问题。,2023/7/29,3,一元线性回归,多元线性回归,回归分析,数学模型及定义,*模型参数估计,*检验、预测与控制,可线性化的一元非线性回归(曲线回归),数学模型及定义,*模型参数估计,*多元线性回归中的检验与预测,逐步回归分析,2023/7/29,4,一、数学模型,例1 测16名成年女子的身高与腿长所得数据如下:,以身高x为横坐标,以腿长y为纵坐标将这些数据点(xI,yi)在平面直角坐标系上标出.
2、,散点图,解答,2023/7/29,5,一元线性回归分析的主要任务是:,返回,2023/7/29,6,二、模型参数估计,1、回归系数的最小二乘估计,2023/7/29,7,2023/7/29,8,返回,2023/7/29,9,三、检验、预测与控制,1、回归方程的显著性检验,2023/7/29,10,()F检验法,()t检验法,2023/7/29,11,()r检验法,2023/7/29,12,2、回归系数的置信区间,2023/7/29,13,3、预测与控制,(1)预测,2023/7/29,14,(2)控制,返回,2023/7/29,15,四、可线性化的一元非线性回归(曲线回归),例2 出钢时所用
3、的盛钢水的钢包,由于钢水对耐火材料的侵蚀,容积不断增大.我们希望知道使用次数与增大的容积之间的关 系.对一钢包作试验,测得的数据列于下表:,解答,2023/7/29,16,散点图,此即非线性回归或曲线回归,问题(需要配曲线),配曲线的一般方法是:,2023/7/29,17,通常选择的六类曲线如下:,返回,2023/7/29,18,一、数学模型及定义,返回,2023/7/29,19,二、模型参数估计,2023/7/29,20,返回,2023/7/29,21,三、多元线性回归中的检验与预测,()F检验法,()r检验法,(残差平方和),2023/7/29,22,2、预测,(1)点预测,(2)区间预测
4、,返回,2023/7/29,23,四、逐步回归分析,(4)“有进有出”的逐步回归分析。,(1)从所有可能的因子(变量)组合的回归方程中选择最优者;,(2)从包含全部变量的回归方程中逐次剔除不显著因子;,(3)从一个变量开始,把变量逐个引入方程;,选择“最优”的回归方程有以下几种方法:,“最优”的回归方程就是包含所有对Y有影响的变量,而不包含对Y影响不显著的变量回归方程。,以第四种方法,即逐步回归分析法在筛选变量方面较为理想.,2023/7/29,24,这个过程反复进行,直至既无不显著的变量从回归方程中剔除,又无显著变量可引入回归方程时为止。,逐步回归分析法的思想:,从一个自变量开始,视自变量Y
5、作用的显著程度,从大到地依次逐个引入回归方程。,当引入的自变量由于后面变量的引入而变得不显著时,要将其剔除掉。,引入一个自变量或从回归方程中剔除一个自变量,为逐步回归的一步。,对于每一步都要进行Y值检验,以确保每次引入新的显著性变量前回归方程中只包含对Y作用显著的变量。,返回,2023/7/29,25,统计工具箱中的回归分析命令,1、多元线性回归,2、多项式回归,3、非线性回归,4、逐步回归,返回,2023/7/29,26,多元线性回归,b=regress(Y,X),1、确定回归系数的点估计值:,2023/7/29,27,3、画出残差及其置信区间:rcoplot(r,rint),2、求回归系数
6、的点估计和区间估计、并检验回归模型:b,bint,r,rint,stats=regress(Y,X,alpha),2023/7/29,28,例1,解:,1、输入数据:x=143 145 146 147 149 150 153 154 155 156 157 158 159 160 162 164;X=ones(16,1)x;Y=88 85 88 91 92 93 93 95 96 98 97 96 98 99 100 102;,2、回归分析及检验:b,bint,r,rint,stats=regress(Y,X)b,bint,stats,To MATLAB(liti11),题目,2023/7/2
7、9,29,3、残差分析,作残差图:rcoplot(r,rint),从残差图可以看出,除第二个数据外,其余数据的残差离零点均较近,且残差的置信区间均包含零点,这说明回归模型 y=-16.073+0.7194x能较好的符合原始数据,而第二个数据可视为异常点.,4、预测及作图:z=b(1)+b(2)*x plot(x,Y,k+,x,z,r),返回,To MATLAB(liti12),2023/7/29,30,多 项 式 回 归,(一)一元多项式回归,y=a1xm+a2xm-1+amx+am+1,2023/7/29,31,法一,直接作二次多项式回归:t=1/30:1/30:14/30;s=11.86
8、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,S=polyfit(t,s,2),To MATLAB(liti21),得回归模型为:,2023/7/29,32,法二,化为多元线性回归: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(14,1)t(t.2);b,bint,r,rint,stats=reg
9、ress(s,T);b,stats,To MATLAB(liti22),得回归模型为:,Y=polyconf(p,t,S)plot(t,s,k+,t,Y,r),预测及作图,To MATLAB(liti23),2023/7/29,33,(二)多元二项式回归,命令:rstool(x,y,model,alpha),2023/7/29,34,例3 设某商品的需求量与消费者的平均收入、商品价格的统计数 据如下,建立回归模型,预测平均收入为1000、价格为6时 的商品需求量.,法一,直接用多元二项式回归:x1=1000 600 1200 500 300 400 1300 1100 1300 300;x2=
10、5 7 6 6 8 7 5 4 3 9;y=100 75 80 70 50 65 90 100 110 60;x=x1 x2;rstool(x,y,purequadratic),2023/7/29,35,在画面左下方的下拉式菜单中选”all”,则beta、rmse和residuals都传送到Matlab工作区中.,在左边图形下方的方框中输入1000,右边图形下方的方框中输入6。,则画面左边的“Predicted Y”下方的数据变为88.47981,即预测出平均收入为1000、价格为6时的商品需求量为88.4791.,2023/7/29,36,在Matlab工作区中输入命令:beta,rmse,
11、To MATLAB(liti31),2023/7/29,37,结果为:b=110.5313 0.1464-26.5709-0.0001 1.8475 stats=0.9702 40.6656 0.0005,法二,To MATLAB(liti32),返回,2023/7/29,38,非线性回 归,(1)确定回归系数的命令:beta,r,J=nlinfit(x,y,model,beta0),(2)非线性回归命令:nlintool(x,y,model,beta0,alpha),1、回归:,2023/7/29,39,例 4 对第一节例2,求解如下:,2、输入数据:x=2:16;y=6.42 8.20 9
12、.58 9.5 9.7 10 9.93 9.99 10.49 10.59 10.60 10.80 10.60 10.90 10.76;beta0=8 2;,3、求回归系数:beta,r,J=nlinfit(x,y,volum,beta0);beta,得结果:beta=11.6036-1.0641,即得回归模型为:,To MATLAB(liti41),题目,2023/7/29,40,4、预测及作图:YY,delta=nlpredci(volum,x,beta,r,J);plot(x,y,k+,x,YY,r),To MATLAB(liti42),2023/7/29,41,例5 财政收入预测问题:财
13、政收入与国民收入、工业总产值、农业总产值、总人口、就业人口、固定资产投资等因素有关。下表列出了1952-1981年的原始数据,试构造预测模型。,解 设国民收入、工业总产值、农业总产值、总人口、就业人口、固定资产投资分别为x1、x2、x3、x4、x5、x6,财政收入为y,设变量之间的关系为:y=ax1+bx2+cx3+dx4+ex5+fx6使用非线性回归方法求解。,2023/7/29,42,1 对回归模型建立M文件model.m如下:function yy=model(beta0,X)a=beta0(1);b=beta0(2);c=beta0(3);d=beta0(4);e=beta0(5);f
14、=beta0(6);x1=X(:,1);x2=X(:,2);x3=X(:,3);x4=X(:,4);x5=X(:,5);x6=X(:,6);yy=a*x1+b*x2+c*x3+d*x4+e*x5+f*x6;,2023/7/29,43,2.主程序liti6.m如下:,X=598.00 349.00 461.00 57482.00 20729.00 44.00.2927.00 6862.00 1273.00 100072.0 43280.00 496.00;y=184.00 216.00 248.00 254.00 268.00 286.00 357.00 444.00 506.00.271.00
15、 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.890.00 826.00 810.0;beta0=0.50-0.03-0.60 0.01-0.02 0.35;betafit=nlinfit(X,y,model,beta0),To MATLAB(liti6),2023/7/29,44,betafit=0.5243-0.0294-0.6304 0.0112-0.0230 0.3658即y=0.5243x1-
16、0.0294x2-0.6304x3+0.0112x4-0.0230 x5+0.3658x6,结果为:,返 回,2023/7/29,45,逐 步 回 归,逐步回归的命令是:stepwise(x,y,inmodel,alpha),运行stepwise命令时产生三个图形窗口:Stepwise Plot,Stepwise Table,Stepwise History.,在Stepwise Plot窗口,显示出各项的回归系数及其置信区间.,Stepwise Table 窗口中列出了一个统计表,包括回归系数及其置信区间,以及模型的统计量剩余标准差(RMSE)、相关系数(R-square)、F值、与F对应的
17、概率P.,2023/7/29,46,例6 水泥凝固时放出的热量y与水泥中4种化学成分x1、x2、x3、x4 有关,今测得一组数据如下,试用逐步回归法确定一个 线性模 型.,1、数据输入:x1=7 1 11 11 7 11 3 1 2 21 1 11 10;x2=26 29 56 31 52 55 71 31 54 47 40 66 68;x3=6 15 8 8 6 9 17 22 18 4 23 9 8;x4=60 52 20 47 33 22 6 44 22 26 34 12 12;y=78.5 74.3 104.3 87.6 95.9 109.2 102.7 72.5 93.1 115.9
18、 83.8 113.3 109.4;x=x1 x2 x3 x4;,2023/7/29,47,2、逐步回归:(1)先在初始模型中取全部自变量:stepwise(x,y)得图Stepwise Plot 和表Stepwise Table,图Stepwise Plot中四条直线都是虚线,说明模型的显著性不好,从表Stepwise Table中看出变量x3和x4的显著性最差.,2023/7/29,48,(2)在图Stepwise Plot中点击直线3和直线4,移去变量x3和x4,移去变量x3和x4后模型具有显著性.,虽然剩余标准差(RMSE)没有太大的变化,但是统计量F的值明显增大,因此新的回归模型更好.,To MATLAB(liti51),2023/7/29,49,(3)对变量y和x1、x2作线性回归:X=ones(13,1)x1 x2;b=regress(y,X),得结果:b=52.5773 1.4683 0.6623故最终模型为:y=52.5773+1.4683x1+0.6623x2,To MATLAB(liti52),返回,2023/7/29,50,作 业,2023/7/29,51,2023/7/29,52,4、混凝土的抗压强度随养护时间的延长而增加,现将一批混凝土作成12个试块,记录了养护日期x(日)及抗压强度y(kg/cm2)的数据:,