
回归分析与matlab实现.ppt
53页1数学建模与数学实验后勤工程学院数学教研室回归分析实验目的实验内容2、掌握用数学软件求解回归分析问题1、直观了解回归分析基本内容1、回归分析的基本理论3、实验作业2、用数学软件求解回归分析问题3一元线性回归多元线性回归回归分析数学模型及定义*模型参数估计*检验、预测与控制可线性化的一元非线 性回归(曲线回归)数学模型及定义*模型参数估计*多元线性回归中的 检验与预测逐步回归分析*4一、数学模型例1 测16名成年女子的身高与腿长所得数据如下:以身高x为横坐标,以腿长y为纵坐标将这些数据点(xI,yi) 在平面直角坐标系上标出.散点图解答*5一元线性回归分析的主要任务是:返回*6二、模型参数估计1、回归系数的最小二乘估计*7*8返回*9三、检验、预测与控制1、回归方程的显著性检验*10(Ⅰ)F检验法(Ⅱ)t检验法*11(Ⅲ)r检验法*122、回归系数的置信区间*133、预测与控制(1)预测*14(2)控制返回*15四、可线性化的一元非线性回归(曲线回归)例2 出钢时所用的盛钢水的钢包,由于钢水对耐火材料的侵蚀,容积不断增大.我们希望知道使用次数与增大的容积之间的关 系.对一钢包作试验,测得的数据列于下表:解答*16散 点 图此即非线性回归或曲线回归 问题(需要配曲线) 配曲线的一般方法是:*17通常选择的六类曲线如下:返回*18一、数学模型及定义返回*19二、模型参数估计*20返回*21三、多元线性回归中的检验与预测(Ⅰ)F检验法(Ⅱ)r检验法(残差平方和 )*222、预测(1)点预测(2)区间预测返回*23四、逐步回归分析(4)“有进有出”的逐步回归分析。
1)从所有可能的因子(变量)组合的回归方程中选择最优者;(2)从包含全部变量的回归方程中逐次剔除不显著因子;(3)从一个变量开始,把变量逐个引入方程;选择“最优”的回归方程有以下几种方法:“最优”的回归方程就是包含所有对Y有影响的变量, 而不包含 对Y影响不显著的变量回归方程以第四种方法,即逐步回归分析法在筛选变量方面较 为理想.*24• 这个过程反复进行,直至既无不显著的变量从回归方 程中剔除,又无显著变量可引入回归方程时为止逐步回归分析法的思想:• 从一个自变量开始,视自变量Y作用的显著程度,从大 到地依次逐个引入回归方程• 当引入的自变量由于后面变量的引入而变得不显著时, 要将其剔除掉• 引入一个自变量或从回归方程中剔除一个自变量,为 逐步回归的一步 • 对于每一步都要进行Y值检验,以确保每次引入新的显 著性变量前回归方程中只包含对Y作用显著的变量返回*25统计工具箱中的回归分析命令1、多元线性回归2、多项式回归3、非线性回归4、逐步回归返回*26多元线性回归b=regress( Y, X )1、确定回归系数的点估计值:*273、画出残差及其置信区间: rcoplot(r,rint)2、求回归系数的点估计和区间估计、并检验回归模型:[b, bint,r,rint,stats]=regress(Y,X,alpha)回归系数的区间估计残差用于检验回归模型的统计量 , 有三个数值:相关系数r2、 F值、与F对应的概率p置信区间显著性水平 (缺省时为0.05)*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,statsTo MATLAB(liti11)题目*293、残差分析,作残差图:rcoplot(r,rint)从残差图可以看出,除第二个数据外,其余数据的残 差离零点均较近,且残差的置信区间均包含零点,这说明 回归模型 y=-16.073+0.7194x能较好的符合原始数据,而第 二个数据可视为异常点. 4、预测及作图: z=b(1)+b(2)*xplot(x,Y,'k+',x,z,'r')返回To MATLAB(liti12)*30多 项 式 回 归 (一)一元多项式回归 (1)确定多项式系数的命令:[p,S]=polyfit(x,y,m)(2)一元多项式回归命令:polytool(x,y,m)1、回归:y=a1xm+a2xm-1+…+amx+am+12、预测和预测误差估计: (1)Y=polyval(p,x)求polyfit所得的回归多项式在x处 的预测值Y;(2)[Y,DELTA]=polyconf(p,x,S,alpha)求polyfit所得的回归多项式在x处的预测值Y及预测值的显著性为1-alpha的置信区间Y DELTA;alpha缺省时为0.5.*31法一直接作二次多项式回归: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,S]=polyfit(t,s,2)To MATLAB(liti21 )得回归模型为 :*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]=regress(s',T); b,statsTo MATLAB(liti22)得回归模型为 :Y=polyconf(p,t,S)plot(t,s,'k+',t,Y,'r')预测及作图To MATLAB(liti23)*33(二)多元二项式回归命令:rstool(x,y,’model’, alpha)nm矩阵显著性水平 (缺省时为0.05)n维列向量*34例3 设某商品的需求量与消费者的平均收入、商品价格的统计数据如下,建立回归模型,预测平均收入为1000、价格为6时 的商品需求量.法一直接用多元二项式回归: 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=[x1' x2'];rstool(x,y,'purequadratic')*35在画面左下方的下拉式菜单中选”all”, 则beta、rmse和residuals都 传送到Matlab工作区中.在左边图形下方的方框中输入1000,右边图形下方的方框中输入6。
则画面左边的“Predicted Y”下方的数据变为88.47981,即预测出 平均收入为1000、价格为6时的商品需求量为88.4791.*36在Matlab工作区中输入命令: beta, rmseTo MATLAB(liti31)*37结果为: b =110.53130.1464-26.5709-0.00011.8475stats =0.9702 40.6656 0.0005法二To MATLAB(liti32)返回将化为多元线性回归:*38非线性回 归 (1)确定回归系数的命令:[beta,r,J]=nlinfit(x,y,’model’, beta0)(2)非线性回归命令:nlintool(x,y,’model’, beta0,alpha)1、回归:残差Jacobian矩阵回归系数 的初值是事先用m-文件定 义的非线性函数估计出的 回归系数输入数据x、y分别为 矩阵和n维列向 量,对一元非线性回 归,x为n维列向量2、预测和预测误差估计: [Y,DELTA]=nlpredci(’model’, x,beta,r,J) 求nlinfit 或nlintool所得的回归函数在x处的预测值Y及预测值的显 著性为1-alpha的置信区间Y DELTA.*39例 4 对第一节例2,求解如下:2、输入数据:x=2:16;y=[6.42 8.20 9.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)题目*404、预测及作图: [YY,delta]=nlpredci('volum',x',beta,r ,J);plot(x,y,'k+',x,YY,'r') To MATLAB(liti42)*41例5 财政收入预测问题:财政收入与国民收入、工业总产值 、农业总产值、总人口、就业人口、固定资产投资等因素有关 。
下表列出了1952-1981年的原始数据,试构造预测模型 解 设国民收入、工业总产值、农业总产值、总人口、就业 人口、固定资产投资分别为x1、x2、x3、x4、x5、x6,财政收 入为y,设变量之间的关系为: y= ax1+bx2+cx3+dx4+ex5+fx6 使用非线性回归方法求解421. 对回归模型建立M文件model.m如下:function yy=model(beta0,X)a=beta0(1);b=beta0(2);c=beta0(3);d=beta0(4);e=beta0(5);f=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; *432. 主程序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 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)*44betafit =0.5243-0.0294-0.63040.0112-0.02300.3658即y= 0.5243x1-0.0294x2-0.6304x3+0.0112x4-0.0230x5+0.3658x6结果为:返 回*45逐 步 回 归逐步回归的命令是:stepwise(x,y,inmodel,alpha)运行stepwise命令时产生三个图形窗口:Stepwise Plot, Stepwise Table,Stepwise History.在Stepwise Plot窗口,显示出各项的回归系数及其置信区间.Stepwise Table 窗口中列出了一个统计表,包括回归系数及 其置信区间,以及模型的统计量剩余标准差(RMS。












