模型简介
灰色模型 (grey models)
是通过少量的
,不完全的
信息,建立灰色微分预测模型
,对事物发展作出长期性的描述。
与灰色模型相对应的预测方法有回归分析
等,但这些预测方法需要较大的样本,如果样本数量过少会造成误差较大,使得预测失效,因此,在小规模数据时,灰色模型所需信息少,精度高,成为建模中重要的预测手段。
灰色系统
信息不完全的系统称为灰色系统
,与之对应的是,信息完全的系统称为白色系统,信息完全不明了的系统称为黑色系统。
基本概念
- 灰数、灰元、灰关系是灰色现象的特征,是灰色系统的标志。
灰数是指信息不完全的数,即只知大概范围而不知其确切值的数,灰数是一个数集,记为ⓧ;
灰元是指信息不完全的元素;
灰关系是指信息不完全的关系。 - 灰数的白化值
所谓灰数的白化值是指,令a为区间,ai为a中的数,若ⓧ在a中取值,则称ai为ⓧ的一个可能的白化值。 - 灰数生成
从复杂的原始数据中找到内在规律的过程。
常见的灰数生成方法有:累加生成,累减生成,均值生成,级比生成
以累加生成为例,讨论其数学原理。
定义:
累加生成,即通过数列间各时刻数据的依个累加以得到新的数据与数列.累加前的数列称原始数列,累加后的数列称为生成数列。公式表示为:
x ( 1 ) ( i ) = { ∑ i = 1 N x ( 0 ) ( i ) ∣ i = 1 , 2 , ⋯ , N } x^{(1)}(i)=\{{\sum_{i=1}^{N}x^{(0)} (i)\rvert i=1,2,\cdots,N}\} x(1)(i)={i=1∑Nx(0)(i)∣i=1,2,⋯,N}
称此数据为原始数据的一次累加生成。
GM(1,1)模型
GM(1,1)模型
是一阶微分方程模型
d
x
d
t
+
a
x
=
u
G
M
(
1
,
1
)
\frac{dx}{dt}+ax=u\;\;GM(1,1)
dtdx+ax=uGM(1,1)
由常数变易法得到
d
x
d
t
=
e
−
∫
a
d
t
[
∫
u
e
∫
a
d
t
d
t
+
C
]
\frac{dx}{dt}= e^{-\int adt}[\int ue^{\int adt}dt+C ]
dtdx=e−∫adt[∫ue∫adtdt+C]
整理得
d
x
d
t
=
u
a
+
C
e
−
a
t
\frac{dx}{dt}=\frac{u}{a}+Ce^{-at}
dtdx=au+Ce−at
故离散型形式如下
△
(
x
(
k
+
1
)
)
+
a
(
x
(
k
+
1
)
)
=
u
\triangle (x(k+1))+a(x(k+1))=u
△(x(k+1))+a(x(k+1))=u
预测形式如下
x
(
k
+
1
)
=
[
x
(
1
)
−
u
a
]
e
−
a
k
+
u
a
x(k+1)=[x(1)-\frac{u}{a}]e^{-ak}+\frac{u}{a}
x(k+1)=[x(1)−au]e−ak+au
由导数定义知
d
x
d
t
=
lim
△
t
→
0
f
(
t
+
△
t
)
−
f
(
t
)
△
t
\frac{dx}{dt}=\lim_{\triangle t\rightarrow 0}\frac{f(t+\triangle t)-f(t)}{\triangle t}
dtdx=△t→0lim△tf(t+△t)−f(t)
当
△
t
\triangle t
△t很小并取很小的1单位时有
x
(
t
+
1
)
−
x
(
t
)
=
△
x
△
t
x(t+1)-x(t)=\frac{\triangle x}{\triangle t}
x(t+1)−x(t)=△t△x
累加时用前后两个时刻的平均代替
x
(
i
)
(
i
)
=
1
2
[
x
(
i
)
(
i
)
+
x
(
i
)
(
i
−
1
)
]
x^{(i)}(i)=\frac{1}{2}[x^{(i)}(i)+x^{(i)}(i-1)]
x(i)(i)=21[x(i)(i)+x(i)(i−1)]
代替后如上所示
△
x
△
t
=
x
(
k
+
1
)
−
x
(
k
)
=
△
(
1
)
(
x
(
k
+
1
)
)
(1)
\frac{\triangle x}{\triangle t}=x(k+1)-x(k)=\triangle^{(1)}(x(k+1))\tag{1}
△t△x=x(k+1)−x(k)=△(1)(x(k+1))(1)
△
(
1
)
(
x
(
1
)
(
k
+
1
)
)
=
x
(
1
)
(
k
+
1
)
−
x
(
1
)
(
k
)
=
x
(
0
)
(
k
+
1
)
(2)
\triangle^{(1)}(x^{(1)}(k+1))=x^{(1)}(k+1)-x^{(1)}(k)=x^{(0)}(k+1)\tag{2}
△(1)(x(1)(k+1))=x(1)(k+1)−x(1)(k)=x(0)(k+1)(2)
x
(
1
)
(
k
+
1
)
=
1
2
[
x
(
1
)
(
k
+
1
)
+
x
(
1
)
(
k
)
]
(3)
x^{(1)}(k+1)=\frac{1}{2}[x^{(1)}(k+1)+x^{(1)}(k)]\tag{3}
x(1)(k+1)=21[x(1)(k+1)+x(1)(k)](3)
△
(
1
)
(
x
(
1
)
(
k
+
1
)
)
+
a
(
x
(
k
+
1
)
)
=
u
(4)
\triangle^{(1)}(x^{(1)}(k+1))+a(x(k+1))=u\tag{4}
△(1)(x(1)(k+1))+a(x(k+1))=u(4)
由以上四式可得
x
(
0
)
(
k
+
1
)
=
a
[
−
1
2
(
x
(
1
)
(
k
)
+
x
(
1
)
(
k
+
1
)
)
]
+
u
x^{(0)}(k+1)=a[-\frac{1}{2}(x^{(1)}(k)+x^{(1)}(k+1))]+u
x(0)(k+1)=a[−21(x(1)(k)+x(1)(k+1))]+u
写成矩阵表达式
[
x
(
0
)
(
2
)
x
(
0
)
(
3
)
⋮
x
(
0
)
(
N
)
]
=
[
−
1
2
[
x
(
1
)
(
2
)
+
x
(
1
)
(
1
)
]
1
−
1
2
[
x
(
1
)
(
2
)
+
x
(
1
)
(
1
)
]
1
⋮
−
1
2
[
x
(
1
)
(
2
)
+
x
(
1
)
(
1
)
]
1
]
[
a
u
]
\left[ \begin{matrix} x^{(0)}(2)\\ x^{(0)}(3)\\ \vdots \\ x^{(0)}(N) \end{matrix} \right]= \left[\begin{matrix} -\frac{1}{2}[x^{(1)}(2)+x^{(1)}(1)]\;\;\;\;\;\;1\\ -\frac{1}{2}[x^{(1)}(2)+x^{(1)}(1)]\;\;\;\;\;\;1\\ \vdots \\ -\frac{1}{2}[x^{(1)}(2)+x^{(1)}(1)]\;\;\;\;\;\;1\\ \end{matrix}\right] \left[\begin{matrix} a\\ u \end{matrix}\right]
⎣⎢⎢⎢⎡x(0)(2)x(0)(3)⋮x(0)(N)⎦⎥⎥⎥⎤=⎣⎢⎢⎢⎡−21[x(1)(2)+x(1)(1)]1−21[x(1)(2)+x(1)(1)]1⋮−21[x(1)(2)+x(1)(1)]1⎦⎥⎥⎥⎤[au]
令
y
=
[
x
(
0
)
(
2
)
x
(
0
)
(
3
)
⋮
x
(
0
)
(
N
)
]
y=\left[ \begin{matrix} x^{(0)}(2)\\ x^{(0)}(3)\\ \vdots \\ x^{(0)}(N) \end{matrix} \right]
y=⎣⎢⎢⎢⎡x(0)(2)x(0)(3)⋮x(0)(N)⎦⎥⎥⎥⎤
B
=
[
−
1
2
[
x
(
1
)
(
2
)
+
x
(
1
)
(
1
)
]
1
−
1
2
[
x
(
1
)
(
2
)
+
x
(
1
)
(
1
)
]
1
⋮
−
1
2
[
x
(
1
)
(
2
)
+
x
(
1
)
(
1
)
]
1
]
,
U
=
[
a
u
]
B=\left[\begin{matrix} -\frac{1}{2}[x^{(1)}(2)+x^{(1)}(1)]\;\;\;\;\;\;1\\ -\frac{1}{2}[x^{(1)}(2)+x^{(1)}(1)]\;\;\;\;\;\;1\\ \vdots \\ -\frac{1}{2}[x^{(1)}(2)+x^{(1)}(1)]\;\;\;\;\;\;1\\ \end{matrix}\right], U=\left[\begin{matrix} a\\ u \end{matrix}\right]
B=⎣⎢⎢⎢⎡−21[x(1)(2)+x(1)(1)]1−21[x(1)(2)+x(1)(1)]1⋮−21[x(1)(2)+x(1)(1)]1⎦⎥⎥⎥⎤,U=[au]
则有
y
=
B
U
y=BU
y=BU
解得
U
=
[
a
u
]
=
(
B
T
B
)
−
1
B
T
y
U=\left[\begin{matrix} a\\ u \end{matrix}\right]=(B^TB)^{-1}B^Ty
U=[au]=(BTB)−1BTy
代入公式
x
(
1
)
(
k
+
1
)
=
[
x
(
1
)
(
1
)
−
u
a
]
e
−
a
k
+
u
a
x^{(1)}(k+1)=[x^{(1)}(1)-\frac{u}{a}]e^{-ak}+\frac{u}{a}
x(1)(k+1)=[x(1)(1)−au]e−ak+au
即可获得预测值
GM(1,1)精度检验
后验差检验法:
设按GM(1,1)建模法已求出
x
^
(
1
)
\hat{x}^{(1)}
x^(1),并将
x
^
(
1
)
\hat{x}^{(1)}
x^(1)作一次累减,转化为
x
^
(
0
)
\hat{x}^{(0)}
x^(0)
X
^
(
0
)
=
[
x
^
0
(
1
)
,
x
^
0
(
2
)
,
⋯
,
x
^
0
(
n
)
]
\hat{X}^{(0)}=[\hat{x}^{0}(1),\hat{x}^{0}(2),\cdots,\hat{x}^{0}(n)]
X^(0)=[x^0(1),x^0(2),⋯,x^0(n)]
计算残差得
e
(
k
)
=
x
(
0
)
(
k
)
−
x
^
0
(
k
)
,
k
=
1
,
2
,
⋯
,
n
e(k)=x^{(0)}(k)-\hat{x}^{0}(k),k=1,2,\cdots,n
e(k)=x(0)(k)−x^0(k),k=1,2,⋯,n
分别计算原始序列和残差序列的方差为
S
1
2
,
S
2
2
S_1^2,S_2^2
S12,S22
计算后验差比为
C
=
S
2
S
1
C=\frac{S_2}{S_1}
C=S1S2
指标C越小,说明S1大,也就是原序列方差大,S2小,也就是残差方差小说明拟合效果好。
精度检验对照表
模型精度等级 | 均方差比值 |
---|---|
1级(好) | C<=0.35 |
2级(合格) | 0.35<C<=0.5 |
3级(勉强) | 0.5<C<=0.65 |
4级(不合格) | 0.65<C |