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

1.灰色预测模型

在数据分析领域,人们根据数据系统的特点将数据系统分为白色系统,黑色系统和灰色系统。白色系统是说系统内部特征清楚明了,信息完全透明,黑色系统意味着外界对系统内部完全不了解,只能通过外界的联系加以观察研究,灰色系统介于黑白之间,信息属于半透明状态,只有一部分信息是已知的且系统内各因素间有不确定的关系。

灰色预测法是一种预测灰色系统的方法。通过鉴别系统因素之间(即:模型参数之间)发展趋势的相异程度,进行关联分析,对原始数据进行生成处理来寻找系统变动的规律,生成有较强规律性的数据序列,然后建立相应的微分方程模型,从而预测事物未来发展趋势的状况。

世界万物,错综复杂,很少有从里到外都明白无误的规律。然而尽管如此,每种事物都有又展现出自己独有的功能。这就意味着肯定存在某种内在因素和规律来促使着中功能的展现。通过什么方式去发现它们才是问题的关键。灰色系统是通过对原始数据的整理来寻找这种内在规律和因素;也就是通过对原始数据的生成处理,产生具有规律性的数据序列,即生成灰色序列。灰色序列就是寻找事物内部规律的关键。灰色序列通过某种生成弱化其自身随机性,显现其规律性。数据生成的常用方式有累加生成、累减生成和加权累加生成。在灰色预测模型里,这三种方法都用得到。

灰色生成数列:

原始数组:

x^{^{(0)}}=(x^{^{(0)}}(1),x^{^{(0)}}(2),......x^{^{(0)}}(n))

1次累加原始数组

x^{1}(k)=\sum_{i=1}^{k}x^{0}(i)             k=1,2,3.....n

带有x^{1} =(x^{1}(1),x^{1}(2),......x^{1}(n))

加权邻值生成:

原始数列:

x^{1} =(x^{1}(1),x^{1}(2),......x^{1}(n))

称任意一对相邻元素x^{1}(k),x^{1}(k-1)互为相邻值。对于常数\alpha \in [0,1]

z^{1}(k)=\alpha x^{1}(k)+(1-\alpha )x^{1}(k-1)  k=2,3,4,5...n

由此得到的数列成为邻值生成数列\alpha也成为生成系数。特别是,当生成系数\alpha=0.5时,则称该数列为均值生成数,也称为等权邻值生成数。

灰色模型时利用离散随机数经过生成变为随机性被显著削弱而规律性加强的生成数,建立起的微分方程形式的模型,这样便于对其变化过程进行研究和描述

灰色模型GM(1,1)

对于导数的定义:

\frac{dx}{dt} = \lim_{\Delta t\rightarrow 0}\frac{x(t+\Delta t)}{\Delta t} 当\Delta t很小,且取的很小的1单位时,(例如,假如t为时间单位,1单位就是1皮淼),上式可以近似地表示为:\frac{\Delta x}{\Delta t}=x(t+1)-x(t)离散化为:

\Delta x=x(k+1)-x(k)

继续吧上面的式子转换到1次数据累加:

\Delta ^{(1)}(x^{(1)}(k+1))=x^{1}(k+1)-x^{1}(k)=\sum_{i=1}^{k+1}x^{0}(i)-\sum_{i=1}^{k}x^{0}(i)=x^{0}(k+1)

根据上面式子引导我们定义x(1)的灰导数:

d(k)=\Delta ^{(1)}x^{1}(k)=x^{0}(k)=x^{1}(k)-x^{1}(k-1)

定义

z^{(1)}(k)=\alpha x^{(1)}(k)+(1-\alpha )x^{(1)}(k-1)

为数列x^{(1)}的邻值生成数列。其中\alpha是 x^{(1)}(k)的权重(通常是0.5)有了灰导数和临值生成数列我们可以定义GM(1,1

的灰微分方程模型:

x^{(0)}(k)+az^{(1)}(k)=b

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

k\in \left \{ 2,....,n \right \}

\begin{Bmatrix} x^{(0)}(2) +\alpha z^{(1)}(2)&=b \\ x^{(0)}(3) +\alpha z^{(1)}(3)&=b& \\ ......& \\ x^{(0)}(n) +\alpha z^{(1)}(n)&=b \end{Bmatrix}

引入矩阵向量记号

\mu =\begin{bmatrix} a\\ b \end{bmatrix}   Y=\begin{bmatrix} X^{(0)}(2)\\ X^{(0)}(3)\\ ...\\ X^{(0)}(n) \end{bmatrix}   B=\begin{bmatrix} -Z^{(1)}(2) & 1 \\ -Z^{(1)}(3) & 1 \\ ...... \\ -Z^{(1)}(n) & 1 \end{bmatrix}

于是GM(1,1)模型可表示为Y=BU,那么现在的问题就是求a和b的值,可以用一元线性回归

\mu =\begin{bmatrix} a\\ b \end{bmatrix} =(B^{T}B)^{-1}(B^{T}B)^{-1}B^{T}Y   求出系数a,b

GM(1,1)的白化型:

对于GM(1,1)的灰微分方程,如果将k=2,3,...n视为连续变量t则之前的x^{(1)}视为时间t的函数,于是灰导数x^{(0)}(k)变为连续函数的导数dx^{(1)}(t)/dt,白化背景值z^{(1)}(k)对应于x^{(1)}(t)于是GM(1,1)的灰微分方程对应的白微分方程为:

\frac{dx^{(1)}(t)}{dt}+ax^{(1)}(t)=b

灰色预测的步骤

1)数据的检验与处理

为了保证GM(1,1)建模的可行性,需要对已知数据做必要的检验处理,原始数据

x^{^{(0)}}=(x^{^{(0)}}(1),x^{^{(0)}}(2),......x^{^{(0)}}(n))

计算数列的级比:

\lambda (k)=\frac{x^{(0)}(k-1)}{x^{(0)}(k)}

如果所有的级比\lambda (k)\in (exp(\frac{-2}{n+1}),exp(\frac{2}{n+1}))那么可以说该序列可进行灰色预测,如果级比不满足这个关系,需要进行一定的数据处理,最常用的是平移处理:

y^{(0)}(k)=x^{(0)}(k)+c  k=1,2,....n

调节常量c,使数据都落到级比范围内

2)建立GM(1,1)模型

原数据:x^{^{(0)}}=(x^{^{(0)}}(1),x^{^{(0)}}(2),......x^{^{(0)}}(n))

建立灰色模型GM(1,1):

x^{(0)}(k)+az^{(1)}(k)=b

利用回归分析确定a,b借助于两个常量系数,确定白化模型:

\frac{dx^{(1)}(t)}{dt}+ax^{(1)}(t)=b

求解得:

x^{(1)}(t)=(x^{(0)}(1)-\frac{b}{a})e^{-a(t-1)}+\frac{b}{a}

令t=k+1 得到一次累加预测值

\hat{x} ^{(1)}(k+1)=(x^{(0)}(1)-\frac{b}{a})e^{-a(k)}+\frac{b}{a}

根据灰导数或者累减生成,还原到原数据

\hat{x} ^{(0)}(k+1)=\hat{x} ^{(1)}(k+1)-\hat{x} ^{(1)}(k)

 

 

 

你可能感兴趣的:(GM(1,1)灰色预测模型)