数学建模讲义统计模型 — 回归分析 主要内容 0 引例1 (多元)线性回归模型2 参数的最小二乘估计3 线性关系的显著性检验4 区间预测5 参数的区间估计(假设检验)6 matlab多元线性回归7 matlab非线性回归8 非线性回归化为线性回归9 matlab逐步回归10 综合实例:牙膏的销售量11 综合实例:投资额与国民生产总值和物价指数 例1: 水泥凝固时放出的热量y与水泥中4种化学成分x1、x2、x3、 x4 有关,今测得一组数据如下,试确定一个 线性模型. 线性关系是否显著?当x=(8,30,10,10)时,95%的可能y落在哪个区间?是否4种化学成分都对释放的热量有显著影响?y还受其他因素影响吗? 如x1*x2, yt-1,xt-1 0 引例 为了可以使用普通最小二乘法进行参数估计,需对模型提出若干基本假设 : (1)随机误差项服从0均值、同方差的正态分布: (2)随机误差项在不同样本点之间是独立的,不存在序列相关: (3)随机误差项与解释变量之间不相关: 1多元线性回归 多元线性回归 称为回归平面方程. 解得 2 参数的最小二乘估计 (Ⅰ)F检验法 (Ⅱ)r检验法 (残差平方和) 3 线性关系的显著性检验 3 线性关系的显著性检验 记: 回归平方和: 残差平方和: 则线性关系不显著,反之显著. 若=2677.9 =47.86 (1)点预测 (2)区间预测 4 预测 残差平方和: 4 预测 在未知点 的点预测为: 而y的置信水平1- 的区间预测为: 其中: (7,40,10,30) y=89.70 (89.70-18.32, 89.70+18.32) 经常听到这样的说法,"如果给定解释变量值,根据模型就可以得到被解释变量的预测值为……值".这种说法是不科学的,也是统计模型无法达到的.如果一定要给出一个具体的预测值,那么它的置信水平则为0;如果一定要回答以100%的置信水平处在什么区间中,那么这个区间是∞.在实际应用中,我们当然也希望置信水平越高越好,置信区间越小越好.如何才能缩小置信区间?(1)置信水平与置信区间是矛盾的.但可增大样本容量n,使临界值t减小.(2)更主要的是提高模型的拟合优度,以减小残差平方和.设想一种极端情况,如果模型完全拟合样本观测值,残差平方和为0,则置信区间也为0.(3)提高样本观测值的分散度.在一般情况下,样本观测值越分散,(X'X)-1越小. 5 参数的区间估计(假设检验) 记: 故bi的区间估计为: 则有: 若因素xi不重要,则有bi=0,即上述区间包含0. -99.1786 223.9893 -0.1663 3.2685 -1.1589 2.1792 -1.6385 1.8423 -1.7791 1.4910 5 逐步回归 (4)"有进有出"的逐步回归分析. (1)从所有可能的因子(变量)组合的回归方程中选择最优者; (2)从包含全部变量的回归方程中逐次剔除不显著因子; (3)从一个变量开始,把变量逐个引入方程; 选择"最优"的回归方程有以下几种方法: "最优"的回归方程就是包含所有对Y有影响的变量, 而不包含对Y影响不显著的变量回归方程. 以第四种方法,即逐步回归分析法在筛选变量方面较为理想. 这个过程反复进行,直至既无不显著的变量从回归方程中剔除,又无显著变量可引入回归方程时为止. "有进有出"的逐步回归分析(组合优化) 从一个自变量开始,视自变量Y作用的显著程度,从大到小地依次逐个引入回归方程. 但当引入的自变量由于后面变量的引入而变得不显著时,要将其剔除掉. 引入一个自变量或从回归方程中剔除一个自变量,为逐步回归的一步. 对于每一步都要进行Y值检验,以确保每次引入新的显著性变量前回归方程中只包含对Y作用显著的变量. [b, bint,r,rint,stats]=regress(Y,X,alpha) 回归系数的区间估计 残差 置信区间 6 matlab多元线性回归 引例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 16.0730 -33.7071 1.5612 0.7194 0.6047 0.8340 stats = 0.9282 180.9531 0.0000 即;的置信区间为[-33.7017,1.5612], 的置信区间为[0.6047,0.834]; r2=0.9282, F=180.9531, p=0.0000.p<0.05, 可知回归模型 y=-16.073+0.7194x 成立. 3、残差分析,作残差图:rcoplot(r,rint) 从残差图可以看出,除第二个数据外,其余数据的残差离零点均较近,且残差的置信区间均包含零点,这说明回归模型 y=-16.073+0.7194x能较好的符合原始数据,而第二个数据可视为异常点. (可以去掉该点重新回归) 4、预测及作图:z=b(1)+b(2)*x plot(x,Y,'k+',x,z,'r') 注意,matlab没有线性回归的区间预测函数,需要自己根据公式计算. 逐步回归的命令是:stepwise(x,y,inmodel,alpha) 运行stepwise命令时产生三个图形窗口:Stepwise Plot,Stepwise Table,Stepwise History. 在Stepwise Plot窗口,显示出各项的回归系数及其置信区间. Stepwise Table 窗口中列出了一个统计表,包括回归系数及其置信区间,以及模型的统计量剩余标准差(RMSE)、相关系数(R-square)、F值、与F对应的概率P. 矩阵的列数的指标,给出初始模型中包括的子集(缺省时设定为全部自变量) 显著性水平(缺省时为0.5) 自变量数据,阶矩阵 因变量数据,阶矩阵 7 matlab逐步回归 引例2: 水泥凝固时放出的热量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]; 2、逐步回归:(1)先在初始模型中取全部自变量:stepwise(x,y)得图Stepwise Plot 和表Stepwise Table 图Stepwise Plot中四条直线都是虚线,说明模型的显著性不好 从表Stepwise Table中看出变量x3和x4的显著性最差. (2)在图Stepwise Plot中点击直线3和直线4,移去变量x3和x4 移去变量x3和x4后模型具有显著性. 虽然剩余标准差(RMSE)没有太大的变化,但是统计量F的值明显增大,因此新的回归模型更好. (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 注意,matlab没有线性回归的区间预测函数,需要自己根据公式计算. 问题 建立牙膏销售量与价格、广告投入之间的模型 预测在不同价格和广告费用下的牙膏销售量 收集了30个销售周期本公司牙膏销售量、价格、广告费用,及同期其它厂家同类牙膏的平均售价 9.26 0.55 6.80 4.25 3.70 30 7.93 0.05 5.80 3.85 3.80 29 ? ? ? ? ? ? 8.51 0.25 6.75 4.00 3.75 2 7.38 -0.05 5.50 3.80 3.85 1 销售量(百万支) 价格差(元) 广告费用(百万元) 其它厂家价格(元) 本公司价格(元) 销售周期 8 综合实例:牙膏的销售量 基本模型 y ~公司牙膏销售量 x1~其它厂家与本公司价格差 x2~公司广告费用 x2 y x1 y x1, x2~解释变量(回归变量, 自变量) y~被解释变量(因变量) ?0, ?1 , ?2 , ?3 ~回归系数 ?~随机误差(均值为零的正态分布随机变量) MATLAB 统计工具箱 模型求解 [b,bint,r,rint,stats]=regress(y,x,alpha) 输入 x=n?4数据矩阵, 第1列为全1向量 alpha(置信水平,0.05) b~?的估计值 bint~b的置信区间 r ~残差向量y-xb rint~r的置信区间 y~n维数据向量 输出 由数据 y,x1,x2估计? 结果分析 y的90.54%可由模型确定 参数 参数估计值 置信区间 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.0000 ?0 ?1 ?2 ?3 F远超过F检验的临界值 p远小于?=0.05 ?2的置信区间包含零点(右端点距零点很近) x2对因变量y 的影响不太显著 x22项显著 可将x2保留在模型中 模型从整体上看成立 销售量预测 价格差x1=其它厂家价格x3-本公司价格x4 估计x3 调整x4 控制价格差x1=0.2元,投入广告费x2=650万元 销售量预测区间为 [7.8230,8.7636](置信度95%) 上限用作库存管理的目标值 下限用来把握公司的现金流 若估计x3=3.9,设定x4=3.7,则可以95%的把握知道销售额在 7.8320?3.7? 29(百万元)以上 控制x1 通过x1, x2预测y (百万支) 模型改进 x1和x2对y的影响独立 参数 参数估计值 置信区间 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.0000 ?0 ?1 ?2 ?3 参数 参数估计值 置信区间 29.1133 [13.7013 44.5252] 11.1342 [1.9778 20.2906 ] -7.6080 [-12.6932 -2.5228 ] 0.6712 [0.2538 1.0887 ] -1.4777 [-2.8518 -0.1037 ] R2=0.9209 F=72.7771 p=0.0000 ?3 ?0 ?1 ?2 ?4 x1和x2对y的影响有交互作用 两模型销售量预测比较 (百万支) 区间 [7.8230,8.7636] 区间 [7.8953,8.7592] (百万支) 控制价格差x1=0.2元,投入广告费x2=6.5百万元 预测区间长度更短 略有增加 x2=6.5 x1=0.2 x1 x1 x2 x2 两模型 与x1,x2关系的比较 交互作用影响的讨论 价格差 x1=0.1 价格差 x1=0.3 加大广告投入使销售量增加 ( x2大于6百万元) 价格差较小时增加的速率更大 x2 价格优势会使销售量增加 价格差较小时更需要靠广告来吸引顾客的眼球