写在前面:
内容出自课程《数学建模学习交流》,主讲人:清风
灰色预测是对既含有已知信息又含有不确定信息的系统进行预
测,就是对在一定范围内变化的、与时间有关的灰色过程进行预测。
灰色预测对原始数据进行生成处理来寻找系统变动的规律,并
生成有较强规律性的数据序列,然后建立相应的微分方程模型,从
而预测事物未来发展趋势的状况。
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)}
x(1):
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
)
(
m
)
=
∑
i
=
1
m
x
(
0
)
(
i
)
,
m
=
1
,
2
,
.
.
.
,
n
x^{\left( 1 \right)}\left( m \right) =\sum_{i=1}^m{x^{\left( 0 \right)}\left( i \right) ,m=1,2,...,n}
x(1)(m)=∑i=1mx(0)(i),m=1,2,...,n,
令
z
(
1
)
z^{(1)}
z(1)为数列
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),...,z^{(1)}(n))
z(1)=(z(1)(2),z(1)(3),...,z(1)(n)),其中
z
(
1
)
(
m
)
=
δ
x
(
1
)
m
+
(
1
−
δ
)
x
(
1
)
(
m
−
1
)
,
m
=
2
,
3
,
.
.
.
,
n
且
δ
=
0.5
z^{(1)}(m)=\delta x^{(1)}m+(1-\delta)x^{(1)}(m-1), m=2,3,...,n且\delta=0.5
z(1)(m)=δx(1)m+(1−δ)x(1)(m−1),m=2,3,...,n且δ=0.5
称
x
(
0
)
(
k
)
+
a
z
(
1
)
(
k
)
=
b
x^{(0)}(k)+az^{(1)}(k)=b
x(0)(k)+az(1)(k)=b为
G
M
(
1
,
1
)
GM(1,1)
GM(1,1)模型的基本形式
(
k
=
2
,
3
,
.
.
.
,
n
)
(k=2,3,...,n)
(k=2,3,...,n),其中,
b
b
b表示灰作用量,
−
a
-a
−a表示发展系数。
=
=
>
==>
==>
x
(
0
)
(
k
)
=
−
a
z
(
1
)
(
k
)
+
b
x^{(0)}(k)=-az^{(1)}(k)+b
x(0)(k)=−az(1)(k)+b
=
=
>
==>
==>
y
=
k
x
+
b
y=kx+b
y=kx+b
通常情况下,若
∣
a
∣
>
2
|a|>2
∣a∣>2,则模型贴合度极差,建议更换预测方式;其余情况越小越好。
还可以对进行修正:
x
^
1
(
k
+
1
)
=
{
(
x
0
(
1
)
−
b
a
)
e
−
a
k
+
b
a
(
x
0
(
1
)
−
b
a
)
e
−
a
k
+
b
a
±
a
ε
(
ε
0
(
k
0
)
−
b
ε
a
ε
)
e
−
a
(
k
−
k
0
)
\hat{x}_{1}(k+1)=\left\{\begin{array}{c} \left(x_{0}(1)-\frac{b}{a}\right) e^{-a k}+\frac{b}{a} \\ \left(x_{0}(1)-\frac{b}{a}\right) e^{-a k}+\frac{b}{a} \pm a_{\varepsilon}\left(\varepsilon_{0}\left(k_{0}\right)-\frac{b_{\varepsilon}}{a_{\varepsilon}}\right) e^{-a\left(k-k_{0}\right)} \end{array}\right.
x^1(k+1)={(x0(1)−ab)e−ak+ab(x0(1)−ab)e−ak+ab±aε(ε0(k0)−aεbε)e−a(k−k0)
检验
拓展
GM(1,1)一般只适用于单调指数增长序列,若数据呈现饱和的S型,可以考虑下面几个模型:
Verhulst模型
Verhulst模型的灰微分方程在GM(1,1)的基础上做出了更改:
x
(
0
)
(
k
)
=
−
a
z
(
1
)
(
k
)
+
b
(
z
1
)
2
x^{(0)}(k)=-az^{(1)}(k)+b(z_1)^2
x(0)(k)=−az(1)(k)+b(z1)2
预测方程:
x
^
1
(
k
+
1
)
=
a
x
1
(
0
)
b
x
1
(
0
)
+
(
a
−
b
x
1
(
0
)
)
e
a
k
\hat{x}_{1}(k+1)=\frac{a x_{1}(0)}{b x_{1}(0)+\left(a-b x_{1}(0)\right) e^{a k}}
x^1(k+1)=bx1(0)+(a−bx1(0))eakax1(0)
GM(2,1)模型