张 鹏,李颖男
(太原工业学院 理学系,山西 太原 030008)
GM(1,1)模型是一个连续性的微分方程,它主要根据灰导数、关联度等数学思想建立起来的,是数量经济模型的一个子结构[1].其优点在于不需要依靠大量的样本数据,也不需要利用统计学的思想去挖掘信息规律.灰色预测模型更多的是依靠累加生成对原始数据序列进行变换,并从累加生成序列中挖掘数据潜藏的规律.
GM(1,1)模型作为灰色预测模型的核心与基础,被广泛地应用于社会各领域,尤其是在“小样本,贫信息,数据不完全掌握”的情况下,该模型取得了优异的预测成果[2].但该模型并非在任何情形下都能得到有效的预测成果,有时该模型的预测结果与实际情况存在较大的差距,甚至还会出现背道而驰的情况.
本文首先简要介绍了传统GM(1,1)模型,并对该模型的定义和性质进行了分析研究.接下来,从模型的定义出发,发现对该模型的优化要先从提高原始数据序列的光滑度入手,而通过对比研究可得,调和变权缓冲算子可以实现作用强度的微调,具有良好的调节性,因此,本文将引进调和变权缓冲算子,使其作用于原始数据序列.
原始数据序列得到优化后,将对GM(1,1)模型的背景值和时间响应函数进行优化,通过白化响应式解出参数的值,将得到新的背景值与时间响应函数的表达式.由此,该模型得到了优化.
设原始非负数据序列为:
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(0)的1-AGO序列.
GM(1,1)的灰色微分方程[3]为
x(0)(k)+az(1)(k)=b
(1)
其中x(0)(k)为灰导数,a为发展系数,z(1)(k)为白化背景值,且:
由(1)式得
通过最小二乘法得[ab]T=(BTB)-1BTY.
GM(1,1)的白化微分方程[4]为
(2)
对GM(1,1)模型的优化要先从提高原始数据序列的光滑度开始,在原始数据序列中引进调和变权缓冲算子[5].
设X=(x(1),x(2),...,x(n)),其中x(k)>0,k=1,2,...,n.
记XD=(x(k)d),x(k)d=(λ(x(n))-1+(1-λ)(x(k))-1)-1,λ为可变权重,0<λ<1,k=1,2,…,n.此时,无论X是单调递增序列还是单调衰减序列,或者振荡序列,D均为弱化缓冲算子.
数据序列X=(x(1),x(2),...,x(n))中由x(k)到x(n)的平均变化率为r(k);将缓冲算子D作用于数据序列X,得到XD=(x(1)d,x(2)d,...,x(n)d),定义缓冲算子D在k点的调节度为:
调节度反映了缓冲算子对数据序列的作用强度.不同的缓冲算子对数据序列的作用强度大小不同,因此,通过调节可变的权重能够调整缓冲算子的作用强度[6].
在实际应用中,权重的取值可以随着模拟精度的变化规律进行调节,也可以基于一定的误差最小化原则选择最优的权重.常见的最优衡量标准为误差平方和最小、平均相对误差最小,但由于权重的选取与预测误差之间并非线性关系,因此难以用确切的解析式表达出来[7].所以,可以在一定的误差准则下,在λ∈(0,1)内寻找最优值.在赋权时,可以将权重取为递增的等差数列或递增的等比数列,在确定好大概范围后,再精细确定权重的最优取值.
x(1)(t)=GeBt+C
令(x(1)(t))`=BGeBt,得
因此x(1)(t)在区间[k-1,k]上积分就可得到GM(1,1)的背景值为:
(3)
通过(3)式可知,只要得到B和C的值,则能得到背景值z(1)(k)的表达式.
由白化响应式[8]:
(4)
将B的代入方程(1)、(2)并相减得:
(5)
将(4)式和(5)式带入(a)式可得到C值为:
(6)
将B、C的值代入z(1)(k)中,得到重构的背景值为:
且,x(0)(k)≠x(0)(k-1),k=2,3,...,n.若x(0)(k)=x(0)(k-1),则此时的背景值与原GM(1,1)模型一致.
其中根据文献[9]可得:
通过上式可以得到GM(1,1)模型的时间响应函数为:
对优化后的结果进行还原:
太原市是国务院批复确定的中国中部地区重要的中心城市,是国家历史文化名城,是一座拥有2 500多年建城历史的古都,是“控带山河,距天下之肩背”,“襟四塞之要冲,控五原之都邑”的历史古城,它吸引了来自五湖四海的游客,使得太原市的旅游业蓬勃发展.太原2010—2019年的旅游人数见表1.
表1 2010—2019太原市旅游人数统计表
数据来源:根据《太原统计年鉴》[10]历年数据整理计算
由表1可得到太原市近十年来的旅游人数初始序列:
x(0)=(2 023.32,2 461.88,2 983.89,3 691.33,4 196.51,4 912.48,5 688.12,6 780.95,8 126.20,9 655.80)
对原始数列做累加后生成数列x(1):
x(1)=(2 033.32,4 485.20,7 469.09,11 160.42,15 356.93,20 269.41,25 957.53,32 738.48,40 864.68,50 520.48)
由此得到:
通过以上计算可得到传统的GM(1.1)模型为
该模型对2010—2019年太原市旅游人数的预测结果见表2.
表2 传统GM(1,1)模型的预测结果
由表1可计算出2010—2019年太原市旅游人数的增长速度,见表3.
表3 2010—2019年太原市旅游人数增长速度表
从表3中还可以得出2013年以后的增长速度明显低于2013年以前的增长速度,因此数据变化规律难以准确把握.若将本文构造的调和变权缓冲算子引进该原始序列,结果见表4.
表4 可变权重不同取值时的2013—2014年预测误差表
通过表4可以得到,随着λ的增大,预测的误差也越来越大,由此取λ=0.01最为合适.
由此,得到了一个新的原始序列:x1(0)=(2 023.32,2 513.72,2 969.20,3 714.27,4 220.37,4 936.73,5 711.59,6 801.20,8 139.09,9 655.80),利用新的原始序列建立传统的GM(1,1)模型,计算得到时间响应式为:
由该模型得到的预测值及预测误差参见表5.
表5 改进原始序列后的传统GM(1,1)模型预测结果
引进调和变权缓冲算子后计算得到的预测误差为1.282 5%.因此,引进调和缓冲算子可以很好地提高原始序列的光滑度,优化了GM(1,1)模型,提高了预测精度.下面对引进缓冲算子后的GM(1,1)模型进行背景值和时间响应函数的优化,以期得到更加精准的预测结果.通过公式(4)得到:
计算(BTB)-1BTyn得到:
因而得到:
a=-0.165 88,b=2 001.674 9
利用以上计算结果,通过公式(6)计算得到:
进而得到优化后的GM(1,1)模型的时间响应函数为:
将优化后的GM(1,1)模型应用到实际预测中,通过计算得到预测值及预测误差,并将结果见表6.
表6 优化后的GM(1,1)模型预测结果
从表6可知采用优化后的GM(1,1)模型预测得到的平均相对误差为0.969 6%,相比于未优化的GM(1,1)预测得到的平均相对误差1.414 4%,预测精度明显得到了提高,因此对GM(1,1)模型的优化具有实际意义,而优化后的GM(1,1)模型也更适于解决现实中原始数据序列变化平缓的问题.
1) GM(1,1)模型是一种对“贫信息,小样本”适用的解决方法,其对一些已经知道的信息进行生成、开发和提取,从看似无规律的数据中找寻潜藏的规律,使其具有独特的研究手段,从而被广泛地应用于实际问题的解决.
2) 在对模型的优化过程中,本文首先从提高原始序列的光滑度开始入手,引进了调和变权缓冲算子,使其作用于原始序列,从而很好地提高了原始序列的光滑度,有利于后续的建模过程.
3) 在对原始序列引进缓冲算子作用后,本文又对传统GM(1,1)模型的背景值进行了指数函数的拟合,使模型本身固有的问题得到了优化,接着对时间响应函数进行了改造,使其更加贴合实际,非常有效地提高了预测的精度.
4) 最后,将优化后的GM(1,1)模型应用于太原市旅游人数的预测研究中,并用现实问题验证了优化后的GM(1,1)模型更具有实用性和精确性,同时也为该领域的预测研究提供了一种新的解决方法.