全国大学生数学建模竞赛 ——2006年B题详解预备知识 回归分析与多项式拟合线性规划 数据包络模型(DEA)2006年B题三个问题的解答一、预备知识——回归分析回归模型是用统计分析方法建立的最常用的一类模型数学建模的基本方法通过对数据的统计分析,找出与数据拟合最好的模型由于客观事物内部规律的复杂及人们认识程度的 限制,无法分析实际对象内在的因果关系,建立合乎机理规律的数学模型 回归分析起源于生物学研究,是由英国生物学家兼统计学家高尔登(Francis Galton 1822-1911)在19世纪末叶研究遗传学特性时首先提出来的 高尔登在1889年发表的著作《自然的遗传》中,提出了回归分析方法以后, 很快就应用到经济领域中来,而且这一名词也一直为生物学和统计学所沿用 为了研究钢材消费量与国民收入之间的关 系,在统计年鉴上查得一组历史数据引例:钢材消费量与国民收入的关系 年 份196419651966……197819791980消费(吨)698872988……144627362825收入(亿)109712841502……294831553372试分析预测若1981年到1985年我国国民收 入以4.5%的速度递增,钢材消费量将达到什么 样的水平? 钢材消费量--------试验指标(因变量)Y;国民收入-----------自变量 x;建立数据拟合函数 y = f(x);作拟合曲线图形分析。
问题分析 :钢材消费量y与国民收入x的散点图y=a+bx假设: (y = f(x))1)Y是一个正态随机变量,即Y服从正态分布,并且有方差 D(Y)=σ2回归分析是研究变量间相关关系的一种统计分析特点:试验指标(因变量)是随机变量2)根据观测值作的散点图,观察出函数f(x)是线性形式还是非线性形式 回归模型及回归分析一元线性回归模型或需要解决的问题:1) 在回归模型中如何估计参数a、b和σ2?2) 模型的假设是否正确?需要检验设观测值为(xi, yi)(i=1,2,…,n), 代入模型中 ,yi = a + bxi +εi解出的参数记为则回归方程 :最小二乘法:回归系数的最小二乘估计其中称Qe为残差平方和或剩余平方和. 可以证明: 回归方程的显著性检验回归模型的假设检验提出问题: 1、相关系数检验| r |≤1| r |→1,线性相关| r |→0,非线性相关模型:Y = a + bx +ε()-11||·0rα(n-2)-rα(n-2)H0的拒绝域为: 2)(| ˆ>nr|ra可以用三种不同方法进行检验,它们的本质 是相同的.2、F-检验法平方和分解公式:记为实测值 估计值残差值,剩余平方和,越小越好认为线性回归效果好a2), 1 ()2, 1 (~)2/( >=nFFnFnQUF拒绝域预测——区间估计给定的自变量x0,给出y0的点估计量: y0的置信度为(1)的预测区间为: 小结 : 或模型1、估计参数a,b,σ2;2、检验模型正确与否;(即b→0)3、预测;已知数据(xi, yi)(i =1,2,…,n), 如何利用 MATLAB软件实现以上的统计计算?MATLAB软件实现使用命令regress实现一元线性回归模型的计算b = regress (Y, X) 或 [b, bint, r, rint, stats] = regress(Y, X, alpha)回归系数a,b以及它们的置信区间残差向量e=Y-Y及它们的置信区间相关系数R2,F-统计量和与之对应的概率p 。
由R2判定x与y是否线性相关,p小于alpha,说明回归效果显著残差及其置信区间可以用rcoplot(r,rint)画图默认值是 0.05y = a + bx +ε引例求解输入:x=[1097 1284 1502 1394 1303 1555 1917 2051 2111 2286 2311 2003 2435 2625 2948 3155 3372];y=[698 872 988 807 738 1025 1316 1539 1561 1765 1762 1960 1902 2013 2446 2736 2825];X=[ones(size(x')),x'] [c,cint,r,rint,stats]=regress(y',X,0.05)rcoplot(r,rint)输出:c = -460.5282 (参数a) 0.9840 (参数b)cint = -691.8478 -229.2085 ( a的置信区间 )0.8779 1.0900 ( b的置信区间 )r = [ 79.1248 69.1244 -29.3788 -104.1112 -83.5709 -44.5286-109.7219 -18.5724 -55.6100 -23.8029 -51.4019 449.6576-33.4128 -109.3651 5.8160 92.1364 -32.3827]’(残差向量)rint=(略)(参见残差分析图)stats = 0.9631(R2) 391.2713( F ) 0.0000 ( P)p远小于=0.05 ,模型从整体上看成立第12个数据点 异常,可删除预测x1(1)=3372;y1(1)=2825; %80年收入和钢材消费for i=1:5x1(i+1)=1.045*x1(i);%未来五年国民收入以4.5%的速度递增y1(i+1)=-460.5282+0.9840*x1(i+1);%钢材的预测值endx1, y1 结果x1 = 3372.0 3523.7 3682.3 3848.0 4021.2 4202.1y1 = 2825 3006.8 3162.9 3325.9 3496.3 3674.4多元回归或者非线性,也可以是用 regress函数多元线性回归b=regress( Y, X )1)确定回归系数的点估计值:对一元线性回归,取p=1即可.3、画出残差及其置信区间: rcoplot(r,rint)2)求回归系数的点估计和区间估计、并检验回归模型:[b, bint,r,rint,stats]=regress(Y,X,alpha)回归系数的区间估计残差用于检验回归模型的统计量 ,有三个数值: 相关系数r2、F值、与F对应的 概率p置信区间显著性水平 (缺省时为0.05)牙膏的销售量 问 题建立牙膏销售量与价格、广告投入之间的模型 预测在不同价格和广告费用下的牙膏销售量 收集了30个销售周期本公司牙膏销售量、价格、广告费用,及同期其它厂家同类牙膏的平均售价 9.260.556.804.253.70307.930.055.803.853.80298.510.256.754.003.7527.38-0.055.503.803.851销售量 (百万支)价格差 (元)广告费用 (百万元)其它厂家 价格(元)本公司价 格(元)销售 周期基本模型 y ~公司牙膏销售量 x1~其它厂家与本公司价格差 x2~公司广告费用x2yx1yx1, x2~自变量 y~因变量 0, 1 , 2 , 3 ~回归系数 ~随机误差(均值为零的正态分布随机变量)MATLAB 统计工具箱 模型求解[b,bint,r,rint,stats]=regress(y,x,alpha ) 输入 x= ~n4数据矩阵, 第1列为全1向量alpha(置信水平,0.05) b~的估计 值 bint~b的置信区 间 r ~残差向量rint~r的置信区间 y~n维数据向量输出 由数据 y, x1, x2 估计Stats~检验统计量R2,F, p 结果分析参数参数估计值置信区间 17.3244[5.7282 28.9206] 1.3070[0.6829 1.9311 ] -3.6956[-7.4989 0.1077 ] 0.3486[0.0379 0.6594 ] R2=0.9054 F=82.9409 p=0.00000 1 2 3F远超过F检验的临界值 p远小于=0.05 模型从整体上看成立多 项 式 回 归 (1)一元多项式回归 1)确定多项式系数的命令:[p,S]=polyfit(x,y,m)2)一元多项式回归命令:polytool(x,y,m)A、回归:y=a1xm+a2xm-1+…+amx+am+1此命令产生一个交互式的画面,画面中有拟合曲线和y 的置信区间。
通过左下方的Export菜单,可以输出回归系数 等回归问题扩充:B、预测和预测误差估计: (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.05.一元多项式回归也可以化为多元线性回归来解法一直接作二次多项式回归: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) 得回归模型为 :法二化为多元线性回归: 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得回归模型为 :Y=polyconf(p,t,S)plot(t,s,'k+',t,Y,'r')预测及作图多元二项式回归命令:rstool(x,y,’model’, alpha)nm矩阵显著性水平 (缺省时为0.05)n维列向量命令rstool产生一个交互式画面,画面中有m个图形,这m个图形分别给出了一个独立变量xi(另m-1个变量取固定值)与y的拟合曲线,以及y的置信区间。
可以通过键入不同的xi值来获得相应的y值例 设某商品的需求量与消费者的平均收入、商品价格的统计数据如下,建立回归模型,预测平均收入为800、价格为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')在画面左下方的下拉式菜单中选”all”, 则beta(回归系数)、rmse (剩余标准差)和residuals(残差)都传送到Matlab工作区中.在左边图形下方的方框中输入800,右边图形下方的方框中输入6则画面左边的“Predicted Y”下方的数据变为86.3971,即预测出平均收 入为800、价格为6时的商品需求量为86.3971.在Matlab工作区中输入命令: beta, rmse非线性回 归 (1)确定回归系数的命令:[beta,r,J]=nlinfit(x,y,’model’, beta0)(2)非线性回归命令:nlintool(x,y,’model’, beta0,alpha)回归:残差Jacobian矩阵,。