当前位置:文档之家› 线性回归和灰色预测模型案例

线性回归和灰色预测模型案例

预测未来2015年到2020年的货运量灰色预测模型是通过少量的、不完全的信息,建立数学模型并做出预测的一种预测方法.当我们应用运筹学的思想方法解决实际问题,制定发展战略和政策、进行重大问题的决策时,都必须对未来进行科学的预测. 预测是根据客观事物的过去和现在的发展规律,借助于科学的方法对其未来的发展趋势和状况进行描述和分析,并形成科学的假设和判断.灰色系统的定义灰色系统是黑箱概念的一种推广。

我们把既含有已知信息又含有未知信息的系统称为灰色系统.作为两个极端,我们将称信息完全未确定的系统为黑色系统;称信息完全确定的系统为白色系统.区别白色系统与黑色系统的重要标志是系统各因素之间是否具有确定的关系。

建模原理模型的求解原始序列为:)16909 15781 13902 12987 12495 11067 101499926 9329 10923 7691())6(),...1(()0()0()0(==x x x构造累加生成序列)131159,114250,98469,84567,71580,59085,48018,37869,27943,18614,7691())6(),...1(()1()1()1(==x x x归纳上面的式子可写为称此式所表示的数据列为原始数据列的一次累加生成,简称为一次累加生成.对(1)X 作紧邻均值生成,....2))1()((21)()1()1()1(=-+=k k z k z k zMATLAB 代码如下:x=[7691 18614 27943 37869 48018 590857 71580 84567 98469 114250 131159]; z(1)=x(1); for i=2:6z(i)=0.5*(x(i)+x(i-1)); endformat long g z z =Columns 1 through 37691 13152.5 23278.5Columns 4 through 632906 42943.5319437.5Columns 7 through 9331218.5 78073.5 91518Columns 10 through 11106359.5 122704.5 因此)53551.5 42943.5 3290623278.5 13152.5 ())5(),...1(()1()1()1(==z z z构造B 矩阵和Y 矩阵;对参数ˆα进行最小二乘估计,采用matlab 编程完成解答如下:B=[[ -13152.5 -23278.5 -32906 -42943.5 -319437.5 -331218.5 -78073.5 -91518 -106359.5 -122704.5]',ones(10,1)];Y=[18614 27943 37869 48018 59085 71580 84567 98469 114250 131159]'; format long g a=inv(B'*B)*B'*Y结果如下:a =-0.0850401176809297 59277.2079622774即∂=-0.085,u=59277 ∂u= -697376.471 则GM(1,1)白化方程为59277x 085.0)1(=-dtdx 预测模型为:697376.471-471.705067)1(ˆk *0.085)1(e k x =+再次通过线性回归模型对货运量进行预测:线性回归预测模型:一、定义一元线性回归预测是处理因变量y 与自变量x 之间线性关系的回归预测法.二、模型的建立:1,设年份y, 货运量x y 随x 的变化函数,建立一元线性回归方程:Y=β0 + β1x其中β0、β1称为回归系数。

散点图如下:首先根据x 、y 的现有统计数据,在直角坐标系中作散点图,观察y 随x 而变是否为近似的线性关系。

若是,则求出的β0、β1值,就可确定其数学模型,然后由x 的未来变化去求相应的y 值。

,2,确定方法—最小二乘法使拟合的数值与实际值的总方差为最小,即拟合程度最好,则得两者之差e i根据极值原理,式(7.4.6)对a 、b 分别求偏导,并令其=0,得)()(()()222iiiiQ i i a a a b a aa b a bx y y x y x ∂∂=∂∂∂=---∂=-----∑∑∑三,模型的求解:运用MATLAB 软件对数据进行一元线性回归分析:代码如下:x=[1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 ]'; x=[ones(11,1) x];y=[7691 10923 9329 9926 10149 11067 12495 12987 13902 15781 16909]'; plot(x,y, '+');[b,bint,r,rint,stats]=regress(y,x)b,bint ,stats ,rcoplot(r,rint);()()()()()()()()222i i i i i i i Q y b x x y i b b y b x b x b y b x xy x x y x x ∂∂⎡⎤=---∑⎣⎦∂∂∂⎡⎤⎡⎤=-----⎣⎦⎣⎦∂⎡⎤=-----⎣⎦∑∑()()()()()()2002(7.4.8)i i i i xy xxx x y y b x x ix x y y b x xiS S =---=---==-∑∑∑∑令其,即所以结果:b =1.0e+006 *-1.57960.0008bint =1.0e+006 *-2.0027 -1.15650.0006 0.0010stats =1.0e+005 *0.0000 0.0007 0.0000 9.6571(注:1.0e+006 *为1*10^6 后同理)因为,p<0.05,所以可知回归方程为y=-1579600 + 800x 先观察观察模型残差:如图所示,应该剔除第2组数据。

MATLAB代码为:x=[1991 1993 1994 1995 1996 1997 1998 1999 2000 2001 ]';x=[ones(10,1) x];y=[7691 9329 9926 10149 11067 12495 12987 13902 15781 16909]'; plot(x,y, '+');[b,bint,r,rint,stats]=regress(y,x)b,bint ,stats ,rcoplot(r,rint);结果为:b =1.0e+006 *-1.78790.0009bint =1.0e+006 *-2.0512 -1.52460.0008 0.0010stats =1.0e+005 *0.0000 0.0025 0.0000 3.0216(其中:1.0e+006 *为1*10^6)同理1.0e+005 * 为1*10^5剔除之后结果如下:将异常数据去除后,再次对去除异常点的数据进行最小二乘法拟合一个多元回归模型,残差图如下:因为,p<0.05, 无异常数据可剔除因此,可知最终回归方程为y=-1787900 + 900x,对ployfit拟合的函数进行评价与估计。

运用polyconf函数对多项式评价和置信区间估计,matlab代码如下:x=[1991 1993 1994 1995 1996 1997 1998 1999 2000 2001 ];y=[7691 9329 9926 10149 11067 12495 12987 13902 15781 16909];[p,S]=polyfit(x,y,1)结果为:p =1.0e+006 *0.0009 -1.7879S =R: [2x2 double]df: 8normr: 1.5547e+003对2015年的货运量预测,即y=polyconf(p,2015)y =2.8793e+004DELTA =2.7899e+003(其中)所以预测区间为:[(2.8793e+004)-(2.7899e+003), (2.8793e+004)+(2.7899e+003)] 即,2015年的货运量在(26003.1 31582.9)之间。

同理对2016年的货运量预测,即y =2.9695e+004DELTA =2.9065e+003所以预测区间为:[(2.9695e+004)-(2.9065e+003), (2.9695e+004)+(2.9065e+003)] 即,2016年的货运量在(26788.5 32601.5)之间。

对2017年的货运量预测,即y =3.0596e+004DELTA =3.0244e+003所以预测区间为:[(3.0596e+004)- (3.0244e+003), (3.0596e+004)+(3.0244e+003)] 即,2017年的货运量在(27571.6 33620.4)之间。

对2018年的货运量预测,即y =3.1498e+004DELTA =3.1433e+003所以预测区间为:[(3.1498e+004)- (3.1433e+003), (3.1498e+004)+(3.1433e+003)]即,2018年的货运量在(28354.7 34641.3)之间。

对2019年的货运量预测,即y =3.2399e+004DELTA =3.2633e+003所以预测区间为:[(3.2399e+004)-(3.2633e+003), (3.2399e+004)+ (3.2633e+003)] 即,2019年的货运量在(29135.7 35662.3)之间。

对2020年的货运量预测,即y =3.3301e+004DELTA =3.3842e+003所以预测区间为:[(3.3301e+004)-(3.3842e+003), (3.3301e+004)+(3.3842e+003)] 即,2020年的货运量在(29916.8 36685.2)之间。

附:MATLAB代码:1,x=[1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 ]';x=[ones(11,1) x];y=[7691 10923 9329 9926 10149 11067 12495 12987 13902 15781 16909]';plot(x,y, '+');[b,bint,r,rint,stats]=regress(y,x)b,bint ,stats ,rcoplot(r,rint);2,x=[1991 1993 1994 1995 1996 1997 1998 1999 2000 2001 ]';x=[ones(10,1) x];y=[7691 9329 9926 10149 11067 12495 12987 13902 15781 16909]';plot(x,y, '+');[b,bint,r,rint,stats]=regress(y,x)b,bint ,stats ,rcoplot(r,rint);3,x=[1991 1993 1994 1995 1996 1997 1998 1999 2000 2001 ];y=[7691 9329 9926 10149 11067 12495 12987 13902 15781 16909];[p,S]=polyfit(x,y,1)y=polyconf(p,2015)。

相关主题