资源描述:
《数学建模方法回归分析》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第9讲回归分析1.回归分析的基本理论.2.用数学软件求解回归分析问题.一元线性回归多元线性回归回归分析数学模型及定义*模型参数估计*检验、预测与控制可线性化的一元非线性回归(曲线回归)数学模型及定义*模型参数估计逐步回归分析*多元线性回归中的检验与预测一、数学模型例1测16名成年女子的身高与腿长所得数据如下:以身高x为横坐标,以腿长y为纵坐标将这些数据点(xi,yi)在平面直角坐标系上标出.散点图解答一元线性回归分析的主要任务是:二、模型参数估计1.回归系数的最小二乘估计其中åå====niiniiynyxnx111,1,åå====ni
2、iiniiyxnxyxnx11221,1.三、检验、预测与控制1.回归方程的显著性检验(Ⅰ)F检验法(Ⅱ)t检验法(Ⅲ)r检验法2.回归系数的置信区间3.预测与控制(1)预测(2)控制四、可线性化的一元非线性回归(曲线回归)例2出钢时所用的盛钢水的钢包,由于钢水对耐火材料的侵蚀,容积不断增大.我们希望知道使用次数与增大的容积之间的关系.对一钢包作试验,测得的数据列于下表:解答散点图此即非线性回归或曲线回归问题(需要配曲线)配曲线的一般方法是:通常选择的六类曲线如下:一、数学模型及定义二、模型参数估计解得估计值()()YXXXTT1ˆ-=b
3、三、多元线性回归中的检验与预测(Ⅰ)F检验法(Ⅱ)r检验法(残差平方和)2.预测(1)点预测(2)区间预测四、逐步回归分析(4)“有进有出”的逐步回归分析.(1)从所有可能的因子(变量)组合的回归方程中选择最优者;(2)从包含全部变量的回归方程中逐次剔除不显著因子;(3)从一个变量开始,把变量逐个引入方程;选择“最优”的回归方程有以下几种方法:“最优”的回归方程就是包含所有对Y有影响的变量,而不包含对Y影响不显著的变量回归方程.以第四种方法,即逐步回归分析法在筛选变量方面较为理想.这个过程反复进行,直至既无不显著的变量从回归方程中剔除,又
4、无显著变量可引入回归方程时为止.逐步回归分析法的思想:从一个自变量开始,视自变量Y对作用的显著程度,从大到小地依次逐个引入回归方程.当引入的自变量由于后面变量的引入而变得不显著时,要将其剔除掉.引入一个自变量或从回归方程中剔除一个自变量,为逐步回归的一步.对于每一步都要进行Y值检验,以确保每次引入新的显著性变量前回归方程中只包含对Y作用显著的变量.统计工具箱中的回归分析命令1.多元线性回归2.多项式回归3.非线性回归4.逐步回归多元线性回归b=regress(Y,X)1.确定回归系数的点估计值:3.画出残差及其置信区间:rcoplot(r
5、,rint)2.求回归系数的点估计和区间估计、并检验回归模型:[b,bint,r,rint,stats]=regress(Y,X,alpha)回归系数的区间估计残差用于检验回归模型的统计量,有三个数值:相关系数r2、F值、与F对应的概率p置信区间显著性水平(缺省时为0.05)例1解:1.输入数据:x=[143145146147149150153154155156157158159160162164]';X=[ones(16,1)x];Y=[8885889192939395969897969899100102]';2.回归分析及检验:[b,
6、bint,r,rint,stats]=regress(Y,X)b,bint,statsToMATLAB(liti11)题目3.残差分析,作残差图:rcoplot(r,rint)从残差图可以看出,除第二个数据外,其余数据的残差离零点均较近,且残差的置信区间均包含零点,这说明回归模型y=-16.073+0.7194x能较好的符合原始数据,而第二个数据可视为异常点.4.预测及作图:z=b(1)+b(2)*plot(x,Y,'k+',x,z,'r')ToMATLAB(liti12)多项式回归(一)一元多项式回归(1)确定多项式系数的命令:[p,S
7、]=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的置信区间YDELTA;alpha缺省时为0.5.±法一直接作二次多项式回归:t=1/30:1/30:14/30;s=[11.8615.672
8、0.6026.6933.7141.9351.1361.4972.9085.4499.08113.77129.54146.48];[p,S]=polyfit(t,s,2)ToMATLAB(lit