数据预测类问题大部分情况是基于已有历史数据的基础上的,通过历史数据推断其固有的规律.这样的估计方法需要有大量的历史数据支持.当只有少量数据时,内部数据规律不能很好地反映出来.这样的预测会带来较大的误差.基于以上缺陷,针对小数据预测估计题目,有专家学者提出了一种灰色预测方法,对小数据问题进行预测.
灰色预测法是一种对含有不确定因素的系统进行预测的方法.灰色系统是介于白色系统和黑色系统之间的一种系统.灰色系统内的一部分信息是已知的,另一部分信息是未知的,系统内各因素间具有不确定的关系.灰色预测通过鉴别系统因素之间发展趋势的相异程度,即进行关联分析,并对原始数据进行生成处理来寻找系统变动的规律,生成有较强规律性的数据序列,然后建立相应的微分方程模型,从而预测事物未来发展趋势的状况.其用等时距观测到的反映预测对象特征的一系列数量值构造灰色预测模型,预测未来某一时刻的特征量,或达到某一特征量的时间.
灰色预测模型可以分为三类:灰色时间序列预测,即用观察到的反映预测对象特征的时间序列来构造灰色预测模型,预测未来某一时刻的特征量,或达到某一特征量的时间.畸变预测,即通过灰色模型预测异常值出现的时刻,预测异常值什么时候出现在特定时区内.系统预测,即通过对系统行为特征指标建立一组相互关联的灰色预测模型,预测系统中众多变量间的相互协调关系的变化.
为了弱化原始时间序列的随机性,在建立灰色预测模型之前,需先对原始时间序列进行数据处理,经过数据处理后的时间序列即称为生成列.灰色系统常用的数据处理方式有累加和累减两种.
累加生成数指一次累加生成,记原始序列为X(0)={x(0)(1),x(0)(2),…,x(0)(n)},一次累加生成序列为:X(1)={x(1)(1),x(1)(2),…,x(1)(n)}.
累减生成数是指累加生成的逆运算.
记原始序列为:X(1)={x(1)(1),x(1)(2),…,x(1)(n)}.一次累减生成序列为:X(0)={x(0)(1),x(0)(2),…,x(0)(n)}.其中x(0)(k)=x(1)(k)-x(1)(k-1).规定x1(0)=0.
x (0)(k)+az(1)(k)=b
记=(a,b)T,则灰微分方程的最小二乘估计参数列满足下式:
2.GM(1,1)灰微分方程x(0)(k)+az(1)(k)=b 的时间响应序列为:
3.取x(1)(0)=x(0)(1),则有:
4.将值还原得到:
GM(1,1)模型的检验分为三个部分:残差检验、关联度检验以及后验差检验.
3.后验差检验:
查后验差检验判别参照表3-18,可以判断模型的精度.
表3-18 后验差检验判别参照表
例3-14 房地产价格体系评估问题
改革开放以来,我国的房地产业取得了巨大的成就.虽然国内房地产业还处于发展的初期阶段,但是房地产业在国民经济的地位和作用却越来越重要,它已成为促进国内经济发展的新经济增长点,几年来有关房地产业方面的研究也成为热点之一.房价始终是我国房地产市场最为尖锐的问题.调查显示:1992—2004年的13年间,全国城市住房平均售价上涨了近10倍,部分城市上涨幅度还要比这个数据大得多,远远超过我国国民收入水平的涨幅.国家发展和改革委员会、国家统计局最新发布的调查报告显示:2004年一季度35个大中城市就有9个城市房价涨幅超过10个百分点,另外有7个城市土地交易价格涨幅超过10个百分点.
杭州、宁波、上海是中国沿海发展的重点城市,这三个城市的房地产价格也呈现一定程度的上升趋势.近几年这三个城市的房地产价格指数如表3-19所示(当年指数以去年为100计算):
表3-19 城市房地产价格指数
根据表3-19中2000—2006年宁波、杭州和上海三市的房地产价格指数的变化状况,建立数学模型对2008—2010年这三个城市的房地产价格指数的变化趋势进行预测.
【解题思路】
对灰色系统进行预测,需要执行以下步骤:
1.数据生成处理:将原始数据,即历年的房地产价格指数作某种数学处理.在灰色系统建模理论中,可以采用累加生成的方法,所谓累加生成就是将原始数据按时间序列依次累加.
2.构造数据矩阵B和数据向量Y,根据灰色理论该数据矩阵B如下所示:
4.预测模型的建立:根据灰色理论,预测模型的一般形式为微分方程,即:
计算在2008—2010年三年的房地产价格指数预测原始数据如表3-20所示.
表3-20 2008—2010年房地产价格指数数据表
灰色预测模型的Matlab源程序如下所示:
1.首先需要通过Matlab新建一M文件,命名为GM11,其内容如下:
function[X,c,error1,error2]=GM11(X0,k)
format long;
n=length(X0);
X1=[];
X1(1)=X0(1);
for i=2∶n
X1(i)=X1(i-1)+X0(i);
end
for i=1∶n-1
B(i,1)=-0.5*(X1(i)+X1(i+1));
B(i,2)=1;
Y(i)=X0(i+1);
end
alpha=(B′*B)^(-1)*B′*Y′;
a=alpha(1,1);
b=alpha(2,1);
d=b/a;
c=X1(1)-d;
X2(1)=X0(1);
X(1)=X0(1);
for i=1∶n-1
X2(i+1)=c*exp(-a*i)+d;
X(i+1)=X2(i+1)-X2(i);
end
for i=(n+1):(n+k)
X2(i)=c*exp(-a*(i-1))+d;
X(i)=X2(i)-X2(i-1);
end
for i=1∶n
error(i)=X(i)-X0(i);
error1(i)=abs(error(i));
error2(i)=error1(i)/X0(i);
end
c=std(error1)/std(X0);
2.然后在Command Window窗口中键入命令进行预测,其内容如下:
k=3;
X0=[98.6 104.4 107.3 120.1 115.9 109.7 98.7];
[X,c,error1,error2]=GM11(X0,k)
【思考题】
现已知该河流的干流及三条支流从1977—2006年30年间每月的流量数据,请根据这些数据预测2007年干流及三条支流每月的流量.其中一条支流的流量如图3-21所示.
图3-21 360个月支流流量图
针对数学建模竞赛中的预测类问题,本章先后介绍了多项式拟合、非多项式拟合、Leslie矩阵预测、灰色预测四种基本预测方法.其中多项式拟合可以解决大部分的预测问题,也是大部分参赛队可能采用的方式.但是多项式拟合能够预测的类型是有限的,因此本章介绍了两类最主要的非多项式拟合方式Malthus拟合和Logistic拟合.如果问题给数据比较充分,则预测可以做得更加详细.本章还介绍了Leslie矩阵方法,该方法可以做长期的种群数量预测,也可以做年龄结构的分析.最后本章介绍了适合少量数据的灰色预测模型.各种预测模型都有各自的特点,一道数学建模题也可以采用不同的数学模型,关键在于降低预测误差.本章所介绍的模型也是有限的,另外时间序列也可以做数据预测,相关内容会在后续章节中介绍.
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。