数学建模与数学实验 回归分析 后勤工程学院数学教研室 2019/5/7
实验目的 实验内容 1、直观了解回归分析基本内容。 2、掌握用数学软件求解回归分析问题。 1、回归分析的基本理论。 2、用数学软件求解回归分析问题。 3、实验作业。
回归分析 一元线性回归 多元线性回归 数学模型及定义 *模型参数估计 *检验、预测与控制 可线性化的一元非线 性回归(曲线回归) *多元线性回归中的 检验与预测 逐步回归分析 2019/5/7
一、数学模型 解答 例1 测16名成年女子的身高与腿长所得数据如下: 以身高x为横坐标,以腿长y为纵坐标将这些数据点(xI,yi)在平面直角坐标系上标出. 解答 散点图 2019/5/7
一元线性回归分析的主要任务是: 返回 2019/5/7
二、模型参数估计 1、回归系数的最小二乘估计 2019/5/7
2019/5/7
返回 2019/5/7
三、检验、预测与控制 1、回归方程的显著性检验 2019/5/7
(Ⅰ)F检验法 (Ⅱ)t检验法 2019/5/7
(Ⅲ)r检验法 2019/5/7
2、回归系数的置信区间 2019/5/7
3、预测与控制 (1)预测 2019/5/7
(2)控制 返回 2019/5/7
四、可线性化的一元非线性回归 (曲线回归) 解答 例2 出钢时所用的盛钢水的钢包,由于钢水对耐火材料的侵蚀, 容积不断增大.我们希望知道使用次数与增大的容积之间的关 系.对一钢包作试验,测得的数据列于下表: 解答 2019/5/7
散 点 图 此即非线性回归或曲线回归 问题(需要配曲线) 配曲线的一般方法是: 2019/5/7
通常选择的六类曲线如下: 返回 2019/5/7
一、数学模型及定义 返回 2019/5/7
二、模型参数估计 2019/5/7
返回 2019/5/7
三、多元线性回归中的检验与预测 (Ⅰ)F检验法 (残差平方和) (Ⅱ)r检验法 2019/5/7
2、预测 (1)点预测 (2)区间预测 返回 2019/5/7
四、逐步回归分析 “最优”的回归方程就是包含所有对Y有影响的变量, 而不包含对Y影响不显著的变量回归方程。 选择“最优”的回归方程有以下几种方法: (1)从所有可能的因子(变量)组合的回归方程中选择最优者; (2)从包含全部变量的回归方程中逐次剔除不显著因子; (3)从一个变量开始,把变量逐个引入方程; (4)“有进有出”的逐步回归分析。 以第四种方法,即逐步回归分析法在筛选变量方面较为理想. 2019/5/7
从一个自变量开始,视自变量Y作用的显著程度,从大到地依次逐个引入回归方程。 逐步回归分析法的思想: 从一个自变量开始,视自变量Y作用的显著程度,从大到地依次逐个引入回归方程。 当引入的自变量由于后面变量的引入而变得不显著时,要将其剔除掉。 引入一个自变量或从回归方程中剔除一个自变量,为逐步回归的一步。 对于每一步都要进行Y值检验,以确保每次引入新的显著性变量前回归方程中只包含对Y作用显著的变量。 这个过程反复进行,直至既无不显著的变量从回归方程中剔除,又无显著变量可引入回归方程时为止。 返回 2019/5/7
统计工具箱中的回归分析命令 1、多元线性回归 2、多项式回归 3、非线性回归 4、逐步回归 返回 2019/5/7
多元线性回归 b=regress( Y, X ) 1、确定回归系数的点估计值: 2019/5/7
2、求回归系数的点估计和区间估计、并检验回归模型: [b, bint,r,rint,stats]=regress(Y,X,alpha) 回归系数的区间估计 残差 用于检验回归模型的统计量, 有三个数值:相关系数r2、 F值、与F对应的概率p 置信区间 显著性水平 (缺省时为0.05) 3、画出残差及其置信区间: rcoplot(r,rint) 2019/5/7
[b,bint,r,rint,stats]=regress(Y,X) b,bint,stats 例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) 2019/5/7
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) 返回 2019/5/7
y=a1xm+a2xm-1+…+amx+am+1 多 项 式 回 归 (一)一元多项式回归 y=a1xm+a2xm-1+…+amx+am+1 (1)确定多项式系数的命令:[p,S]=polyfit(x,y,m) (2)一元多项式回归命令:polytool(x,y,m) 1、回归: 2、预测和预测误差估计: (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. 2019/5/7
法一 直接作二次多项式回归: 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) 得回归模型为 : 2019/5/7
[b,bint,r,rint,stats]=regress(s',T); b,stats To MATLAB(liti22) 法二 化为多元线性回归: 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,stats To MATLAB(liti22) 得回归模型为 : 预测及作图 To MATLAB(liti23) Y=polyconf(p,t,S) plot(t,s,'k+',t,Y,'r') 2019/5/7
命令:rstool(x,y,’model’, alpha) (二)多元二项式回归 命令:rstool(x,y,’model’, alpha) nm矩阵 n维列向量 显著性水平 (缺省时为0.05) 2019/5/7
例3 设某商品的需求量与消费者的平均收入、商品价格的统计数 据如下,建立回归模型,预测平均收入为1000、价格为6时 的商品需求量. 例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') 2019/5/7
在左边图形下方的方框中输入1000,右边图形下方的方框中输入6。 则画面左边的“Predicted Y”下方的数据变为88.47981,即预测出平均收入为1000、价格为6时的商品需求量为88.4791. 在画面左下方的下拉式菜单中选”all”, 则beta、rmse和residuals都传送到Matlab工作区中. 2019/5/7
在Matlab工作区中输入命令: beta, rmse To MATLAB(liti31) 2019/5/7
法二 将 化为多元线性回归: To MATLAB(liti32) 结果为: b = 110.5313 0.1464 -26.5709 -0.0001 1.8475 stats = 0.9702 40.6656 0.0005 返回 2019/5/7
[beta,r,J]=nlinfit(x,y,’model’, beta0) 非线性回 归 是事先用m-文件定义的非线性函数 1、回归: (1)确定回归系数的命令: [beta,r,J]=nlinfit(x,y,’model’, beta0) Jacobian矩阵 残差 回归系数的初值 估计出的回归系数 输入数据x、y分别为 矩阵和n维列向量,对一元非线性回归,x为n维列向量。 (2)非线性回归命令:nlintool(x,y,’model’, beta0,alpha) 2、预测和预测误差估计: [Y,DELTA]=nlpredci(’model’, x,beta,r,J) 求nlinfit 或nlintool所得的回归函数在x处的预测值Y及预测值的显著性为1-alpha的置信区间Y DELTA. 2019/5/7
[beta,r ,J]=nlinfit(x',y','volum',beta0); beta 题目 例 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]'; To MATLAB(liti41) 3、求回归系数: [beta,r ,J]=nlinfit(x',y','volum',beta0); beta 得结果:beta = 11.6036 -1.0641 即得回归模型为: 2019/5/7
[YY,delta]=nlpredci('volum',x',beta,r ,J); plot(x,y,'k+',x,YY,'r') 4、预测及作图: [YY,delta]=nlpredci('volum',x',beta,r ,J); plot(x,y,'k+',x,YY,'r') To MATLAB(liti42) 2019/5/7
例5 财政收入预测问题:财政收入与国民收入、工业总产值、农业总产值、总人口、就业人口、固定资产投资等因素有关。下表列出了1952-1981年的原始数据,试构造预测模型。 解 设国民收入、工业总产值、农业总产值、总人口、就业人口、固定资产投资分别为x1、x2、x3、x4、x5、x6,财政收入为y,设变量之间的关系为: y= ax1+bx2+cx3+dx4+ex5+fx6 使用非线性回归方法求解。 2019/5/7
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=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; 2019/5/7
………………………………………………………….. 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 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) 2019/5/7
结果为: betafit = 0.5243 -0.0294 -0.6304 0.0112 -0.0230 0.3658 即y= 0.5243x1-0.0294x2-0.6304x3+0.0112x4-0.0230x5+0.3658x6 返 回 2019/5/7
stepwise(x,y,inmodel,alpha) 逐 步 回 归 显著性水平(缺省时为0.5) 逐步回归的命令是: stepwise(x,y,inmodel,alpha) 自变量数据, 阶矩阵 因变量数据, 阶矩阵 矩阵的列数的指标,给出初始模型中包括的子集(缺省时设定为全部自变量) 运行stepwise命令时产生三个图形窗口:Stepwise Plot,Stepwise Table,Stepwise History. 在Stepwise Plot窗口,显示出各项的回归系数及其置信区间. Stepwise Table 窗口中列出了一个统计表,包括回归系数及其置信区间,以及模型的统计量剩余标准差(RMSE)、相关系数(R-square)、F值、与F对应的概率P. 2019/5/7
例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 83.8 113.3 109.4]'; x=[x1 x2 x3 x4]; 2019/5/7
得图Stepwise Plot 和表Stepwise Table 2、逐步回归: (1)先在初始模型中取全部自变量: stepwise(x,y) 得图Stepwise Plot 和表Stepwise Table 图Stepwise Plot中四条直线都是虚线,说明模型的显著性不好 从表Stepwise Table中看出变量x3和x4的显著性最差. 2019/5/7
(2)在图Stepwise Plot中点击直线3和直线4,移去变量x3和x4 虽然剩余标准差(RMSE)没有太大的变化,但是统计量F的 值明显增大,因此新的回归模型更好. To MATLAB(liti51) 2019/5/7
(3)对变量y和x1、x2作线性回归: X=[ones(13,1) x1 x2]; b=regress(y,X) To MATLAB(liti52) 得结果:b = 52.5773 1.4683 0.6623 故最终模型为:y=52.5773+1.4683x1+0.6623x2 返回 2019/5/7
作 业 1、考察温度x对产量y的影响,测得下列10组数据: 作 业 1、考察温度x对产量y的影响,测得下列10组数据: 求y关于x的线性回归方程,检验回归效果是否显著,并预测x=42℃时产量的估值及预测区间(置信度95%). 2、某零件上有一段曲线,为了在程序控制机床上加工这一零件,需要求这段曲线的解析表达式,在曲线横坐标xi处测得纵坐标yi共11对数据如下: 求这段曲线的纵坐标y关于横坐标x的二次多项式回归方程. 2019/5/7
2019/5/7
4、混凝土的抗压强度随养护时间的延长而增加,现将一批混凝土作成12个试块,记录了养护日期x(日)及抗压强度y(kg/cm2)的数据: 2019/5/7
谢谢大家