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