灰色系统理论及其应用


灰色系统介绍

灰色系统本质就是系统内部信息部分已知而部分信息未知的系统.如果所有信息都已知,如力和加速度的关系,那么这就是白色系统,反之则成为黑色系统.

灰色系统提出了一个和回归分析不同的分析方法-关联度分析方法,即根据因素之间发展态势的相似或相异程度来衡量因素间的关联程度.

关联分析

关联系数的定义

$选取参考数列x_0 = {x_0(k)|k = 1,2,…,n}其中k表示时刻.假设有m个比较数列x_i={x_i(k)|k = 1,2,…,n}(i=1,2,…,m)$

$则称\xi_{i}(k) = \frac{\min_{s}min_{t}\left|x_{0}(t), - x_{s}(t)\right|,+\rho , \max_{s}max_{t} \left | x_{0}(t), - x_{s}(t) \right | }{\left | x_{0}(k), - x_{i}(k) \right | , + \rho , \max_{s}max_{t} \left | x_{0}(t), - x_{s}(t) \right | } \cdots \left ( 1 \right )$

$为比较数列x_{i} 对参考数列x_{0} 在k时刻的关联系数, 其中 \rho \in \left [ 0, 1 \right ] 为分辨系数;$

称(1)式中$\min_{s}min_{t}\left|x_{0}(t), - x_{s}(t)\right|,\max_{s}max_{t}\left|x_{0}(t), - x_{s}(t) \right|$分别为两级最小差,两级最大差。

关联度的定义


$$r_i =\frac{1}{n}\Sigma\xi_i(k)$$
为数列$x_i$对参考数列$x_0$的关联度.

易得关联度是各个时刻的关联系数集中的一个平均值

优势分析

假设有m个参考数列,记为$y_1,y_2,…,y_m$.有l个比较数列,记为$x_1,…,x_l$.显然每一个参考数列对l个比较数列都有l个关联度.令$r_{ij}$表示比较数列$x_j$对$y_i$的关联度,可构造关联度矩阵$R=(r_{ij})_{m*l}$若某一列元素大于其他列元素的时候称此列对应的比较数列(子因素)为优势子因素;若某一行元素大于其他行元素,则称此行对应的参考数列(母元素)为优势母元素.

生成数

累加生成

把数列 x 各时刻数据依次累加的过程叫做累加过程,记作 AGO,累加所得的新数列,叫做累加生成数列。具体地,设原始数列为
$$x^{(0)} = (x^{(0)}(1),…,x^{(0)}(n)),累加生成数列记为x^{(1)} = (x^{(1)}(1),…,x^{(1)}(n)),且x^{(0)}与x^{(1)}满足 $$
$$x^{(1)}(k) = \Sigma^k_{i=\alpha}x^{(0)}(i),k = \alpha,…,n$$
$$其中\alpha\leq n为正整数.上述累加过程当1<\alpha \leq k时称为去首累加成,当\alpha = 1时称为一般累加成.$$
$$当\alpha = 1时, 式子x^{(1)}中的上标(1)表示一次累加生成,记作1-AGO.再做一次累加生成可得二次累加生成,所以易得$$
$$x^{(r)}(k) = \Sigma^k_{i=1}x^{(r-1)}(i),k = 1,…,n$$

一般的,对于实际情况为非负的数列,累加生成可以使得生成数列为递增数列,对于有负数的数列可以使用移轴的方式再累加生成.

累减生成

对累加生成的还原就是累减生成
$$x^{(r-1)}(k) = x^{(r)}(k)-x^{(r)}(k-1),k = 1,…,n$$

均值生成

邻值生成数

设原始数列为$x^{(0)} = (x^{(0)}(1),…,x^{(0)}(n))$,则称$x^{(0)}(k-1)$与$x^{(0)}(k1)$为数列$x^{(0)}$的一对邻值,$x^{(0)}(k-1)$称为前值,$x^{(0)}(k1)$称为后值.

对数常数$\alpha \in [0,1]$,则称
$$z^(0)(k) = \alpha x^{(0)}(k)+(1-\alpha) x^{(0)}(k-1)$$
为由数列$x^{(0)}$的邻值在生成系数$\alpha$下的邻值生成数.

等权邻值生成数

当$\alpha=0.5$时,$z^(0)(k)$称为等权邻值生成数

非邻值生成数

类似的,可定义非邻值生成数:
$$z^(0)(k) = \alpha x^{(0)}(k+1)+(1-\alpha) x^{(0)}(k-1)$$

灰色模型

GM(1,1)模型的定义

灰导数
$$x^{(0)} = (x^{(0)}(1),…,x^{(0)}(n)),x^{(0)}的AGO生成数列为x^{(1)} = (x^{(1)}(1),…,x^{(1)}(n)),其中x^{(1)}(k) = \Sigma^k_{i=1}x^{(0)}(i)$$
$则定义x^{(1)}的灰导数为$
$$d(k) = x^{(0)}(k) =x^{(1)}(k) -x^{(1)}(k-1)$$
GM(1,1)的灰微分方程模型
$$令x^{(1)}为数列x^{(1)}的紧邻均值数列,即z^(1)(k) = 0.5 x^{(1)}(k)+0.5 x^{(1)}(k-1),于是定义GM(1,1)的灰微分方程模型为$$

$$d(k)+az^{(1)}(k) = b$$

其中$x^{(0)}(k)$称为灰导数,a称为发展系数,$z^{(1)}(k)$称为白化背景值,b称为灰作用量.

参数向量估计

将k=2,3,…,n带入灰微分方程
$$\begin{cases}
d(2)+az^{(1)}(2) = x^{(0)}(2)+az^{(1)}(2) = b\\
d(3)+az^{(1)}(3) = x^{(0)}(3)+az^{(1)}(3) = b\\
…….\\
d(n)+az^{(1)}(n) = x^{(0)}(n)+az^{(1)}(n) = b\\
\end{cases}
$$

$$令Y=(x^{(0)}(2),x^{(0)}(3),…,x^{(0)}(n))^T,u=(a,b)^T,
B =\begin{bmatrix}
-z^{(1)}(2)&1\\
-z^{(1)}(3)&1\\
{\vdots}&{\vdots}\\
-z^{(1)}(n)&1\\
\end{bmatrix}
$$
称Y为数据向量,B为数据矩阵,u为参数向量,GM(1,1)模型可以表示为Y = Bu

由最小二乘法可以求得
$$\hat{u} = (\hat{a},\hat{b})^T = (B^TB)^{-1}B^TY$$

GM(1,1)白化型

对于GM(1,1)的灰微分方程,如果将k视为连续变量t,则数列$x^{(0)}$可视作t的函数,记为 $x^{(0)} = $x^{(0)}$(t)$ ,则 $x^{(1)}$ 是 $x^{(0)}$ 的积分,于是可得白微分方程为
$$\frac{dx^{(1)}}{dt}+ax^{(1)} = b$$

GM(1,N)模型定义

GM(1,1)即表示模型是 1 阶的,且只含 1 个变量的灰色模型。而GM(1, N) 即表示模型是 1 阶的,包含有 N 个变量的灰色模型。
设系统由N个行为因子,其原始数列为$x_i^{(0)} = (x_i^{(0)}(1),…,x_i^{(0)}(n)),i=1,…,N$

其一阶累加生成数列为$x_i^{(1)} = (x_i^{(1)}(1),…,x_i^{(1)}(n)),i=1,…,N,x_i^{(1)}(k)=\Sigma ^k_{j=1}x_i^{(0)}(j)$

取$x_i^{(1)}$的均值数列为$z_i^{(1)}(k) = 0.5x_i^{(1)}(k)+0.5x_i^{(1)}(k-1)$

则均值数列$z_i^{(1)} = (z_i^{(1)}(1),…,z_i^{(1)}(n))$

于是可得GM(1,N)的灰微分方程为
$$x_i^{(0)}(k) + az_i^{(1)} = \Sigma^N_{(j\neq{i})}b_jx_j^{(1)}(k)$$
其中$x_i^{(0)}(k)$为灰导数,$z_i^{(1)}$为背景值,a,$b_j$为参数.

引入向量矩阵符号,令i=1得
$$Y = [x_1^{(0)}(1),..,x_1^{(0)}(n)]^T,u=[a,b_2,…,b_N]^T$$
$$B = \begin{bmatrix}
-z_1^{(1)}(2) &x_2^{(1)}(2) &{\cdots} &x_N^{(1)}(2)\\
{\vdots}&{\vdots}&{\vdots}&{\vdots}\\
-z_1^{(1)}(n) &x_2^{(1)}(n) &{\cdots} &x_N^{(1)}(n)\\
\end{bmatrix}$$
则GM(1,N)的灰微分方程为
$$Y=Bu$$

GM(1,N)模型的参数估计

如果$(B^TB)^{-1}$存在,则$\hat{u} = (B^TB)^{-1}B^TY$

如果$(B^TB)^{-1}$不存在,比如n-1 <br N,那么$\hat{u}$不能通过上式确定,但注意到$\hat{u}$是对各子因素对主因素影响大小的反映,所以通过引入加权矩阵 $W = diag(w_1,…,w_N)$,对各因素进行调节,对于未来发展减弱趋势的因素赋予较大权值,对于未来发展增强趋势的因素赋予较小权值,则
$$\hat{u} = W^{-1}B^T(B^{-1}B^T)^{-1}Y$$

GM(1,N)白化型

$$\frac{dx_1^{(1)}}{dt} + ax_1^{(1)}(t) = \Sigma^N_{(j\neq{1})}b_jx_j^{(1)}(k)$$

Verhulst模型

GM(1,1)模型适用于具有较强指数规律的序列,只能描述单调的变化过程。故对于非单调的摆动发展序列或具有饱和状态的 S 形序列, Verhulst 模型,GM(2,1),DGM(2,1)模型等更适用。

Verhulst 模型主要用来描述具有饱和状态的过程, 即 S 形过程,常用于人口预测、生物生长、繁殖预测及产品经济寿命预测等。

Verhulst模型简介

设$x^{(0)}$为原始数据序列
$$x^{(0)} = (x^{(0)}(1),…,x^{(0)}(n))$$
其一阶累加生成序列为
$$x^{(1)} = (x^{(1)}(1),…,x^{(1)}(n))$$
$z^{(1)}$为$x^{(1)}$的紧邻均值生成序列
$$z^{(1)} = (z^{(1)}(1),…,z^{(1)}(n))$$
则称
$$x^{(0)} + az^{(1)} = b(z^{(1)})^2$$
为Verhulst灰色模型,a和b为参数.
其解为
$$\hat{x}^{(1)}(k+1) = \frac{ax^{(1)}(1)}{bx^{(1)}(1)+(a-bx^{(1)}(1))e^{ak}}$$
可通过累减还原为$\hat{x}^{(0)}$


$$\frac{dx^{(1)}}{dt}+ax^{(1)} = b(x^{(1)})^2$$
为Verhulst白化方程,a和b为参数.
其解为
$$x^{(1)}(t) = \frac{ax^{(1)}(1)}{bx^{(1)}(1)+(a-bx^{(1)}(1))e^{ak}}$$
$$B = \begin{bmatrix}
-z^{(1)}(2)&(z^{(1)}(2))^2\\
(\vdots)&(\vdots)\\
-z^{(1)}(n)&(z^{(1)}(n))^2\\
\end{bmatrix},
Y = \begin{bmatrix}
x^{(0)}(2)\\
\vdots\\
x^{(0)}(n)\\
\end{bmatrix}$$
参数估计值为
$$\hat\alpha = (B^TB)^{(-1)}B^TY$$

模型检验

  • 残差合格检验
  • 关联度合格检验
  • 均方差比合格检验
  • 小误差概率合格检验

Author: Dovahkiin
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint policy. If reproduced, please indicate source Dovahkiin !
  TOC