本帖最后由 2336426014 于 2018-8-5 22:20 编辑 7 A* K1 S5 ]5 Q; W3 v
6 |7 W0 G; S7 W p
可以好不夸张的说灰色预测是所有新人爱用的,老生也爱用的,同时也是最基本的最简单的预测算法,原理简单的没话说。2 \) z4 j& ]( S, b( x! V( x
再说一下它的作用,虽然吧...这个东西原理很简单,但是耐不住人家适用范围广啊,效果虽然不是90%的准确率,但是59%的话差不多还是可以的。
* u! c4 O0 J7 b" G1 y 但是我还是觉得有必要说一下这个东西,帮助那些第一次用的时候注意一些细节问题,比如范围和结果分析别一顿还夸...
# ]8 T, E3 l& T8 w @ 首先介绍一下灰色预测:
2 R1 A( n4 D! a' C( }: | 灰色系统理论认为:系统的行为现象尽管是朦胧的,数据是复杂的,但它毕竟是有序的,是有整体功能的。建立灰色预测模型之前,需要对原始时间序列进行数据处理,进过预处理的数据系列称为生成列。对原始数据进行预处理,不是寻求它的统计规律和概率分布,而是将杂乱无章的原始数据列通过一定的方法处理,变成有规律的时间序列数据,即以数找数的规律,再建立动态模型。灰色系统常用的数据处理方式有累加和累减,通常我们用累加。
; r! F% i1 q0 b7 Z# I 灰色预测通过鉴别系统因素之间发展趋势的相异性,对原始数据进行生成处理来寻求事物的未来发展趋势。诸多的灰色模型中,以单序列一阶线性微分方程模型GM(1,1)模型最为常用。下面简要的介绍一下:8 q! ?( {, P5 Z- g, M2 Q$ o& E
(1)累加生成(AGO) 设原始数列为x(0)=(x0(1),x0(2),….x0(n)),令
6 `. P6 q& n* A1 {7 w$ }6 c x(1)(k)=∑i=1kx(0)(i),k=1,2,...,n
" T" D' X2 t, Z5 s4 q3 ~, z( X. p x(1)=(x1(1),x1(2),….x1(n)) ( R0 g+ s8 ~3 P% W2 m5 y$ O
3 o* V; ?3 [1 e5 A
(2)建立微分方程模型 dx(1)(t)dt+ax(1)(t)=b
, J$ l8 Q8 h; e D5 S9 u, O! _ H6 U9 n ?4 G; `& l
. c% o' L' v' Y" h( u(3)对累加生成数据做均值生成 B 与常数项 向量Y
(4)最小二乘法求解灰色参数
则令该参数为 c ,令k =t4 w8 ]" P" t9 H3 W: n2 u6 G5 g1 |
c=[ab]=(BTB)−1BTY
8 D0 Q) Z" g o5 u1 {5 q(5)参数代入微分方程,解得 x^(1)(k+1)=(x(0)(1)−ua)e−ak+ua,k=1,2,...,n−1 # q0 J' J" R9 u& U6 Z( I$ O
(6)对函数表达式进行离散将二者做差来还原原序列7 R! W) [% u- L9 B! X
x^(0)(k+1)=x^(1)(k+1)−x^(1)(k),k=1,2,...,n−1
8 A" f( c4 T5 j+ ?9 z! | (7)对模型进行检验1.计算原序列与预测序列的残差 e 和相对误差 q
% M: t4 j4 R: \% N* ]5 {1 r4 W2. 求原始序列的均值和方差S1
. Q0 C2 P) m! }' j* u7 C0 H ]6 O5 }3.区域残差 e 的均值及方差S2* ?: t# K' }% H: Z& I0 T8 Q
4.计算方差比 C=S2/S1
9 z4 {) v* y# P8 ]8 C3 l7 S1 l5.求小误差概率 P
$ z @/ _' k$ O9 N0 A6.精度检验表如下:1 n0 K! A, L; f
6 x f# R/ m1 Q
1 c* ~- K. b6 l# d
" d, H9 l2 L* h& q0 |6 r' C" g5 @7 v# \* H, [3 ^. C
( i3 G4 {* C+ N8 T, @+ t# j. I代码的话百度我也帮你们准备好了:
P3 I. `" m' G! N# u; ~( g2 p$ S图片格式,自己抄去7 K; F; f- K( V$ c) k
6 p$ D' j9 e; D" @/ u
% X& ~; s3 z7 L5 E
) H9 k7 N1 ^6 p2 s* S4 {" y5 _9 l4 @# Q4 F; A
; a: C8 g1 ]4 [
4 g& q3 z0 C3 Z x7 G1 t: M, M |