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

二、GM(1,1)模型

2.1 GM(1,1)模型概述

灰色预测经常用来解决数据量较少且不能直接发现规律的数据。对于包含不确定信息的序列,灰色预测方法通过对原始数据进行处理,使之转化为灰色序列,并建立微分方程模型模型

GM(1,1)模型是灰色预测理论的基本模型,也是灰色系统理论中运用最广泛的一种动态预测模型,模型由一个单变量的一阶微分方程构成。GM(1,1)模型适合对“少数据,贫信息”的对象进行中短期预测

2.2 GM(1,1)数据处理方法

在灰色系统中,能获得的信息非常有限,且不易发现内部规律,因此我们需要一些处理,减弱序列的随机性,使得一般规律可以显现。处理方式主要有以下三种:累加生成、累减生成和加权邻值生成

2.3 GM(1,1)模型方法的可行性检验

由原始序列
X(0)=(x(0)(1),x0(2),...,x0(n)) X^{\left( 0 \right)}=\left( x^{\left( 0 \right)}\left( 1 \right) ,x^0\left( 2 \right) ,...,x^0\left( n \right) \right)
σ(k)\sigma \left( k \right)为序列X(0)X^{\left( 0 \right)} 的级比,若满足:

σ(k)(e2n+1,e2n+1) \sigma \left( k \right) \in \left( e^{\frac{-2}{\text{n}+1}},e^{\frac{2}{n+1}} \right)
其中 n 为原始序列的数据个数,则X(0)X^{\left( 0 \right)} 可建立GM(1,1) 模型,并进行灰色预测。

2.4 GM(1,1)预测模型的构建

设原始序列X(0)=(x(0)(1),x0(2),...,x0(n))X^{\left( 0 \right)}=\left( x^{\left( 0 \right)}\left( 1 \right) ,x^0\left( 2 \right) ,...,x^0\left( n \right) \right)满足上述条件,其中x(0)(k)0 x^{\left( 0 \right)}\left( k \right) \ge 0

(1)序列的累加处理
将原始序列进行一次累加生成后处理后,生成 X(0)X^{\left( 0 \right)}的1-AGO 序列 (累加生成序列):
X(1)=(x(1)(1),x(1)(2),...,x(1)(n)) X^{\left( 1 \right)}=\left( x^{\left( 1 \right)}\left( 1 \right) ,x^{\left( 1 \right)}\left( 2 \right) ,...,x^{\left( 1 \right)}\left( n \right) \right)
其中
x(1)(k)=i=1kx(0)(i)    k=1,2,......,n x^{\left( 1 \right)}\left( k \right) =\sum\limits_{i=1}^k{x^{\left( 0 \right)}\left( i \right)}\ \ \ \ k=1,2,......,n

(2)计算紧邻均值序列Z(1)=(z(1)(2),z(1)(3),...,z(1)(n)) Z^{\left( 1 \right)}=\left( z^{\left( 1 \right)}\left( 2 \right) ,z^{\left( 1 \right)}\left( 3 \right) ,...,z^{\left( 1 \right)}\left( n \right) \right)
其中z(1)(k)=12(x(1)(k)+x(1)(k1)) z^{\left( 1 \right)}\left( k \right) =\frac{1}{2}\left( x^{\left( 1 \right)}\left( k \right) +x^{\left( 1 \right)}\left( k-1 \right) \right)

(3)建立相关模型
建立一阶微分线性方程,即灰色微分方程,得到 GM(1,1)模型的均值形式:x(0)(k)+az(1)(k)=b x^{\left( 0 \right)}\left( k \right) +az^{\left( 1 \right)}\left( k \right) =b

通过 GM(1,1) 模型相应的白化微分方程:
dx(1)dt+ax(1)=b \frac{\text{dx}^{\left( 1 \right)}}{dt}+ax^{\left( 1 \right)}=b

其中 a 表示发展系数,反映了x^(1)\hat{x}^{\left( 1 \right)}x^(0)\hat{x}^{\left( 0 \right)} 的发展态势; b 表示灰色作用量,或者内生控制灰数,是从行为序列中挖掘出来的数据,反映的是数据变化的关系,其确切内涵是灰的。

(4)计算 a、b
a^\hat{a} 为待估参数向量,令 a^=[ab]\hat{a}=\left[ \begin{array}{c} \text{a}\\ b\\ \end{array} \right],利用最小二乘法求解,可得:
a^=(BTB)1BTY \hat{a}=\left( B^TB \right) ^{-1}B^TY
其中B、Y 分别为
B=[z(1)(2)1z(1)(3)1z(1)(n)1],Y=[x(0)(2)x(0)(3)x(0)(n)] \text{B}=\left[ \begin{matrix} -z^{\left( 1 \right)}\left( 2 \right)& 1\\ -z^{\left( 1 \right)}\left( 3 \right)& 1\\ \vdots& \vdots\\ -z^{\left( 1 \right)}\left( n \right)& 1\\ \end{matrix} \right] \text{,Y}=\left[ \begin{array}{c} x^{\left( 0 \right)}\left( 2 \right)\\ x^{\left( 0 \right)}\left( 3 \right)\\ \vdots\\ x^{\left( 0 \right)}\left( \text{n} \right)\\ \end{array} \right]

(5)建立 GM(1,1) 的时间响应式,即预测模型
{x^(1)(k+1)=(x(0)(1)ba)eak+ba,k=1,2,nx^(0)(k+1)=x^(1)(k+1)x^(1)(k) \left\{ \begin{array}{l} \hat{x}^{\left( 1 \right)}\left( k+1 \right) =\left( x^{\left( 0 \right)}\left( 1 \right) -\frac{b}{a} \right) e^{-ak}+\frac{b}{a},\text{k}=1,2\cdots ,\text{n}\\ \\ \hat{x}^{\left( 0 \right)}\left( k+1 \right) =\hat{x}^{\left( 1 \right)}\left( k+1 \right) -\hat{x}^{\left( 1 \right)}\left( k \right)\\ \end{array} \right.

2.5 GM(1,1) 模型的检验

检验灰色预测模型效果主要包括三种方法:残差检验、关联度检验和后验差检验方法,以此来检验模型的准确性。

(1) 残差检验

按预测模型计算 x^(1)(k)\hat{x}^{\left( 1 \right)}\left( k \right),并将 x^(1)(i)\hat{x}^{\left( 1 \right)}\left( i \right)累减生成 x^(0)(k)\hat{x}^{\left( 0 \right)}\left( k \right),然后计算原始序列 x(0)(k)x^{\left( 0 \right)}\left( k \right)x^(0)(k)\hat{x}^{\left( 0 \right)}\left( k \right)的绝对误差序列即相对误差序列。

{残差:ε(k)=x(0)(k)x^(0)(k)相对误差:Δk=ε(k)x(0)(k)平均相对误差:Δ=1n1k=2nΔk \left\{ \begin{array}{l} \text{残差:}\varepsilon \left( k \right) =x^{\left( 0 \right)}\left( k \right) -\hat{x}^{\left( 0 \right)}\left( k \right)\\ \\ \text{相对误差:}\Delta _k=\frac{\left| \varepsilon \left( k \right) \right|}{x^{\left( 0 \right)}\left( k \right)}\\ \\ \text{平均相对误差:}\Delta =\frac{1}{n-1}\sum\limits_{k=2}^n{\Delta _k}\\ \end{array} \right.

若对相应序列残差有 Δk<10%\Delta _k<10\% ,则代表用 GM(1,1) 模型的模拟精度较高,若 Δk<20%\Delta _k<20\% 则代表用 GM(1,1) 模型的模拟精度一般。

GM(1,1) 模型建模精度:
p=(1Δ)×100% p=\left( 1-\varDelta \right) \times 100\%

(2)关联度检验法

绝对误差:
Δ(0)(k)=x(0)(k)x^(0)(k) \varDelta ^{\left( 0 \right)}\left( k \right) =\left| x^{\left( 0 \right)}\left( k \right) -\hat{x}^{\left( 0 \right)}\left( k \right) \right|

得出最大值、最小值

{Δmax(0)=maxΔ(0)(k)Δmin(0)=minΔ(0)(k) \left\{ \begin{array}{l} \varDelta _{\max}^{\left( 0 \right)}=\max \varDelta ^{\left( 0 \right)}\left( k \right)\\ \\ \varDelta _{\min}^{\left( 0 \right)}=\min \varDelta ^{\left( 0 \right)}\left( k \right)\\ \end{array} \right.
计算关联系数
η(k)=Δmax(0)+ρΔmin(0)Δ(0)(k)+ρΔmax(0)ρ=0.5k=1,2,,n \eta \left( k \right) =\frac{\varDelta ^{\left( 0 \right)}_{\max}+\rho \varDelta ^{\left( 0 \right)}_{\min}}{\varDelta ^{\left( 0 \right)}\left( k \right) +\rho \varDelta ^{\left( 0 \right)}_{\max}}\text{,}\rho =0.5\text{,}k=1,2,\cdots ,n
得出关联度
r=1nk=1nη(k) r=\frac{1}{n}\sum_{k=1}^n{\eta \left( k \right)}
根据经验,当 p =0.5 时,关联度 r >0.6 时可认为模型的预测效果较好。

(3)后验差检验
原始序列的均值
xˉ(0)=1nk=1nx(0)(k) \bar{x}^{\left( 0 \right)}=\frac{1}{n}\sum_{k=1}^n{x^{\left( 0 \right)}\left( k \right)}

计算的原始序列的标准差:
S1=[x(0)(k)xˉ(0)]2n1 S_1=\sqrt{\frac{\sum{\left[ x^{\left( 0 \right)}\left( k \right) -\bar{x}^{\left( 0 \right)} \right]}^2}{n-1}}

残差序列的均值:
Δ(0)=1nk=1n[x(0)(k)x^(0)(k)] \varDelta ^{\left( 0 \right)}=\frac{1}{n}\sum_{k=1}^n{\left[ x^{\left( 0 \right)}\left( k \right) -\hat{x}^{\left( 0 \right)}\left( k \right) \right]}
计算绝对误差序列的标准差:
S2=[Δ(0)(k)Δ(0)]2n1 S_2=\sqrt{\frac{\sum{\left[ \Delta ^{\left( 0 \right)}\left( k \right) -\Delta ^{\left( 0 \right)} \right]}^2}{n-1}}
计算后验差比值为::
C=S2S1 C=\frac{S_2}{S_1}
计算小误差概率:
P=p{Δ(0)(k)Δ(0)<0.6745S1} P=p\left\{ \left| \Delta ^{\left( 0 \right)}\left( k \right) -\Delta ^{\left( 0 \right)} \right|<0.6745S_1 \right\}

GM(1,1) 通常用后验差检验方法来评价预测结果的好坏,主要根据其中的后验差比值(C)和小误差概率(P)这两个数值来检验模型。根据 C 和 P 的大小可以将灰色模型的预测精度分为以下几个等级,如下表

后验差比值 C 小误差概率 P 预测精度等级
<0.35 >0.95 好(一级)
<0.50 >0.80 合格(二级)
<0.65 >0.70 勉强合格(三级)
>=0.65 <=0.65 不合格 (四级)

2.6 GM(1,1) 模型的适用范围

建立于灰色理论基础上的GM(1,1)模型具有所需样本量小,无需考虑数据分布规律,模型预测精度较高,且易于计算检验,决定了GM(1,1)模型被广泛的应用于经济生活各个领域。但这并非说明GM(1,1)模型应用具有随意性与其他任何数学模型相同GM(1,1)模型也有其适用范围,若超出其适用范围使用GM(1,1)模型往往很难得到满意的的结果。

GM(1,1)模型的参数与GM(1,1)模型适用性之间的关系得到如下结论

(1)当 -a ≤ 0.3时,GM(1,1)模型可用于中长期预测;

(2)当 0.3 < -a ≤ 0.5时,GM(1,1)模型可用于短期预测,中长期预测需谨慎;

(3)当 0.5 < -a ≤ 0.8时,用GM(1,1)模型作短期预测慎用;

(4)当 0.8 < -a ≤ 1.0时,需采用残差修正GM(1,1)模型;

(5)当 1 < -a 时,不宜使用GM(1,1)模型。

2.7 GM(1,1) 残差模型

当原始数据序列x(0)(k)x^{\left( 0 \right)}\left( k \right)建立的GM(1,1)模型检验不合格时,可以用GM(1,1)残差模型来修正。如果原始序列建立的GM(1,1)模型不够精确,也可以用GM(1,1)残差模型来提高精度。

若用原始序列 x(0)(k)x^{\left( 0 \right)}\left( k \right) 建立的GM(1,1)模型

x^(1)(k+1)=(x(0)(1)ba)eak+ba,k=1,2,n \hat{x}^{\left( 1 \right)}\left( k+1 \right) =\left( x^{\left( 0 \right)}\left( 1 \right) -\frac{b}{a} \right) e^{-ak}+\frac{b}{a},\text{k}=1,2\cdots ,\text{n}

可获得生成序列x(1)(k)x^{\left( 1 \right)}\left( k \right)的预测值,定义残差序列e(0)(k)=x(1)(k)x^(1)(k)e^{\left( 0 \right)}\left( k \right) =x^{\left( 1 \right)}\left( k \right) -\hat{x}^{\left( 1 \right)}\left( k \right)。则对应的残差序列为:e(0)(k)={e(0)(1),e(0)(2),,e(0)(n)}e^{\left( 0 \right)}\left( k \right) =\left\{ e^{\left( 0 \right)}\left( 1 \right) ,e^{\left( 0 \right)}\left( 2 \right) ,\cdots ,e^{\left( 0 \right)}\left( n \right) \right\}

计算其生成序列e(1)(k)e^{\left( 1 \right)}\left( k \right),并据此建立相应的GM(1,1)模型:

e^(1)(k+1)=(e(0)(1)beae)eak+beae,k=1,2,n \hat{e}^{\left( 1 \right)}\left( k+1 \right) =\left( e^{\left( 0 \right)}\left( 1 \right) -\frac{b_e}{a_e} \right) e^{-ak}+\frac{b_e}{a_e},\text{k}=1,2\cdots ,\text{n}
得修正模型
x^(1)(k+1)=(x(0)(1)ba)eak+ba+δ(ki)(ae)[e(0)(1)beae]eak \hat{x}^{\left( 1 \right)}\left( k+1 \right) =\left( x^{\left( 0 \right)}\left( 1 \right) -\frac{b}{a} \right) e^{-ak}+\frac{b}{a}+\delta \left( k-i \right) \left( -a_e \right) \left[ e^{\left( 0 \right)}\left( 1 \right) -\frac{b_e}{a_e} \right] e^{-ak}
其中
δ(ki)={1ki0k<i \delta \left( k-i \right) =\left\{ \begin{array}{l} 1\text{,}k\ge i\\ 0\text{,}k<i\\ \end{array} \right.

为修正系数。

应用此模型时要考虑:

(1)一般不是使用全部残差数据来建立模型,而只是利用了部分残差。

(2)修正模型所代表的是差分微分方程,其修正作用与δ(ki)\delta \left( k-i \right) 中的 i 的取值有关。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章