灰色預測 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 的取值有關。

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