本帖最后由 2336426014 于 2018-8-5 22:20 编辑
5 J$ s+ T- ?0 W0 p# T8 }3 Y0 B+ O9 c: y# Z' S$ ?6 _
可以好不夸张的说灰色预测是所有新人爱用的,老生也爱用的,同时也是最基本的最简单的预测算法,原理简单的没话说。6 B7 H/ u5 \. {" i1 O# E
再说一下它的作用,虽然吧...这个东西原理很简单,但是耐不住人家适用范围广啊,效果虽然不是90%的准确率,但是59%的话差不多还是可以的。
6 s& Q3 n' @+ S- g- F 但是我还是觉得有必要说一下这个东西,帮助那些第一次用的时候注意一些细节问题,比如范围和结果分析别一顿还夸...
: L" U6 ~8 j' |4 K8 a3 ^ 首先介绍一下灰色预测:" G( E3 Q. O p8 Q" Y9 m% m V3 ]8 w- x
灰色系统理论认为:系统的行为现象尽管是朦胧的,数据是复杂的,但它毕竟是有序的,是有整体功能的。建立灰色预测模型之前,需要对原始时间序列进行数据处理,进过预处理的数据系列称为生成列。对原始数据进行预处理,不是寻求它的统计规律和概率分布,而是将杂乱无章的原始数据列通过一定的方法处理,变成有规律的时间序列数据,即以数找数的规律,再建立动态模型。灰色系统常用的数据处理方式有累加和累减,通常我们用累加。
: x( P5 u& @5 g: O/ x' v 灰色预测通过鉴别系统因素之间发展趋势的相异性,对原始数据进行生成处理来寻求事物的未来发展趋势。诸多的灰色模型中,以单序列一阶线性微分方程模型GM(1,1)模型最为常用。下面简要的介绍一下:& ^ s: X2 V) j, q
(1)累加生成(AGO) 设原始数列为x(0)=(x0(1),x0(2),….x0(n)),令 o; B/ R- f+ H+ p5 a z: ?
x(1)(k)=∑i=1kx(0)(i),k=1,2,...,n
w; [1 L) k8 ]3 L! h& M1 N x(1)=(x1(1),x1(2),….x1(n))
; m' p1 l. F5 ]& n6 R6 ~' J4 x4 Q# X$ S
(2)建立微分方程模型 dx(1)(t)dt+ax(1)(t)=b
8 l/ ?9 w0 E. c6 {
0 |. ^3 Z V0 \ ^" b+ d5 { R9 _" \% u, l5 h7 B
(3)对累加生成数据做均值生成 B 与常数项 向量Y
(4)最小二乘法求解灰色参数
则令该参数为 c ,令k =t. B0 `+ N* [: Q9 C: \
c=[ab]=(BTB)−1BTY : S* e5 \; }) f0 N) J, U
(5)参数代入微分方程,解得 x^(1)(k+1)=(x(0)(1)−ua)e−ak+ua,k=1,2,...,n−1 ' v8 b% y3 \0 ^5 ]4 p% _
(6)对函数表达式进行离散将二者做差来还原原序列
! N' R4 G4 V# m' ^3 U x^(0)(k+1)=x^(1)(k+1)−x^(1)(k),k=1,2,...,n−1
2 S% Y. B# g4 T) B+ g8 S2 i: R (7)对模型进行检验1.计算原序列与预测序列的残差 e 和相对误差 q4 R# `# b, S& }
2. 求原始序列的均值和方差S1/ }# K: m- |) G& x
3.区域残差 e 的均值及方差S2
& x" w* X. M. p, y1 ]. o1 N) u9 q9 s4.计算方差比 C=S2/S1
# L/ x( ]! Z# L5.求小误差概率 P
& \. J& t" c2 U6.精度检验表如下:
/ a D$ u4 h0 Y! H# |0 ^/ h
4 c& ]4 N; z$ i3 F8 j; G
5 T, U" Z" p, Q) [2 B2 `( P" ]0 F/ }. {( G
! H1 w4 R, r* `0 s9 A) c' L! ^& V2 b8 |3 z6 P/ ~8 o
代码的话百度我也帮你们准备好了:5 g/ R- n/ {+ C" x7 H% d8 O9 c% o$ \3 u
图片格式,自己抄去: Q8 X$ B/ F( u* {3 w: t! t1 U" t. o
5 h" X' l" ?# o' B: @' j. n5 C( v
1 _& b% e4 k+ @% ]' Z: X
" }) O1 {8 U6 s( X& B- ^
3 m( r! C9 f' n" B
! p) d9 v* Q* X0 ]7 F n1 t u# ~
* L9 h' S. Q) N2 [' @6 N |