本帖最后由 2336426014 于 2018-8-5 22:20 编辑 0 u5 t2 ^+ L2 m3 R$ U, K3 c s
7 C1 Z3 b5 O$ W- h2 @1 { 可以好不夸张的说灰色预测是所有新人爱用的,老生也爱用的,同时也是最基本的最简单的预测算法,原理简单的没话说。+ h- ~1 Z) A& |( \
再说一下它的作用,虽然吧...这个东西原理很简单,但是耐不住人家适用范围广啊,效果虽然不是90%的准确率,但是59%的话差不多还是可以的。7 e0 v( o' |: [' f
但是我还是觉得有必要说一下这个东西,帮助那些第一次用的时候注意一些细节问题,比如范围和结果分析别一顿还夸...8 ]1 ^! n9 {' b$ C2 _; }. H
首先介绍一下灰色预测:
) } X4 |1 d' e4 P7 Q8 z% r' H: E 灰色系统理论认为:系统的行为现象尽管是朦胧的,数据是复杂的,但它毕竟是有序的,是有整体功能的。建立灰色预测模型之前,需要对原始时间序列进行数据处理,进过预处理的数据系列称为生成列。对原始数据进行预处理,不是寻求它的统计规律和概率分布,而是将杂乱无章的原始数据列通过一定的方法处理,变成有规律的时间序列数据,即以数找数的规律,再建立动态模型。灰色系统常用的数据处理方式有累加和累减,通常我们用累加。6 H! v |; l- Q' D! a3 p
灰色预测通过鉴别系统因素之间发展趋势的相异性,对原始数据进行生成处理来寻求事物的未来发展趋势。诸多的灰色模型中,以单序列一阶线性微分方程模型GM(1,1)模型最为常用。下面简要的介绍一下:1 [3 ~' \9 B; Q5 h, ~7 U
(1)累加生成(AGO) 设原始数列为x(0)=(x0(1),x0(2),….x0(n)),令 , a. D' L5 m) }! T4 o1 |
x(1)(k)=∑i=1kx(0)(i),k=1,2,...,n
! t/ H, [) {# j x(1)=(x1(1),x1(2),….x1(n))
9 R. @6 C% K: `/ H. o! `7 a' w2 S |- _' P( K" l5 Q! r: x
(2)建立微分方程模型 dx(1)(t)dt+ax(1)(t)=b ( o1 w! v1 j! T4 {9 b
4 i. B/ W( h! }
5 M" Y) v6 P* P# u8 I# D" Z$ Y+ N(3)对累加生成数据做均值生成 B 与常数项 向量Y
(4)最小二乘法求解灰色参数
则令该参数为 c ,令k =t
' n& a/ f' X+ e! d9 K) d c=[ab]=(BTB)−1BTY ; p" g! y( v4 ?# a* |: q
(5)参数代入微分方程,解得 x^(1)(k+1)=(x(0)(1)−ua)e−ak+ua,k=1,2,...,n−1
& ^' p* E+ R$ ^/ v$ S! N7 f(6)对函数表达式进行离散将二者做差来还原原序列. O- Y. d% ]2 j! U
x^(0)(k+1)=x^(1)(k+1)−x^(1)(k),k=1,2,...,n−1 ' X. k3 `5 @0 n
(7)对模型进行检验1.计算原序列与预测序列的残差 e 和相对误差 q* n$ T% }4 s! e$ ^0 _( p
2. 求原始序列的均值和方差S1( c& n- }( q; Q" x4 {/ K: d' a
3.区域残差 e 的均值及方差S2/ M n6 I I6 g, A4 m
4.计算方差比 C=S2/S1
4 C2 W" k; N( e3 p5.求小误差概率 P
3 B* C) N8 M; j/ C! m' v6.精度检验表如下:
W: N U, B) ?2 ~# {: M8 t% P
) F% [" z! s; V, W) O9 D- o1 a. [( m9 l
1 R/ Y- @5 j% R: Q
- F: i/ N2 k7 n: X; z! [3 J" e+ [0 g2 Z# q
代码的话百度我也帮你们准备好了:
4 I8 v4 A, M/ o+ `- s& i' Q图片格式,自己抄去
% ^) [) Q& L, Y7 v
( \, W2 C3 p J* U/ |( W
5 |9 o8 Y+ B8 D- @1 a1 q1 A. k
/ [8 \" Q" e( f3 u7 O3 t+ {" t7 n% R @
0 P' j! B( b: \# ~
: H- B4 @% s% q6 ^* U9 b: w |