本帖最后由 2336426014 于 2018-8-5 22:20 编辑
; h: p8 |) ?/ Y& E$ s2 k2 p* z
可以好不夸张的说灰色预测是所有新人爱用的,老生也爱用的,同时也是最基本的最简单的预测算法,原理简单的没话说。
9 k& `, Z4 v( g6 \" `8 F. t 再说一下它的作用,虽然吧...这个东西原理很简单,但是耐不住人家适用范围广啊,效果虽然不是90%的准确率,但是59%的话差不多还是可以的。, z, Y3 T3 _( r2 z. u4 z
但是我还是觉得有必要说一下这个东西,帮助那些第一次用的时候注意一些细节问题,比如范围和结果分析别一顿还夸...
- `' `: j. Q3 T 首先介绍一下灰色预测:
4 w' M% D z) ]- n 灰色系统理论认为:系统的行为现象尽管是朦胧的,数据是复杂的,但它毕竟是有序的,是有整体功能的。建立灰色预测模型之前,需要对原始时间序列进行数据处理,进过预处理的数据系列称为生成列。对原始数据进行预处理,不是寻求它的统计规律和概率分布,而是将杂乱无章的原始数据列通过一定的方法处理,变成有规律的时间序列数据,即以数找数的规律,再建立动态模型。灰色系统常用的数据处理方式有累加和累减,通常我们用累加。
6 d# d/ a$ }# k+ o: x( i% a* } 灰色预测通过鉴别系统因素之间发展趋势的相异性,对原始数据进行生成处理来寻求事物的未来发展趋势。诸多的灰色模型中,以单序列一阶线性微分方程模型GM(1,1)模型最为常用。下面简要的介绍一下:
" D: s4 O2 t r; ]4 z8 d0 P; E0 w q (1)累加生成(AGO) 设原始数列为x(0)=(x0(1),x0(2),….x0(n)),令
4 H) U! k3 d% q8 F/ h+ x8 E, q x(1)(k)=∑i=1kx(0)(i),k=1,2,...,n
2 v6 u2 U: I, I0 O6 e x(1)=(x1(1),x1(2),….x1(n)) * ?. l$ a5 J M9 C: I
5 M+ P+ ~% B- z) t5 i
(2)建立微分方程模型 dx(1)(t)dt+ax(1)(t)=b 6 p; \9 W% F; d8 ^7 v
! x* \0 t2 |1 G: i7 |( M
! \; n; s% Q5 {. R- _; ]* c; v; c' y
(3)对累加生成数据做均值生成 B 与常数项 向量Y
(4)最小二乘法求解灰色参数
则令该参数为 c ,令k =t
) z; k/ G/ V4 ]# v7 a c=[ab]=(BTB)−1BTY : N6 g% p9 M3 w4 s% }. U
(5)参数代入微分方程,解得 x^(1)(k+1)=(x(0)(1)−ua)e−ak+ua,k=1,2,...,n−1 9 _) y, v: m5 {+ R& W m
(6)对函数表达式进行离散将二者做差来还原原序列
* M# C; y9 V& W$ o! R" ^' {0 w x^(0)(k+1)=x^(1)(k+1)−x^(1)(k),k=1,2,...,n−1
5 n8 p# p5 J$ ~" w! W. X* m( y (7)对模型进行检验1.计算原序列与预测序列的残差 e 和相对误差 q' P5 c9 s/ M8 l+ U
2. 求原始序列的均值和方差S1! k5 D V! r! i% p3 @
3.区域残差 e 的均值及方差S28 C2 z# l+ j7 ?5 Q
4.计算方差比 C=S2/S1
9 s" _$ ^% |+ a+ p! m- H. `# i- V5.求小误差概率 P- U5 w9 j) T* q- @% K5 U# v
6.精度检验表如下:
, o) t2 s5 E) v6 V
; @ {5 ~3 i0 Y N2 i% {! E* n2 N: C7 _0 @( Y* s+ g4 @
9 G; J, H3 l' }' t" }7 q4 [. L' z7 s. o7 t/ a# [) s7 x
! } s3 }0 M& I* E0 Z* t& f代码的话百度我也帮你们准备好了:0 P4 h7 m m: Q! i
图片格式,自己抄去' G2 P6 u" D+ _' {' e
- B4 H+ v& w5 P( U/ e/ g8 l. W, N
1 K1 \* f& W* y0 q& [
: S4 P& Y* O6 Q- s' V. M
6 u! |, q& T+ ~! R7 M' y; E8 ?) L1 R5 m$ w9 x7 [" e1 n
' a A: T8 M+ K, @4 P
|