灰色预测- 灰色模型GM(1,1)
首先说说 G M ( 1 , 1 ) GM(1,1) GM(1,1)是什么?一般定义为, G M ( m , n ) GM(m,n) GM(m,n)为 m m m阶, n n n个变量的微分方程。 G M ( 1 , 1 ) GM(1,1) GM(1,1)那就好理解了。前一篇博客说到了生成数的原理,现在就开始介绍灰色预测理论中最基本的模型 G M ( 1 , 1 ) GM(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),...,, x^{(0)}(n) )
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^{(1)}(1), x^{(1)}(2),...,, x^{(1)}(n) )
x(1)=(x(1)(1),x(1)(2),...,,x(1)(n)),其中,
x
(
1
)
(
k
)
=
∑
i
=
α
k
x
(
0
)
(
i
)
,
k
=
α
,
α
+
1
,
.
.
.
n
(1)
x^{(1)}(k)=\sum_{i=\alpha}^k x^{(0)}(i),k=\alpha,\alpha+1,...n \tag{1}
x(1)(k)=i=α∑kx(0)(i),k=α,α+1,...n(1)
其中
α
≤
n
\alpha \le n
α≤n,且为正整数,
(
1
)
(1)
(1)式中,取
α
=
1
\alpha = 1
α=1,称为一般累加过程,记作
1
−
A
G
O
1-AGO
1−AGO。定义
x
(
1
)
x^{(1)}
x(1)的灰导数(实际上就是累减),为:
d
(
k
)
=
x
(
0
)
(
k
)
=
x
(
1
)
(
k
)
−
x
(
1
)
(
k
−
1
)
(2)
d (k)=x^{(0)}(k)=x^{(1)}(k)- x^{(1)}(k-1) \tag{2}
d(k)=x(0)(k)=x(1)(k)−x(1)(k−1)(2)
取
x
(
1
)
x^{(1)}
x(1)的等权重紧邻值,
z
(
1
)
(
k
)
=
0.5
x
(
1
)
(
k
)
+
0.5
x
(
1
)
(
k
−
1
)
,
k
=
2
,
3
,
.
.
.
,
n
(3)
z^{(1)}(k)=0.5 x^{(1)}(k)+0.5 x^{(1)}(k-1) ,k=2,3,...,n \tag{3}
z(1)(k)=0.5x(1)(k)+0.5x(1)(k−1),k=2,3,...,n(3)
定义灰微分方程
G
M
(
1
,
1
)
GM(1,1)
GM(1,1):
d
(
k
)
+
a
z
(
1
)
(
k
)
=
b
(4)
d(k)+az^{(1)}(k)=b \tag{4}
d(k)+az(1)(k)=b(4)
即:
x
(
0
)
(
k
)
+
a
z
(
1
)
(
k
)
=
b
(5)
x^{(0)}(k)+az^{(1)}(k)=b \tag{5}
x(0)(k)+az(1)(k)=b(5)
其中
x
(
0
)
(
k
)
x^{(0)} (k)
x(0)(k) 称为灰导数,a 称为发展系数,
z
(
1
)
(
k
)
z^{(1)} (k)
z(1)(k)称为白化背景值,
b
b
b 称为灰作用量。将
k
=
2
,
3
,
.
.
.
,
n
k=2,3,...,n
k=2,3,...,n的数据带入上面的
(
4
)
(4)
(4)式,得到:
{
x
(
0
)
(
2
)
+
a
z
(
1
)
(
2
)
=
b
x
(
0
)
(
3
)
+
a
z
(
1
)
(
3
)
=
b
.
.
.
.
x
(
0
)
(
n
)
+
a
z
(
1
)
(
n
)
=
b
(6)
\left\{ \begin{matrix} x^{(0)}(2)+az^{(1)}(2)=b \\ x^{(0)}(3)+az^{(1)}(3)=b \\ .... \\ x^{(0)}(n)+az^{(1)}(n)=b \\ \end{matrix} \right. \tag{6}
⎩⎪⎪⎨⎪⎪⎧x(0)(2)+az(1)(2)=bx(0)(3)+az(1)(3)=b....x(0)(n)+az(1)(n)=b(6)
将上面写成矩阵的形式,令
Y = ( x ( 0 ) ( 2 ) , x ( 0 ) ( 3 ) , . . . , x ( 0 ) ( n ) ) T Y = (x^{(0)}(2),x^{(0)}(3),...,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{pmatrix} -z^{(1)}(2) &1 \\ -z^{(1)}(3) &1 \\ \vdots & \vdots \\ -z^{(1)}(n) &1 \\ \end{pmatrix} B=⎝⎜⎜⎜⎛−z(1)(2)−z(1)(3)⋮−z(1)(n)11⋮1⎠⎟⎟⎟⎞
u = ( a b ) T u = \begin{pmatrix} a &b \end{pmatrix}^T u=(ab)T
称
Y
Y
Y为数据向量,
B
B
B 为数据矩阵,
u
u
u 为参数向量,则
G
M
(
1
,
1
)
GM(1,1)
GM(1,1)模型可以表示为矩阵方程
Y
=
B
u
Y = Bu
Y=Bu 。
(
6
)
(6)
(6)式可以看出,参数个数为
2
2
2个,方程个数大于
2
2
2,因此利用最小二乘求解待解未知数
u
u
u。最小二乘(使得
J
(
u
^
)
=
(
Y
−
B
u
^
)
T
(
Y
−
B
u
^
)
J(\hat u)=(Y-B\hat u)^T(Y-B\hat u)
J(u^)=(Y−Bu^)T(Y−Bu^)最小)解为:
u
^
=
(
a
^
,
b
^
)
=
(
B
T
B
)
−
1
B
T
Y
(7)
\hat u=(\hat a ,\hat b)=(B^TB)^{-1}B^TY \tag{7}
u^=(a^,b^)=(BTB)−1BTY(7)
GM(1,1)的白化型
对于 G M ( 1 , 1 ) GM(1,1) GM(1,1)的灰微分方程 ( 5 ) (5) (5),如果将 x ( 0 ) ( k ) x^{(0)} (k) x(0)(k) 的时刻 k = 2 , 3 , . . . n k = 2,3,... n k=2,3,...n视为连续连续的变量 t ,则数列 x ( 1 ) x^{(1)} x(1)就可以视为时间 t t t 的函数,记为 x ( 1 ) = x ( 1 ) ( t ) x^{(1)} = x^{(1)} (t) x(1)=x(1)(t) ,并让灰导数 x ( 0 ) ( k ) x^{(0)} (k) x(0)(k) 对应于导数 d x ( 1 ) d t \frac{dx^{(1)}}{dt} dtdx(1),背景值 z ( 1 ) ( k ) z^{(1)} (k) z(1)(k) 对应于 x ( 1 ) ( t ) x^{(1)} (t) x(1)(t) 。于是得到 G M ( 1 , 1 ) GM(1,1) GM(1,1)的灰微分方程对应的白微分方程为( G M ( 1 , 1 ) GM(1,1) GM(1,1)的白化型):
d x ( 1 ) d t + a x ( 1 ) = b (8) \frac{dx^{(1)}}{dt} +ax^{(1)}=b \tag{8} dtdx(1)+ax(1)=b(8)
需要注意的是, G M ( 1 , 1 ) GM(1,1) GM(1,1)的白化型并不是 G M ( 1 , 1 ) GM(1,1) GM(1,1)的灰微分方程离散得到的,仅仅是一种类推。 G M ( 1 , 1 ) GM(1,1) GM(1,1)的白化型是一个真正的微分方程,如果白化型模型精度高,则表明所用数列建立的模型 G M ( 1 , 1 ) GM(1,1) GM(1,1)与真正的微分方程模型吻合较好,反之亦然。
GM(1,1)预测
通过将( G M ( 1 , 1 ) GM(1,1) GM(1,1)的白化型方程离散,得到 x ( 1 ) x^{(1)} x(1)的预测值 x ^ ( 1 ) \hat x^{(1)} x^(1):
x ^ ( 1 ) ( k + 1 ) = ( x ( 0 ) ( 1 ) − b a ) e − a k + b a (9) \hat x^{(1)} (k+1) = (x^{(0)} (1)-\frac{b}{a})e^{-ak}+\frac{b}{a} \tag{9} x^(1)(k+1)=(x(0)(1)−ab)e−ak+ab(9)
x ( 1 ) x^{(1)} x(1)是由 x ( 0 ) x^{(0)} x(0)累加得到的,因此可以通过累减 x ^ ( 1 ) \hat x^{(1)} x^(1)得到 x ( 0 ) x^{(0)} x(0)的预测值 x ^ ( 0 ) \hat x^{(0)} x^(0),即:
x ^ ( 0 ) ( k + 1 ) = x ^ ( 1 ) ( k + 1 ) − x ^ ( 1 ) ( k ) (10) \hat x^{(0)} (k+1)= \hat x^{(1)} (k+1)-\hat x^{(1)} (k) \tag{10} x^(0)(k+1)=x^(1)(k+1)−x^(1)(k)(10)
本次就说到这,接下来说对 G M ( 1 , 1 ) GM(1,1) GM(1,1)模型的校验。