本帖最后由 2336426014 于 2018-8-5 22:20 编辑
+ u) u; J+ ^4 ^0 K5 E3 P6 T7 G0 r) D& K& K. B% r& M
可以好不夸张的说灰色预测是所有新人爱用的,老生也爱用的,同时也是最基本的最简单的预测算法,原理简单的没话说。* l8 q) j. w; p: L$ a( s7 L
再说一下它的作用,虽然吧...这个东西原理很简单,但是耐不住人家适用范围广啊,效果虽然不是90%的准确率,但是59%的话差不多还是可以的。
9 J" |' x4 W' N! |$ V3 R2 ~ 但是我还是觉得有必要说一下这个东西,帮助那些第一次用的时候注意一些细节问题,比如范围和结果分析别一顿还夸...: F' \7 B' L: W, F$ _5 F- `# L3 L
首先介绍一下灰色预测:. U5 T% \2 ~, J: f4 ?
灰色系统理论认为:系统的行为现象尽管是朦胧的,数据是复杂的,但它毕竟是有序的,是有整体功能的。建立灰色预测模型之前,需要对原始时间序列进行数据处理,进过预处理的数据系列称为生成列。对原始数据进行预处理,不是寻求它的统计规律和概率分布,而是将杂乱无章的原始数据列通过一定的方法处理,变成有规律的时间序列数据,即以数找数的规律,再建立动态模型。灰色系统常用的数据处理方式有累加和累减,通常我们用累加。
4 U3 H8 I2 [7 W9 N. H 灰色预测通过鉴别系统因素之间发展趋势的相异性,对原始数据进行生成处理来寻求事物的未来发展趋势。诸多的灰色模型中,以单序列一阶线性微分方程模型GM(1,1)模型最为常用。下面简要的介绍一下:$ G) `$ w2 b: C: C# n' I
(1)累加生成(AGO) 设原始数列为x(0)=(x0(1),x0(2),….x0(n)),令 7 ]' P, ~8 [& q, Z( s5 O* _
x(1)(k)=∑i=1kx(0)(i),k=1,2,...,n
8 E5 z1 Q3 O* K! e: t" Z9 \* e x(1)=(x1(1),x1(2),….x1(n)) # Y# _2 l* K3 g4 i4 [/ ?* ^
+ Z8 ~' h0 @2 |* a6 q
(2)建立微分方程模型 dx(1)(t)dt+ax(1)(t)=b 4 ^* F% W3 z% q7 t n2 A
6 w) W, N- h/ ]" x( t; v6 ]
! @: m% A: J' m# `) {(3)对累加生成数据做均值生成 B 与常数项 向量Y
(4)最小二乘法求解灰色参数
则令该参数为 c ,令k =t
+ p& ~: c6 {7 h' S. j c=[ab]=(BTB)−1BTY 8 Q3 x5 { Q8 Z0 W2 |8 r
(5)参数代入微分方程,解得 x^(1)(k+1)=(x(0)(1)−ua)e−ak+ua,k=1,2,...,n−1
# ~, \+ t2 S* B(6)对函数表达式进行离散将二者做差来还原原序列8 N! O2 B6 }! t+ W; P
x^(0)(k+1)=x^(1)(k+1)−x^(1)(k),k=1,2,...,n−1
+ P+ _# T% E$ k0 \6 F. K2 z (7)对模型进行检验1.计算原序列与预测序列的残差 e 和相对误差 q" C, H6 O( d5 O- @
2. 求原始序列的均值和方差S14 n9 X& \$ e3 c( @3 u
3.区域残差 e 的均值及方差S2
4 w# j5 Q; a4 d/ [( J0 H$ Z4.计算方差比 C=S2/S1
2 G9 a- T! r1 T7 z d3 h7 v5.求小误差概率 P
$ @! _5 R" T. X) w: }! r, C6.精度检验表如下:% _: i1 e1 y/ e8 c& b% W- v8 \
! b, ?8 s2 V9 [" T- c
2 ^8 J- f2 S# j
# m- \% E. F) k- Y0 f
1 E9 o7 T. f+ x( S
' [' v3 L* O7 |: n. d代码的话百度我也帮你们准备好了:' h0 z3 i+ N) n4 X
图片格式,自己抄去
0 b! Z( i" B$ p$ ]. R/ B1 ]0 G
" U/ G) X9 `# ]. {3 [ G
9 V% l4 g1 j! I" _) W
/ Q7 d- h# c7 S* t% h" ^# \3 P8 W* y, c0 c8 m* A
' d3 }1 y% [ V1 e$ u1 ]/ F- L9 y
/ \* Y9 `4 j2 K. [) G
|