灰度预测模型

常用的预测方法(如回归分析),需要较大的样本,如果样本较小,常造成较大的误差,使预测目标失效。灰度预测模型(Gray Forecast Model)是通过利用少量的、不完全的信息,建立数学模型并做出预测的一种预测方法。本文将对这种预测模型进行详细介绍。由于部分公式书写麻烦,本文直接插入了公式图片。

1. 灰度系统理论

灰度系统理论是由华中理工大学邓聚龙教授于1982年提出并发展而成的解决灰色系统的理论和方法,该方法将一般的系统论、信息论和控制论的观点与数学方法结合在一起。首先看一下灰度理论中的几个概念。

1.1 灰度系统

灰度系统是指“部分信息已知,部分未知”的“小样本”,“贫信息”的不确定性系统。系统中各因素间有不确定的关系。
作为两个极端,如果系统中信息完全确定,则成为白色系统;相反,信息完全不确定的系统为黑色系统,只能通过它与外界的联系来加以观测研究。区别白色和黑色系统的重要标志是系统中各因素之间是否具有确定关系。

1.2 灰度系统的特点

灰色系统可以充分利用已知信息寻求系统的运动规律,使用灰色数学处理不确定量,使之量化,因此,灰色系统理论能够处理贫信息或小样本的系统。

2. 灰色预测方法

灰度预测法是对灰色系统进行预测的方法。通过关联分析和数据处理来寻找系统变动的规律,生成有较强规律性的数据序列。然后用来预测两种不同的目标,一种是预测某时刻的特征量来预测未来发展趋势。另一种是固定特征量阈值,通过分析特征量出现时刻的规律,预测未来达到阈值的时间点。

2.1 灰色预测类型

(1) 数列预测。用观察到的反映预测对象特征的时间序列构造灰色预测模型,预测未来某一时刻的特征量,或达到某一特征量的时间。
(2) 灾变或异常值预测。利用灰度模型预测异常值出现的特定时间。
(3) 季节灾变或异常值预测。预测灾变或异常值发生在一年内哪个时间区间或季节内。
(4) 拓扑预测。将原始数据做曲线,在曲线上按照阈值寻找发生的所有时间点,并以该时间点构成的序列构建预测模型,建立模型预测该阈值的时间点。
(5) 系统预测。 通过对系统行为特征指标建立一组相关联的灰度预测模型,预测系统中众多变量间的相互协调关系的变化。


下面我们对具体的集中预测模型进行介绍。

3. GM(1,1)模型

3.1 数据/数列生成

我们获取到的未作处理的数据被称为原始数列,按照某种要求经过处理后生成的数列为生成数列,我们可以从中发现原始数列中没有表现出的内在规律。
常用的数据处理方法有累加生成、累减生成、均值生成。
(1) 累加生成
通过依次累加某时刻之前的数据得到新的数列,记为AGO(Accumulating Ceneration Operator)。
设x^(0)为原始序列,既有
![][1]
[1]: http://latex.codecogs.com/svg.latex?$x{(0)}=[x{(0)}(1),x{(0)}(2),...,x{(0)}(n)]$
按照下列公式生成新的累加数列:
![][2]
[2]: http://latex.codecogs.com/svg.latex?$x{(1)}(k)=\sum_{i=1}{k}x^{(0)}(i);k=1,2,...,n$
则称x(1)为x(0)的一次累加生成数列:
![][3]
[3]: http://latex.codecogs.com/svg.latex?$x{(1)}=[x{(1)}(1),x{(1)}(2),...,x{(1)}(n)]$
类似的有r次累加生成:
![][4]
[4]: http://latex.codecogs.com/svg.latex?$x{(r)}(k)=\sum_{i=1}{k}x^{(r-1)}(i);k=1,2,...,n$
(2)累减生成
对原始数列的数据依次作前后两个数据相减的运算,记为IAGO(Inverse Accumulating Ceneration Operator)。累减生成可以将累加生成序列还原成非生成序列。
我们设x^(1)为原始序列,则有
![][5]
[5]: http://latex.codecogs.com/svg.latex?$x{(1)}=[x{(1)}(1),x{(1)}(2),...,x{(1)}(n)]$
如果令:
![][6]
[6]: http://latex.codecogs.com/svg.latex?$x{(0)}(k)=x{(1)}(k)-x^{(1)}(k-1)$
则可生成一次累减序列x^(0):
![][7]
[7]: http://latex.codecogs.com/svg.latex?$x{(0)}=[x{(0)}(1),x{(0)}(2),...,x{(0)}(n)]$
更一般地,有:
![][8]
[8]: http://latex.codecogs.com/svg.latex?$x{(r-1)}(k)=x{(r)}(k)-x^{(r)}(k-1)$
均值生成序列分为邻均值生成和非邻均值生成两种,就暂时不在本文详细介绍了,以后再补充。

3.2模型建立

给定观测数据序列
![][9]
[9]: http://latex.codecogs.com/svg.latex?$x{(0)}=[x{(0)}(1),x{(0)}(2),...,x{(0)}(n)]$
经过一次累加后,得到序列:
![][10]
[10]: http://latex.codecogs.com/svg.latex?$x{(1)}=[x{(1)}(1),x{(1)}(2),...,x{(1)}(n)]$
设x^(1)满足一阶常微分方程
![][11]
[11]: http://latex.codecogs.com/svg.latex?${dx{(1)}}/{dt}+ax{(1)}=u$
其中a是发展灰数或发展系数,u为内生控制灰数或灰作用量,是对系统的常定输入。该方程满足当初始条件为:
![][12]
[12]: http://latex.codecogs.com/svg.latex?$when:t=t_{0},x{(1)}=x{(1)}(t_0)$
则有解为:
![][13]
[13]: http://latex.codecogs.com/svg.latex?$x{(1)}(t)=[x{(1)}(t_0)-u/a]e^{-a(t-t_0)}+u/a$
对等间距取样的离散值,则有
![][19]
[19]: http://latex.codecogs.com/svg.latex?$when:t_0=1\\x{(1)}(k+1)=[x{(1)}(1)-u/a]e^{-ak}+u/a$
由于x(1)对t求导涉及x(1)的两个时刻值,因此,x^(1)(i)取前后两个时刻的平均代替更合理。即有:
![][14]
[14]: http://latex.codecogs.com/svg.latex?$1/2[x{(r)}(i)+x{(r)}(i-1)],(i=2,3,...,N)$
写成矩阵表达的形式为:
![][15]
[15]: http://latex.codecogs.com/svg.latex?$\begin{bmatrix}x{(0)}(2)\x{(0)}(3)\...\x{(0)}(N)\end{bmatrix}=\begin{bmatrix}-1/2[x{(1)}(2)+x{(1)}(1)]&1\-1/2[x{(1)}(3)+x{(1)}(2)]&1\...\-1/2[x{(1)}(N)+x^{(1)}(N-1)]&1\end{bmatrix}\begin{bmatrix}a\u\end{bmatrix}$
如果用符号代表上式的向量或矩阵,则有
![][16]
[16]: http://latex.codecogs.com/svg.latex?$y=BU$
其中,
![][17]
[17]: http://latex.codecogs.com/svg.latex?$U=[a,u]{T}\\y=[x{(0)}(2),x{(0)}(3),...,x{(0)}(N)]{T}\\B=\begin{bmatrix}-1/2[x{(1)}(2)+x{(1)}(1)]&1\-1/2[x{(1)}(3)+x{(1)}(2)]&1\...\-1/2[x{(1)}(N)+x^{(1)}(N-1)]&1\end{bmatrix}$
利用最小二乘法估计上式,可得:
![][18]
[18]: http://latex.codecogs.com/svg.latex?\hat{U}=\begin{bmatrix}\hat{a}\\hat{u}\end{bmatrix}=(B{T}B){-1}B^{T}y
将上式得到的估计值a和u带入求离散解的公式,得到时间响应方程
![][20]
[20]: http://latex.codecogs.com/svg.latex?\hat{x{(1)}}(k+1)=[x{(1)}(1)-\frac{\hat{u}}{\hat{a}}]e^{-\hat{a}k}+\frac{\hat{u}}{\hat{a}}
当k=1,2,...,N-1时,由上式计算得到的结果是拟合值,当k>=N时,结果为预测值。这是相对于一次累加序列的拟合值,用后减运算还原,就可得原始序列的拟合值和预测值。

3.3 精度检验

(1) 残差检验:预测得到的一次累加序列进行累减计算,得到原始序列估计值,再计算其与原始序列的绝对残差序列和相对残差序列。
残差:
![][21]
[21]: http://latex.codecogs.com/svg.latex?E(k)=x{(0)}(k)-\hat{x{(0)}}(k),k=2,3,...N;
相对残差:
![][22]
[22]: http://latex.codecogs.com/svg.latex?e(k)=[x{(0)}(k)-\hat{x{(0)}}(k)]/x^{(0)}(k),k=2,3,...N;
(2) 后验差检验:分别计算
原始序列x^(0)的均值:
![][23]
[23]: http://latex.codecogs.com/svg.latex?\bar{X}=\frac{1}{N}\sum_{k=1}{N}x{(0)}(k)
原始序列x^(0)的方差:
![][24]
[24]: http://latex.codecogs.com/svg.latex?S_1=\sqrt{\frac{1}{N}\sum_{k=1}{N}[x{(0)}(k)-\bar{X}]^2}
残差的均值:
![][25]
[25]: http://latex.codecogs.com/svg.latex?\bar{E}=\frac{1}{N-1}\sum_{k=2}^{N}E(k)
残差的方差:
![][26]
[26]: http://latex.codecogs.com/svg.latex?S_2=\sqrt{\frac{1}{N-1}\sum_{k=2}{N}[E(k)-\bar{E}]2}
后验差比值:
![][27]
[27]: http://latex.codecogs.com/svg.latex?C=\frac{S_2}{S_1}
小误差概率:
![][28]
[28]: http://latex.codecogs.com/svg.latex?P=P{|E(k)-\bar{E}|<0.6745S_1}
对比精度等级对照表,如下表所示。
![][29]
[29]: http://latex.codecogs.com/svg.latex?\begin{array}{c|lcr}level&\text{P}&\text{C}&\text{Level}\\hline1&{\textgreater0.95}&{\textless0.35}&Good\2&{\textgreater0.80}&{\textless0.45}&Qualified\3&{\textgreater0.70}&{\textless0.5}&Barely-passing\4&\leq0.70&\geq0.65&Unqualified\end{array}
评价模型的指标C越小越好,P越大越好,一般按照Max{P的level,C的level}来确定模型的精度级别。
(3) 关联度检验
关联度分析时根据因素之间发展态势的相似或相异程度,分析事物动态关联的特征和程度。后期再作补充。


由于灰度预测模型是给予一阶常微分方程建立的,故被称为一阶一元灰色模型,记为GM(1,1)。特别注意,原始数据中如果有负数,需要先进行“数据整体提升”处理,再做一次累加,避免累加时正负抵消。


4. GM(1,1)残差模型

如果用原始时间序列建立的GM(1,1)模型检验不合格或精度不理想时,要对建立的模型进行残差修正,可以提高模型的预测精度。
我们设
![][30]
[30]: http://latex.codecogs.com/svg.latex?\varepsilon{(0)}=(\varepsilon{(0)}(1),\varepsilon{(0)}(2),...,\varepsilon{(0)}(n))
其中,我们称
![][31]
[31]: http://latex.codecogs.com/svg.latex?\varepsilon(k)=x{(0)}(k)-\hat{x}{(1)}(k)
为X^(1)的残差序列。若存在k0满足如下条件
![][32]
[32]: http://latex.codecogs.com/svg.latex?1.\forall{k}\gek_0,\varepsilon^{(0)}(k)\textless0or*\varepsilon^{(0)}\textgreater0;\\****2.when:n-k_0\ge4;
则称
![][33]
[33]: http://latex.codecogs.com/svg.latex?(|\varepsilon{(0)}(k_0)|,|\varepsilon{(0)}(k_0+1)|,...,|\varepsilon^{(0)}(n)|)
为可建模残差尾段,仍记为
![][34]
[34]: http://latex.codecogs.com/svg.latex?(\varepsilon{(0)}(k_0),\varepsilon{(0)}(k_0+1),...,\varepsilon^{(0)}(n))
对其进行一次累加,得到序列
![][35]
[35]: http://latex.codecogs.com/svg.latex?(\varepsilon{(1)}(k_0),\varepsilon{(1)}(k_0+1),...,\varepsilon^{(1)}(n))
利用GM(1,1)建模后的时间响应式为:
![][36]
[36]: http://latex.codecogs.com/svg.latex?\varepsilon{(1)}(k+1)=(\varepsilon{(0)}(k_0)-\frac{\hat{u}}{\hat{a}})e^{[-a(k-k_0)]}+\frac{\hat{u}}{\hat{a}},{k}\ge{k_{0}}
则残差尾段的模拟序列为:
![][37]
[37]: http://latex.codecogs.com/svg.latex?\hat{\varepsilon}{(0)}=(\hat{\varepsilon}{(0)}(k_0),\hat{\varepsilon}{(0)}(k_0+1),...,\hat{\varepsilon}{(0)}(n))
其中
![][39]
[39]: http://latex.codecogs.com/svg.latex?\hat{\varepsilon}{(0)}(k+1)=-\hat{a}(\hat{\varepsilon}{(0)}(k_0)-\frac{\hat{u}}{\hat{a}})e^{[-\hat{a}(k-k_0)]},k\ge{k_0}
如果用上式修正X^(1),则称修正后的时间响应式为
![][38]
[38]: http://latex.codecogs.com/svg.latex?\hat{\varepsilon}{(1)}(k+1)=\left{\begin{array}{ll}(x{(0)}(1)-\frac{u}{a})e{-ak}+\frac{u}{a},k\textless{k_0};(1)\\(x{(0)}(1)-\frac{u}{a})e{-ak}+\frac{u}{a}\pm\hat{a}(\varepsilon{(0)}(k_0)-\frac{\hat{u}}{\hat{a}})e^{[-\hat{a}(k-k_0)]},k\ge{k_0};(2)\end{array}\right.
因此为残差修正GM(1,1)模型,简称残差GM(1,1)

5. GM(n,h)模型

GM(n,h)模型是微分方程模型,可用于对描述对象做长期、连续、动态的反映。从原则上讲,某一灰色系统无论内部机制如何,只要能将系统原始数据表示为原始时间序列,并保证值非负,则可用GM模型对系统表示和预测。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,835评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,598评论 1 295
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,569评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,159评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,533评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,710评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,923评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,674评论 0 203
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,421评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,622评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,115评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,428评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,114评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,097评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,875评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,753评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,649评论 2 271

推荐阅读更多精彩内容