《武汉工程大学学报》  2025年06期 647-652   出版日期:2025-12-31   ISSN:1674-2869   CN:42-1779/TQ
一种灰色残差修正模型的算法设计



灰色系统理论是研究“部分信息已知与部分信息未知”不确定性系统的方法论,其核心思想是通过已知信息的生成和开发,提取有价值的信息,从而实现对系统运行规律的有效认识和控制。灰色预测模型GM(1,1)作为灰色系统理论的核心模型之一,具有样本需求少、模型表达简洁、适合短期预测等特点,广泛应用于经济、管理及工程技术领域[1]。
然而,传统GM(1,1)模型存在一定的局限性,并非适用于所有类型的数据。近年来,许多学者提出了相应的改进,主要分为函数变换方法、灰色预测算法优化和人工神经网络调整。
(1)函数变换方法:通过提高序列的光滑度,降低原始数据的级比,使级比落入允许区间,从而达到提高建模精度的目的。文献[2-4]改进了单调序列的光滑性,以提高模型的精度;文献[5-6]从序列的凹凸性和压缩变换的角度进行函数变换,进一步提高模型的精度;文献[7]使用缓冲算子降低原始数据序列的波动性,提高模型的建模精度。然而,这些方法生成的新序列在建模后需要还原,且还原后的精度往往会下降,效果并不理想[8]。
(2)灰色预测算法优化:根据原始数据的特点对灰色预测的算法进行优化。文献[9-11]通过优化背景值和改进初始条件的方法提高模型精度。文献[12-13]认为用平均值代替背景值存在误差,提出优化背景值,通过构造公式以获取最优背景值。但这一方法要考虑迭代公式的收敛性,若迭代公式不收敛,则无法求得最优背景值。文献[13-15]提出改进原始数据的第一个数据点,但由于传统GM(1,1)模型必须经过原始数据中的第一个数据点,此改进并不合理。
(3)人工神经网络调整:采用人工神经网络对GM(1,1)模型的残差进行建模预测。文献[16-18]在使用GM(1,1)模型进行原始数据预测后,利用人工神经网络对预测的残差进行建模。然而,基于人工神经网络的特性,该方法需要大量样本的持续修正与训练,才能获得理想的精度。
综上所述,尽管函数变换方法、灰色预测算法优化等对GM(1,1)模型有所改进,但其最终效果有限。人工神经网络方法也存在一定的局限性。
文献[19-20]提出利用傅里叶级数对均值模型的残差和原始数据进行预测,建立傅里叶残差修正灰色预测模型FGM(1,1),并成功应用于解决实际问题,取得了较好的预测效果。
本文通过分析GM(1,1)模型产生误差的原因,从残差的角度研究模型的预测精度,提出了灰色残差修正模型REGM(1,1)。该模型首先构建残差累加序列,接着利用GM(1,1)模型的响应函数值,得到残差修正序列,对GM(1,1)模型的预测数据进行修正,最终获得REGM(1,1)模型的预测结果。实验表明,REGM(1,1)模型不仅能显著提升对数据长期趋势的预测精度,还可有效捕捉序列中的突变特征。研究成果为能源生产预测、工业系统运行优化以及经济指标监测等场景提供了高适应性的预测工具,尤其适用于具有非线性特征的时间序列建模需求。
1 GM(1,1)模型原理及计算过程
GM(1,1)模型使用原始离散非负数据序列,通过一次累加使原始数据序列满足准光滑性和准指数规律,用白化微分方程得到GM(1,1)模型的响应函数式,经过累减生成原始数据的近似估计值,即GM(1,1)模型预测数据。建模过程如下:
①生成累加序列[X1]。
设原始数据序列为[X0={x0(1),x0(2),?,]
[x0(n)}],[n]为正整数。对原始数据进行累加得到累加序列[X1={x1(1),x1(2),?,x1(k)}],其中,[k]为累加序列的项数,为正整数,[x1(k)]是[x0(n)]前[k]项累加,即[x1(k)=n=1kx0(n),k=1,2,?,n]。
②求解GM(1,1)模型的白化微分方程。
GM(1,1)模型的表达式为:
[x1(k)+az1(k)=b] (1)
式(1)中:[z1(k)=12(x1(k)+x1(k-1)),k=2,3,?,n];[a]为发展系数,若[a<2],则GM(1,1)模型有意义;[b]为内生控制灰度[1]。
若[α=ab]为参数,且GM(1,1)模型的累加矩阵[Β]及常数项[Y]为:
[B=-z1(2)?-z1(n)1?1Τ]
[Y=[x0(2)?x0(n)]Τ]
运用最小二乘法估计:
[a=abT=(BΤB)-1BΤY] (2)
将式(1)视为时间[t]的函数,[x1(k)]替换为[x1(k)]的导数[dx1(k)dt],[z1(k)]替换为[x1(k)],则GM(1,1)模型的白化微分方程为:
[dx1(k)dt+ax1(k)=b]
③计算原始数据的预测数据[X0]。
GM(1,1)模型的响应函数式为:
[x1(k)=(x0(1)-ba)e-a(k-1)+ba,k=2,3,?,n]
(3)
式(3)的累减还原式为:
[x0(k+1)=x1(k+1)-x1(k),k=1,2,?,n]
由式(3)及其累减还原式可知GM(1,1)模型的预测数据为:
[x0(k)=x0(1),k=1(1-ea)(x0(1)-ba)e-a(k-1),k=2,3,?,n] (4)
则GM(1,1)模型的预测序列表达式为:
[X0={x0(1),x0(2),?,x0(n)}]
GM(1,1)模型的预测数据对原始数据的平均残差为[E0(n)=x0(n)-x0/n],平均相对误差为[E0(n)/n]。
2 灰色残差修正模型REGM(1,1)
先利用GM(1,1)模型的响应函数值[x1(k)]与原始数据的累加值[x1(k)],构建REGM(1,1)模型的残差累加序列[ε1]和残差序列[ε0],由其白化微分方程得到REGM(1,1)模型的响应函数式,再使用GM(1,1)模型的响应函数值对REGM(1,1)模型的残差预测函数值进行修正得到REGM(1,1)模型的残差修正序列,最后利用REGM(1,1)模型的残差修正序列进行累减还原,获得REGM(1,1)模型的预测数据。
为建立灰色残差修正模型REGM(1,1)模型,对数据做如下处理:
①求解REGM(1,1)模型的残差累加序列[ε1]和残差序列[ε0]。
GM(1,1)模型的响应函数值[x1(k)]与原始数据的累加值[x1(k)]的残差为[ε1(k)=x1(k)-x1(k)],由此构建残差累加序列[ε1={ε1(1),ε1(2),?,ε1(k)}]。再利用[ε0(k)=ε1(k)-ε1(k-1)]生成REGM(1,1)模型的残差序列[ε0={ε0(1),ε0(2),?,ε0(n)}]。
②求解REGM(1,1)模型。
REGM(1,1)模型的表达式为:
[ε1(k)+a’A1(k)=b’] (5)
其中,[A1(k)=12(ε1(k)+ε1(k-1)),k=2,3,?,n]。
若[a’=a’b’]为参数,REGM(1,1)模型相对应的累加矩阵[Β’]及常数项[Y’]为:
[B’=-A1(2)?-A1(n)1?1Τ]
[Y’=[ε0(2)?ε0(n)]Τ]
运用最小二乘法估计:
[a’=a’b’T=(B’ΤΒ’)-1] [Β’ΤY’]
③判断REGM(1,1)模型状态类型。
将式(5)视为时间[t]的函数,[ε1(k)]替换为残差累加值[ε1(k)]的导数[dε1(k)dt],[A1(k)]替换为[ε1(k)],则REGM(1,1)模型的白化微分方程为:
[dε1(k)dt+aε1(k)=b]
为确保[ε1(t)]的非负性,令[ε1(t)=x1(t)-x1(t)],为便于分析,当[ε1(t)=x1(t)-x1(t)=0]时,[ε1(t)]去除绝对值符号后[x1(t)]和[x1(t)]的关系如图1(a)和图1(b)所示。
<G:\武汉工程大学\2025\第3期\何盈杉-1.tif>[y][t][t0][o][(a)][(b)][y][t0][(c)][y][t][o][t][o]
图1 [ε1(t)]去掉绝对值后[x1(t)]和[x1(t)]的关系(a, b)和
实际可能出现的状态(c)
Fig. 1 Relationship between [x1(t)] and [x1(t)] after [ε1(t)]
removes the absolute value (a, b) and the actual
possible state (c)
图1(a)和图1(b)中,[t0]为[x1(t)]和[x1(t)]交点的横坐标,即为[ε1(t)=x1(t)-x1(t)=0]的解。如图1(a)所示,[t≤t0]时,[x1(t)>x1(t)],则[x1(t)-x1(t)>0];[t>t0]时,[x1(t)>x1(t)],则[x1(t)-x1(t)>0]。此时[ε1(t)≥0],[ε1(t)]的表达式为:
[ε1(t)=x1(t)-x1(t),t≤t0x1(t)-x1(t),t>t0]
离散化后[ε1(k)=x1(k)-x1(k),k≤k0x1(k)-x1(k),k>k0]
(6)
其中,[k0]为[t0]离散化后的点,[k0]为正整数。
如图1(b)所示,[t≤t0]时,[x1(t)>x1(t)],则[x1(t)-x1(t)>0];[t>t0]时,[x1(t)>x1(t)],则[x1(t)-x1(t)>0]。此时[ε1(t)≥0],[ε1(t)]的表达式为:
[ε1(t)=x1(t)-x1(t),t≤t0x1(t)-x1(t),t>t0]
离散化后[ε1(k)=x1(k)-x1(k),k≤k0x1(k)-x1(k),k>k0] (7)
但在实际情况下,[x1(t)]和[x1(t)]可能存在多个交点,如图1(c)所示。若排除起点后[ε1(t)]存在[m]个交点,则离散化后,[ki]是第[i]个交点的最近的左邻整端点,且[i∈[1,m]] 。非起点的交点分别位于[[x1(k1),x1(k1+1)), [x1(k2),x1(k2+1)),?, [x1][(km),x1(km+1))]区间上,[k1<k2<?<km] 且[km]为正整数。
④计算REGM(1,1)模型的预测数据[X0]。
REGM(1,1)模型的响应函数式为:
[ε1(k)=(ε0(1)-b’a’)e-a’(k-1)+b’a’,k=2,3,?,n]
将REGM(1,1)模型的响应函数式[ε1(k)]作为REGM(1,1)模型的残差预测函数值[ε1(k)](以式(6)为例推演),即:
[ε1(k)=x1(k)-x1(k)=(ε0(1)-b’a’)e-a’(k-1)+b’a’,(k≤k0,k=2,3,?,n)x1(k)-x1(k)=(ε0(1)-b’a’)e-a’(k-1)+b’a’,(k>k0,k=2,3,?,n)]
用GM(1,1)模型的响应函数值对REGM(1,1)模型的残差预测函数值进行修正,即:
[x1(k)=x1(k)+ε1(k)] (8)
由式(8)得到REGM(1,1)模型的残差修正式[x1(k)]:
[x1(k)=(x0(1)-ba)e-a(k-1)+ba-(ε0(1)-b’a’)e-a’(k-1)-b’a’,k≤k0(x0(1)-ba)e-a(k-1)+ba+(ε0(1)-b’a’)e-a’(k-1)+b’a’,k>k0] (9)
则REGM(1,1)模型残差修正序列为[X1={x1(1),x1(2),?,x1(k)}]。
对式(9)做累减还原,即:
[x0(k)=x0(1),k=1x1(k)-x1(k-1),k=2,3,?,n]
则REGM(1,1)模型的预测序列为[X0={x0(1),x0(2),?,x0(n)}]。
3 模型预测结果实验分析
本实验数据来源于Kaggle平台中的Electric_Production.csv数据集,采用工业生产指数(industrial production index, IPI)衡量电力生产水平,IPI以100为基准,数值越高表明相应时段内电力生产规模越大。
原始数据选取数据集中2006至2017年度12月1日的IPI数据,如表1所示。原始数据的累加值及原始数据的GM(1,1)模型的响应函数值如表2所示。
表1 2006年至2017年每年12月1日电力生产情况
Table 1 Electric power production on December 1 each year from 2006 to 2017
[日期 IPI 日期 IPI 2006-12-01 103.066 0 2012-12-01 105.272 2 2007-12-01 106.752 8 2013-12-01 113.473 2 2008-12-01 109.422 1 2014-12-01 109.347 7 2009-12-01 110.684 4 2015-12-01 103.220 3 2010-12-01 114.326 6 2016-12-01 112.769 4 2011-12-01 107.331 2 2017-12-01 114.721 2 ]
表2 原始数据的累加值和其GM(1,1)模型的响应函数值
Table 2 The cumulative value of the original data and the
value of the response function of its GM(1,1) model
[[k] [x1(k)] [x1(k)] [k] [x1(k)] [x1(k)] 1 103.066 0 103.066 0 7 756.855 3 759.474 8 2 209.818 8 211.860 9 8 870.328 5 869.729 3 3 319.240 9 320.897 7 9 979.676 2 980.229 0 4 429.925 3 430.176 9 10 1 082.896 5 1 090.974 4 5 544.251 9 539.699 1 11 1 195.665 9 1 201.966 1 6 651.583 1 649.464 9 12 1 310.387 1 1 313.204 6 ]
表2中共有3个非起点的交点,交点分别位于[[x1(4),x1(5)),[x1(7),x1(8)),[x1(8),x1(9))]区间,即[k1=4,k2=7,k3=8]。当[k1=4,k3=8]时符合图1(a)所示状态,[k2=7]时符合图1(b)所示状态[20]。
3.1 GM(1,1)模型、FGM(1,1)模型与REGM(1,1)模型的对比分析
美国2006至2017年度12月1日电力生产的IPI的原始数据与GM(1,1)模型、FGM(1,1)模型、REGM(1,1)模型对其预测的数据如图2所示。
GM(1,1)模型中[a=-0.002 2 ,b=108.445 1],预测数据为:
[x0(k)=103.066 0 ,k=1 (1-ea)(103.066 0-ba)e-a(k-1),k=2,3,?,n]
REGM(1,1)模型中[a’=-0.002 2 ,b’=108.172 5],预测数据为:
[x0(k)=103.066 0, k=1x1(k)-x1(k-1),k=2,3,?,n]
其中,
[x1(k)=(103.066 0-ba)e-a(k-1)-(103.066 0-b’a’)e-a’(k-1)+ba-b’a’,2≤k≤4(103.066 0-ba)e-a(k-1)+(103.066 0-b’a’)e-a’(k-1)+ba+b’a’,4<k≤7(103.066 0-ba)e-a(k-1)-(103.066 0-b’a’)e-a’(k-1)+ba-b’a’,7<k≤8(103.066 0-ba)e-a(k-1)+(103.066 0-b’a’)e-a’(k-1)+ba+b’a’,8<k]
残差和相对误差的绝对值越小,说明模型的预测数据和原始数据越接近,预测精度更高。根据3种模型的预测结果计算,GM(1,1)模型的平均残差和平均相对误差分别为27.680 2×10-1与2.253 8×10-2;FGM(1,1)模型的平均残差和平均相对误差分别为5.825 2×10-1与5.348 7×10-3;REGM(1,1)模型的平均残差和平均相对误差分别为4.083 9×10-4与3.712 2×10-6。
REGM(1,1)模型的平均残差和平均相对误差均小于GM(1,1)模型和FGM(1,1)模型,表明其预测精度较高。同时,显示出REGM(1,1)模型在不同数据量级下的稳健性。
相较而言,GM(1,1)模型的预测数据与原始数据存在较大偏差,且对数据的规律性和趋势性有一定的要求;FGM(1,1)模型通过引入傅里叶残差修正提高了预测精度,但其修正效果在数据变化剧烈时存在一定局限性;而REGM(1,1)模型的预测结果与原始数据几乎重合,能更全面地反映原始数据的特性,表现出显著的优越性。
4 结 论
本研究提出的REGM(1,1)模型基于GM(1,1)模型实现,通过构建残差序列补偿原始数据累加序列与GM(1,1)模型响应函数间的差异,并引入白化微分方程细化响应函数式,考虑了数据的动态变化,同时REGM(1,1)模型通过对残差修正序列的累减还原,显著降低了预测误差,在平稳与非线性的混合数据场景中展现出较高的灵活性与适应性。
实验表明,相较于GM(1,1)模型对数据规律的强依赖性以及FGM(1,1)模型在剧烈波动场景下的局限性,REGM(1,1)模型能够精准捕捉生产过程中的规律性与突发性特征,预测结果与原始数据趋势高度吻合,有更广泛的适用性,为工业参数优化与能源策略制定提供了可靠的量化分析工具,拓展了灰色预测模型在复杂系统中的应用潜力。