本帖最后由 2336426014 于 2018-8-5 22:20 编辑
( i/ c: [3 c1 A% }( {8 e' K+ L" K$ j) Q1 |- ]
可以好不夸张的说灰色预测是所有新人爱用的,老生也爱用的,同时也是最基本的最简单的预测算法,原理简单的没话说。
3 X5 w7 N# p: N0 j' e6 ~# o" T5 _ 再说一下它的作用,虽然吧...这个东西原理很简单,但是耐不住人家适用范围广啊,效果虽然不是90%的准确率,但是59%的话差不多还是可以的。
; z1 j: o$ Y% K5 d0 [" M 但是我还是觉得有必要说一下这个东西,帮助那些第一次用的时候注意一些细节问题,比如范围和结果分析别一顿还夸...
+ U4 y5 D( N: L/ z 首先介绍一下灰色预测:: v/ ~% i% y5 m+ @, f, B2 s: u3 X
灰色系统理论认为:系统的行为现象尽管是朦胧的,数据是复杂的,但它毕竟是有序的,是有整体功能的。建立灰色预测模型之前,需要对原始时间序列进行数据处理,进过预处理的数据系列称为生成列。对原始数据进行预处理,不是寻求它的统计规律和概率分布,而是将杂乱无章的原始数据列通过一定的方法处理,变成有规律的时间序列数据,即以数找数的规律,再建立动态模型。灰色系统常用的数据处理方式有累加和累减,通常我们用累加。; ?5 M& M( l o W9 ^% O
灰色预测通过鉴别系统因素之间发展趋势的相异性,对原始数据进行生成处理来寻求事物的未来发展趋势。诸多的灰色模型中,以单序列一阶线性微分方程模型GM(1,1)模型最为常用。下面简要的介绍一下:
( t3 g" I k. P% _/ n+ Z (1)累加生成(AGO) 设原始数列为x(0)=(x0(1),x0(2),….x0(n)),令
! K3 P( H% ]# }$ E5 S* j x(1)(k)=∑i=1kx(0)(i),k=1,2,...,n 4 v8 L a" j3 x
x(1)=(x1(1),x1(2),….x1(n)) 5 L2 N0 r, ~3 S- f6 T% I* ?( i2 @
- K9 s; u; v2 Y9 B( R0 U+ p/ l* Y6 s
(2)建立微分方程模型 dx(1)(t)dt+ax(1)(t)=b 9 ?' A& b3 f2 q/ j' ~, k N
; g; F! m5 N6 O+ \" l! x! A
6 m* X" m/ I0 w2 `& w* l, W/ I(3)对累加生成数据做均值生成 B 与常数项 向量Y
(4)最小二乘法求解灰色参数
则令该参数为 c ,令k =t! S$ K; u" X# u' C: ]$ ~
c=[ab]=(BTB)−1BTY
9 ?/ Z& e& c# K& _, _( L+ M P7 a(5)参数代入微分方程,解得 x^(1)(k+1)=(x(0)(1)−ua)e−ak+ua,k=1,2,...,n−1 8 [/ {6 o6 o- t' V; ~
(6)对函数表达式进行离散将二者做差来还原原序列
, n1 ]2 A/ w5 E% m+ J x^(0)(k+1)=x^(1)(k+1)−x^(1)(k),k=1,2,...,n−1
! N& W0 X, p" j* q# d* ^: C5 n# w (7)对模型进行检验1.计算原序列与预测序列的残差 e 和相对误差 q! i1 j4 C4 S$ [1 S
2. 求原始序列的均值和方差S1
1 E5 s5 Y1 B) d4 ]7 |, G, {3.区域残差 e 的均值及方差S2% j9 ?4 u' _! o+ G
4.计算方差比 C=S2/S16 j0 F/ W3 V! R
5.求小误差概率 P
2 t( ^8 F% k+ p- r; Z3 t1 F6.精度检验表如下:
2 f) n8 s2 ~2 `/ h0 X+ @& r: |9 m7 _. _3 k* x
/ W9 v$ m d. x* _) Z# w) Q
* `8 w. L7 n9 U& P- I0 W
% F7 M( `2 S2 l0 c4 u C
0 ^- I4 I& H; i代码的话百度我也帮你们准备好了:* z4 H0 j( ^7 Y: O2 h+ ~
图片格式,自己抄去
4 ~% J5 ~: ]% n6 c; ]2 f/ Q0 D% b' ^& W
5 H! p( n4 K5 B6 a5 K: m
: @4 R$ Q; k0 ^/ ~7 y" G" ?- G1 Z: L0 t3 P
1 y$ K$ J; w. c6 b
/ I$ T; c+ D9 v- `
# j# @. v/ f9 ?; p/ ~" W& r' C
|