灰色预测模型:GM(1,1)预测模型

灰色预测模型

灰色预测的主要特点是模型使用的不是原始数据序列,而是生成的数据序列。核心体系是灰色模型,即对原始数据作累加生成(或其他方法生成)得到近似的指数规律再进行建模的方法,优点是不需要很多的数据,一般只需要 4 个数据,就能解决历史数据少、序列的完整性及可靠性低的问题;能利用微分方程来充分挖掘系统本质,精度高;能将无规律的原始数据进行生成得到规律性较强的生成序列,运算简便,易于检验,不考虑分布规律,不考虑变化趋势。缺点是只适用于中短期的预测,只适合指数增长的预测。

GM(1,1)预测模型

G M ( 1 , 1 ) GM(1,1) GM(1,1)表示的是一阶微分方程,且只含有一个变量的灰色模型。

  1. G M ( 1 , 1 ) GM(1,1) GM(1,1)模型预测方法

定义: 已知参考数据列 x ( 0 ) = ( x ( 0 ) ( 1 ) , x ( 0 ) ( 2 ) , … , x ( 0 ) ( n ) ) x^{(0)} = (x^{(0)}(1), x^{(0)}(2), \dots, x^{(0)}(n)) x(0)=(x(0)(1),x(0)(2),,x(0)(n))
1 1 1次累加生成序列 ( 1 − A G O ) (1 - AGO) (1AGO)
x ( 1 ) = ( x ( 1 ) ( 1 ) , x ( 1 ) ( 2 ) , … , x ( 1 ) ( n ) ) = ( x ( 0 ) ( 1 ) , x ( 0 ) ( 1 ) + x ( 0 ) ( 2 ) , … , x ( 0 ) ( 1 ) + ⋯ + x ( 0 ) ( n ) ) , \begin{align*} x^{(1)} &= (x^{(1)}(1), x^{(1)}(2), \dots, x^{(1)}(n)) \\ &= (x^{(0)}(1), x^{(0)}(1) + x^{(0)}(2), \dots, x^{(0)}(1) + \cdots + x^{(0)}(n)), \end{align*} x(1)=(x(1)(1),x(1)(2),,x(1)(n))=(x(0)(1),x(0)(1)+x(0)(2),,x(0)(1)++x(0)(n)),
式中: x ( 1 ) ( k ) = ∑ i = 1 k x ( 0 ) ( i ) x^{(1)}(k) = \sum\limits_{i=1}^{k} x^{(0)}(i) x(1)(k)=i=1kx(0)(i) k = 1 , 2 , … , n k = 1,2,\dots,n k=1,2,,n

x ( 1 ) x^{(1)} x(1)的均值生成序列
z ( 1 ) = ( z ( 1 ) ( 2 ) , z ( 1 ) ( 3 ) , … , z ( 1 ) ( n ) ) , z^{(1)} = (z^{(1)}(2), z^{(1)}(3), \dots, z^{(1)}(n)), z(1)=(z(1)(2),z(1)(3),,z(1)(n)),
式中: z ( 1 ) ( k ) = 0.5 x ( 1 ) ( k ) + 0.5 x ( 1 ) ( k − 1 ) z^{(1)}(k) = 0.5x^{(1)}(k) + 0.5x^{(1)}(k - 1) z(1)(k)=0.5x(1)(k)+0.5x(1)(k1) k = 2 , 3 , … , n k = 2,3,\dots,n k=2,3,,n

建立灰微分方程
x ( 0 ) ( k ) + a z ( 1 ) ( k ) = b , k = 2 , 3 , … , n , x^{(0)}(k) + az^{(1)}(k) = b, \quad k = 2,3,\dots,n, x(0)(k)+az(1)(k)=b,k=2,3,,n,
相应的白化微分方程为
d x ( 1 ) d t + a x ( 1 ) ( t ) = b ( 1 ) . \frac{dx^{(1)}}{dt} + ax^{(1)}(t) = b \quad (1). dtdx(1)+ax(1)(t)=b(1).

u = [ a , b ] T u = [a, b]^T u=[a,b]T, Y = [ x ( 0 ) ( 2 ) , x ( 0 ) ( 3 ) , … , x ( 0 ) ( n ) ] T Y = [x^{(0)}(2), x^{(0)}(3), \dots, x^{(0)}(n)]^T Y=[x(0)(2),x(0)(3),,x(0)(n)]T, B = [ − z ( 1 ) ( 2 ) 1 − z ( 1 ) ( 3 ) 1 ⋮ ⋮ − z ( 1 ) ( n ) 1 ] B = \begin{bmatrix} -z^{(1)}(2) & 1 \\ -z^{(1)}(3) & 1 \\ \vdots & \vdots \\ -z^{(1)}(n) & 1 \end{bmatrix} B= z(1)(2)z(1)(3)z(1)(n)111 ,则由最小二乘法,求得使 J ( u ) = ( Y − B u ) T ( Y − B u ) J(u) = (Y - Bu)^{\mathrm{T}}(Y - Bu) J(u)=(YBu)T(YBu) 达到最小值的 u u u 的估计值为
u ^ = [ a ^ , b ^ ] T = ( B T B ) − 1 B T Y , \hat{\boldsymbol{u}} = [\hat{a}, \hat{b}]^{\mathrm{T}} = (B^{\mathrm{T}}B)^{-1}B^{\mathrm{T}}Y, u^=[a^,b^]T=(BTB)1BTY,
于是求解方程(1),得 :
x ^ ( 1 ) ( k + 1 ) = ( x ( 0 ) ( 1 ) − b ^ a ^ ) e − a ^ k + b ^ a ^ , k = 0 , 1 , ⋯   , n − 1 , ⋯ 。 \hat{x}^{(1)}(k + 1) = \left( x^{(0)}(1) - \frac{\hat{b}}{\hat{a}} \right) e^{-\hat{a}k} + \frac{\hat{b}}{\hat{a}}, \quad k = 0,1,\cdots,n - 1,\cdots 。 x^(1)(k+1)=(x(0)(1)a^b^)ea^k+a^b^,k=0,1,,n1,
2. G M ( 1 , 1 ) GM(1,1) GM(1,1)模型预测步骤

  • 数据的检验与处理

为了验证建模方法的可行性,需要对已知数据列作必要的检验处理。设参考数据为 x ( 0 ) = ( x ( 0 ) ( 1 ) , x ( 0 ) ( 2 ) , … , x ( 0 ) ( n ) ) x^{(0)} = (x^{(0)}(1), x^{(0)}(2), \dots, x^{(0)}(n)) x(0)=(x(0)(1),x(0)(2),,x(0)(n)),计算序列的级比 λ ( k ) = x ( 0 ) ( k − 1 ) x ( 0 ) ( k ) \lambda(k) = \frac{x^{(0)}(k - 1)}{x^{(0)}(k)} λ(k)=x(0)(k)x(0)(k1)
k = 2 , 3 , … , n k = 2,3,\dots,n k=2,3,,n。如果所有的级比 λ ( k ) \lambda(k) λ(k) 都落在可容覆盖 Θ = ( e − 2 n + 1 , e 2 n + 1 ) \Theta = \left( e^{-\frac{2}{n + 1}}, e^{\frac{2}{n + 1}} \right) Θ=(en+12,en+12) 内,则序列 x ( 0 ) x^{(0)} x(0) 可以作为建模 G M ( 1 , 1 ) GM (1,1) GM(1,1) 的数据进行灰色预测。否则,需要对序列 x ( 0 ) x^{(0)} x(0) 做必要的变换,使其落入可容覆盖内。如取适当常数 c c c,作平移变换 y ( 0 ) ( k ) = x ( 0 ) ( k ) + c y^{(0)}(k) = x^{(0)}(k) + c y(0)(k)=x(0)(k)+c k = 1 , 2 , … , n k = 1,2,\dots,n k=1,2,,n,使序列 y ( 0 ) = ( y ( 0 ) ( 1 ) , y ( 0 ) ( 2 ) , … , y ( 0 ) ( n ) ) y^{(0)} = (y^{(0)}(1), y^{(0)}(2), \dots, y^{(0)}(n)) y(0)=(y(0)(1),y(0)(2),,y(0)(n)) 的级比 λ y ( k ) = y ( 0 ) ( k − 1 ) y ( 0 ) ( k ) ∈ Θ \lambda_y(k) = \frac{y^{(0)}(k - 1)}{y^{(0)}(k)} \in \Theta λy(k)=y(0)(k)y(0)(k1)Θ k = 2 , 3 , … , n k = 2,3,\dots,n k=2,3,,n

  • 建立模型
    按式 ( 1 ) (1) (1) 建立 G M ( 1 , 1 ) GM (1,1) GM(1,1) 模型,则可以得到预测值 x ^ ( 1 ) ( k + 1 ) = ( x ( 0 ) ( 1 ) − b ^ a ^ ) e − a ^ k + b ^ a ^ \hat{x}^{(1)}(k + 1) = \left( x^{(0)}(1) - \frac{\hat{b}}{\hat{a}} \right) e^{-\hat{a}k} + \frac{\hat{b}}{\hat{a}} x^(1)(k+1)=(x(0)(1)a^b^)ea^k+a^b^
    k = 0 , 1 , … , n − 1 , … k = 0,1,\dots,n - 1,\dots k=0,1,,n1,,而且 x ^ ( 0 ) ( k + 1 ) = x ^ ( 1 ) ( k + 1 ) − x ^ ( 1 ) ( k ) \hat{x}^{(0)}(k + 1) = \hat{x}^{(1)}(k + 1) - \hat{x}^{(1)}(k) x^(0)(k+1)=x^(1)(k+1)x^(1)(k) k = 1 , 2 , … , n − 1 , … k = 1,2,\dots,n - 1,\dots k=1,2,,n1,
  • 检验预测值
    • 残差检验
      令残差为 ε ( k ) \varepsilon(k) ε(k),计算 ε ( k ) = x ( 0 ) ( k ) − x ^ ( 0 ) ( k ) x ( 0 ) ( k ) \varepsilon(k) = \frac{x^{(0)}(k) - \hat{x}^{(0)}(k)}{x^{(0)}(k)} ε(k)=x(0)(k)x(0)(k)x^(0)(k) k = 1 , 2 , … , n k = 1,2,\dots,n k=1,2,,n,这里 x ^ ( 0 ) ( 1 ) = x ( 0 ) ( 1 ) \hat{x}^{(0)}(1) = x^{(0)}(1) x^(0)(1)=x(0)(1)。如果 ε ( k ) < 0.2 \varepsilon(k) < 0.2 ε(k)<0.2,则认为达到一般要求;如果 ε ( k ) < 0.1 \varepsilon(k) < 0.1 ε(k)<0.1,则认为达到较高的要求。
    • 级比偏值检验
      首先由参考数据 x ( 0 ) ( k − 1 ) x ( 0 ) ( k ) \frac{x^{(0)}(k - 1)}{x^{(0)}(k)} x(0)(k)x(0)(k1)计算出级比 λ ( k ) \lambda(k) λ(k),再用发展系数 a a a 求出相应的级比偏差 ρ ( k ) = 1 − ( 1 − 0.5 a 1 + 0.5 a ) λ ( k ) \rho(k) = 1 - \left( \frac{1 - 0.5a}{1 + 0.5a} \right) \lambda(k) ρ(k)=1(1+0.5a10.5a)λ(k)。如果 ρ ( k ) < 0.2 \rho(k) < 0.2 ρ(k)<0.2 则认为达到一般要求;如果 ρ ( k ) < 0.1 \rho(k) < 0.1 ρ(k)<0.1 则认为达到较高的要求。
  • 预测预报
    G M ( 1 , 1 ) GM (1,1) GM(1,1) 模型得到指定时区的预测值,根据实际问题的需要,给出相应的预测预报。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值