灰色预测模型(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)的预测值
来源:CSDN
作者:BoomHusky
链接:https://blog.csdn.net/u012737193/article/details/79866224