灰色預測模型(Gray Forecast Model)是通過少量的、不完全的信息,建立數學模型並做出預測的一種預測方法
灰色預測模型適用於小樣本,含有不確定性因素的系統
首先,假如給定一組數據
X1={x11,x12,x13…x1n},你需要預測x1(n+1)的值是多少
這裏可以使用灰度預測模型也就是GM(1,1)來進行預測
首先生成累加序列X2,
x21=x11,
x22=x11+x12
….
x2(n)=x11+x12+x13+…x1(n)
於是得到了一個新的序列X2
這裏還需要用到一個一次後減的公式,也就是∆x1i=x1(i)-x1(i-1)
現在我們假設累加序列X2符合一階常微分方程(這裏的一階指的是隻有一階導數,常微分指的是係數爲常數)
(dx2i)/(di) + a*x2i = u 公式(1.1)
其中的a和u分別稱爲發展灰數和內生控制灰數
當i=t0,的時候x2(i) = x2(t0)
因此可以得到一個公式
(dx2(t0))/(d(t0)) + a*x2(t0) = u 公式(1.2)
綜合1.1和1.2可以得到公式
x2(i) = [x2(t0) – (u/a)]*e^(-a*(i-t0)) +u/a//我也不知道是怎麼推導出來的
對導數部分(dx2(t0))/(d(t0))進行對等間隔取樣,並且將t0設置爲1,公式會變成
x2(k+1) = [x2(1) – (u/a)] *e^(-a*k) + u/a公式1.3//這裏的k=i-t0
接下來將x2(2),x2(3)…x2(n)帶入公式1.1,用差分代替微分,又因爲等間隔取樣,
∆t = (t+1)-t,故得到∆x2(2)/∆t = ∆x2(2) =x2(2)-x2(1) = x1(2)
類似的有∆x2(3)/∆t = ∆x2(3) = x2(2)-x2(1) = x1(2)
於是將以上公式帶入公式1.2有
x1(2) = [-x2(2),1]([a,u]T) //這裏的T爲矩陣轉置
x1(3) = [-x2(3),1]([a,u]T)
x1(4) = [-x2(4),1]([a,u]T)
。。。
x1(n) = [-x2(n),1]([a,u]T)
由於∆x2(i)/∆i涉及到累加列兩個項的值,因此x2(i)最好也變成兩個項的值,因此矩陣變爲
x1(2) = [-1/2*(x2(2)+x2(1)),1]([a,u]T) //這裏的T爲矩陣轉置
x1(3) = [-1/2*(x2(3)+x2(2)),1]([a,u]T)
x1(4) = [-1/2*(x2(4)+x2(3)),1]([a,u]T)
。。。
x1(n) = [-1/2*(x2(n)+x2(n-1)),1]([a,u]T)
這個矩陣的矩陣形式表示爲y=BU,其中U = ([a,u]T)
以上式子用最小二乘法估計a和u爲以下
將計算出來的a和u帶入公式1.3就能夠得到x2(n+1)的估計值,使用x2(n+1)的估計值就能夠得到x1(n+1)的預測值