资源描述
GM(1,1)及其改进模型
1. 引言
灰色系统分析是我国学者邓聚龙教授于20世纪80年代前期提出的用于控制和预测的新理论、新技术[1]。由于它在建模、预测、控制等方面的独到之处,已在各个方面得到了广泛应用。郝永红、邵珠艳、李如雪分别利用灰色模型分析了中国、山东济宁和山东聊城的人口状况[6]~[8]。
一个地区的总人口与很多因素有关,不是用几个指标所能表达清楚的。而且,这些因素之间的结构关系难以准确描述,其中有些因素甚至是不明确的。灰色系统理论把这样受众多因素影响,而又无法确定其复杂关系的量,称为灰色量[1]。对灰色量进行预测,不必考虑数据不准,关系不清、变化不明的因素和变量,而是从自身的时间序列出发,发现和认识内在规律,并进行预测。
2. 常规的GM(1,1)模型
灰色单数列预测,与数理统计学中的时间序列预测,有本质的不同。时间序列预测是利用时间序列的几何特征和统计规律进行预测。是一种历史的和静态的研究。而灰色数列预测是一种现实的和动态的分析与预测。这是由于灰色动态模型不是利用时间序数据直接建模,而是将序列数据作一次累加生成后,再建立微分方程。
下面通过对灰色动态模型GM(1,1)[1] 进行分析与讨论,来说明这个特征。
时间序列有n个观察值,,通过累加生
成新序列, (2.1)
GM(1,1)是一个包含单变量的一阶微分方程构成的动态模型:
(2.2)
其中是的紧邻均值生成序列,即
, (2.3)
式(2.2)的白化方程为:
其中:称为发展系数;称为内生控制灰数。
的有效区间是,应用最小二乘法求解可得:
其中:
,
将代入微分方程式,解出时间函数为:
(2.4)
3. 等维灰数递补动态预测模型
通常,GM(1,1)模型通过对数列维数的不同取舍,可得到一系列预测结果,而组成一个预测灰区间供决策选用。但如果GM(1,1)模型预测所得灰区间过大,那么就很难得到较为满意的结果。这是因为GM(1,1)模型预测灰平面成喇叭型展开,预测时刻越远预测的灰区间越大。因此,用已知序列建GM(1,1)模型进行预测时,建议不用这个模型一直预测下去,而是只预测一个值,然后将这个灰数补充在已知数列之后,同时为不增加序列长度,去掉第一个已知数据,以保持数据列的等维,提高模型精度。
即将时间序列的值,替换为
再建立GM(1,1)模型,这样新陈代谢[4],逐个预测依次递补,不断补充新的信息,使灰度逐步减低,直到完成预测目的或达到一定的精度要求为止。这种方法称为“等维灰数递补动态预测”[2]~[4]。
这种改进的模型及时补充和利用了新的信息,提高了灰区间的白化度。显然,用改进后的新模型去预测下一值,比原模型进行预测要更合理,且更接近实际。
当然,动态模型每预测一步模型参数做一次修正,因而预测值都产生在动态之中。随着递补次数的增加灰度也在增大,信息量会越来越少,因此,递补预测也不应是无止境的。
4. 基于灰色理论与BP算法的人口预测模型
4.1 BP神经网络的引入
人工神经网络(Artificial Neural Networks,简称为ANN)是近年来发展起来的模拟人脑生物过程的人工智能技术。它由大量简单的神经元广泛互连形成的复杂的非线性系统,它不需要任何先验公式,就能从已有数据中自动地归纳规则,获得这些数据的内在规律,具有很强的非线性映射能力,特别适合于因果关系复杂的非确定性推理、判断、识别和分类等问题。对于任意一组随机的、正态的数据,都可以利用人工神经网络算法进行统计分析,做出拟合和预测。
基于误差反向传播(Back propagation)算法的多层前馈网络(Multiple—layer feedforward network,简记为BP网络),是目前应用最成功和广泛的人工神经网络[9]。下面我们就基于BP人工神经理论来建模。
4.2 神经网络的拓扑结构和理论建模
神经网络的拓扑结构是指神经元之间的互连结构。图1是一个三层的BP网络结构。BP网络由输入层、输出层以及一个或多个隐层节点互连而成的一种多层网,这种结构使多层前馈网络可在输入和输出间建立合适的线性或非线性关系,又不致使网络输出限制在-1和1之间。
图 1 一个三层BP网络结构
BP算法通过“训练”这一事件来得到这种输入、输出间合适的线性或非线性关系。“训练”的过程可以分为向前传输和向后传输两个阶段[10]~[11]:
⑴ 向前传输阶段:
①从样本集中取一个样本,将输入网络;
②计算出误差测度和实际输出;
③对权重值各做一次调整,重复这个循环,直到。
⑵ 向后传播阶段——误差传播阶段:
① 计算实际输出与理想输出的差;
②用输出层的误差调整输出层权矩阵;
③ ;
④用此误差估计输出层的直接前导层的误差,再用输出层前导层误差估计更前一层的误差。如此获得所有其他各层的误差估计;
⑤并用这些估计实现对权矩阵的修改。形成将输出端表现出的误差沿着与输出信号相反的方向逐级向输出端传递的过程。
网络关于整个样本集的误差测度:
4.3 灰色神经网络组合预测模型
灰色算法与神经网络有多种组合方式,本文采用的方法是在对原始序列建立GM(1,1)模型后,得到一系列预测值,这些预测值与原始值之间一定存在偏差,因此这些预测值与实际值之间的偏差关系,再综合到神经网络模型中考虑,将预测值作为神经网络的输入样本,以实际值作为输出样本,然后再对网络进行训练,就可以得到相应结点的权值,阀值,进而将GM(1,1)模型对下一个或多个预测值作为神经网络输入,得到的输出即为最终预测值。
下面使用该种组合模型对我国人口指标(以人口数为例)进行预测[12]。
具体步骤如下:
1.选取1994—1998年全国总人口数作为原始数据,得到5个的数据序列。
2.取相应的GM(1,1)预测值得到另外5个的数据序列。
3.将预测值作为神经网络的输入样本,实际值作为神经网络输出样本对网络的初始权值、阀值及网络结构进行设定。
4.对网络进行训练,得到每个节点的权值与阀值。
5.将1999年以后年份的GM(1,1)预测值作为网络的输入,仿真后得到相应的输出,即为1999年以后全国总人口数的最终预测结果。
5. 模型的计算
5.1 GM(1,1)模型的求解
本文选取我国1994—2005年间原始数据进行分析,其原始数据序列如表5.1.1所示:
表5.1.1 1994-2005年我国人口总数数据表
年份(年)
人数(万)
年份(年)
人数(万)
年份(年)
人数(万)
1994
119850
1998
124761
2002
128453
1995
121121
1999
125786
2003
129227
1996
122389
2000
126743
2004
129988
1997
123626
2001
127627
2005
130756
为了筛选适当维数的预测模型,考虑到灰色建模数据一般都不少于5维,通常情况下,长序列预测的误差大于短序列,并且预测的时间越远,误差越大,而预测时间越近,误差就越小。据许多文献可知[1]~[4],5维或者6维灰色预测模型的精度较高。模型拟和值与实际值最为接近。在考虑到中长期预测的实际情况下,故而选用5维模型为最优预测模型。
现取1994—1998年全国总人口数分别为11.9850亿,12.1121亿,12.2389亿,12.3626亿,12.4810亿。依据GM(1,1)模型,可以预测模型为:
还原值:
用此模型预测1999-2016年的全国总人口数,利用matlab编程求解,得到其结果见表6.2 ,且模拟精度比较如表6.3所示。
表5.1.2 1999-2016年全国总人口数预测值
年份(年)
人数(亿)
年份(年)
人数(亿)
年份(年)
人数(亿)
1999
12.6092
2005
13.3891
2011
14.2173
2000
12.7259
2006
13.5237
2012
14.3602
2001
12.8640
2007
13.6597
2013
14.5046
2002
12.9933
2008
13.7970
2014
14.6504
2003
13.1239
2009
13.9357
2015
14.7977
2004
13.2559
2010
14.0758
2016
14.8460
5.2 等维灰数递补动态预测模型求解
利用matlab求解模型可得出1999-2025年的人口数预测值见下表:
表5.2.1 1999-2025年的人口数预测值
年份(年)
人口总数(亿)
年份(年)
人口总数(亿)
年份(年)
人口总数(亿)
1999
12.6092
2008
13.7959
2017
15.0941
2000
12.7358
2009
13.9344
2018
15.2457
2001
12.8638
2010
14.0744
2019
15.3988
2002
12.993
2011
14.2157
2020
15.5535
2003
13.1235
2012
14.3585
2021
15.7097
2004
13.2553
2013
14.5027
2022
15.8674
2005
13.3884
2014
14.6484
2023
16.0268
2006
13.5229
2015
14.7955
2024
16.1877
2007
13.6587
2016
14.9441
2025
16.3503
5.3 基于灰色理论与BP算法的人口预测模型求解
将5.1.1中灰色模型得到的数据代入神经网络模型中,利用matlab工具箱求解可得以下预测值:
表5.3.1 2001-2030年的总人口数预测值
年份(年)
人口数(亿)
年份(年)
人口数(亿)
年份(年)
人口数(亿)
2001
12.76
2011
13.7
2021
14.42
2002
12.83
2012
13.79
2022
14.46
2003
12.91
2013
13.89
2023
14.49
2004
13
2014
13.98
2024
14.52
2005
13.09
2015
14.06
2025
14.54
2006
13.18
2016
14.14
2026
14.56
2007
13.29
2017
14.21
2027
14.57
2008
13.39
2018
14.27
2028
14.59
2009
13.49
2019
14.32
2029
14.6
2010
13.6
2020
14.37
2030
14.6
6. 模型的检验
6.1模型检测指标
为了客观评价该预测模型,从以下几个检验指标来进行检验:
(1) 残差检验
计算原始序列与预测序列的绝对误差及相对误差
(6.1.1)
(6.1.2)
(2) 关联度检验
计算出预测序列与原始序列的关联系数公式为:
, (6.1.3)
式中为分辨率,,取。
由于关联系数的信息较为分散,不便于比较,为此,综合各个时刻的关联系数,得到关联度。通常取时,便可以认为关联度满意,
(3) 后验差检验
计算原始序列均值及均方差:
,
(6.1.4)
(4) 计算残差均值及均方差
,
(6.1.5)
(5) 计算方差比及小误差概率:
(6.1.7)
(6) 确定模型级别,方法如表6.1.1所示:
表6.1.1 模型级别判别表
等 级
取 值
好
良
合格
不及格
6.2模型检验结果
表6.2.1 数据对比
2001年
2002年
2003年
2004年
2005年
实际数据
127627
128453
129227
129988
130756
简单灰色
128640
129933
131239
132559
133891
灰色递补
128638
129930
131235
132553
133884
bp+灰色组合
127600
128300
129100
130000
130900
表6.2.2 数据综合误差分析
绝对误差
简单灰色
1013
1480
2012
2571
3135
灰色递补
1011
1477
2008
2565
3128
bp+灰色组合
27
153
127
12
144
相对误差
简单灰色
0.007937
0.011522
0.01557
0.019779
0.023976
灰色递补
0.007922
0.011498
0.015539
0.019733
0.023922
bp+灰色组合
0.000212
0.001191
0.000983
9.23E-05
0.001101
关联系数
简单灰色
1
0.84676
0.720911
0.623535
0.548751
灰色递补
1
0.846761
0.720885
0.623638
0.548806
bp+灰色组合
0.855072
0.385621
0.434889
1
0.401361
表6.2.3 后验差检验
项目
x原始平均
s1
s2
row平均
C
P
模型等级
简单灰色
129210.2
1232.34
844.108
2042.2
0.6345
79.34%
及格
灰色递补
842.048
2037.8
0.5264
83.33%
及格
bp+灰色组合
67.5892
92.6
0.054846
99%
优秀
从上表可以看出,尽管数据序列波动较为明显,但GM(1,1)模型取得的模拟精度基本能够满足1级要求,优化的等维灰数递补动态预测模型较传统的GM(1,1)模型在模拟精度上有所改善。于是应用等维灰数递补动态预测模型可以对全国中期人口总数做中短期预测。
而基于灰色理论与BP算法的人口预测模型又要优于等维灰数递补动态预测模型,他们的模型等级分别为优秀和及格。因此应用基于灰色理论与BP算法的人口预测模型可对全国中长期人口总数进行中期预测。
7. 总结
本文中,分别运用了GM(1,1)灰色模型、等维灰数递补动态预测模型求解、基于灰色预测和神经网络的人口预测模型对人口增长进行了预测。
(1) 等维灰数递补动态预测模型相比于一般GM(1,1)模型相比,可以及时补充和利用新的信息,提高了灰区间的白化度。用改进后的新模型再去预测下一值,比用原模型进行预测要合理,且更接近实际。
(2) 基于灰色预测和神经网络的人口预测,充分利用了灰色预测模型所需信息少、方法简单的优点和神经网络较强的非线性映射能力的特性,提高了预测的精度。通过对全国总人口的试验预测,结果表明:基于灰色预测和神经网络的人口预测模型比GM(1,1)模型具有更高的预测精度,其预测效果优于其任一单一预测模型。
8
展开阅读全文