本帖最后由 2336426014 于 2018-8-5 22:20 编辑 ! ^! n7 A0 J( ]# {/ a
# D7 {6 X" a, G
可以好不夸张的说灰色预测是所有新人爱用的,老生也爱用的,同时也是最基本的最简单的预测算法,原理简单的没话说。7 z9 A8 M( v F, ~( @3 V: b
再说一下它的作用,虽然吧...这个东西原理很简单,但是耐不住人家适用范围广啊,效果虽然不是90%的准确率,但是59%的话差不多还是可以的。% X5 {; f% m. i' w* V
但是我还是觉得有必要说一下这个东西,帮助那些第一次用的时候注意一些细节问题,比如范围和结果分析别一顿还夸...0 m. g% F! ?; J5 P/ Y
首先介绍一下灰色预测:
J; t; u* D, S( Q2 X/ Z- R2 s$ J 灰色系统理论认为:系统的行为现象尽管是朦胧的,数据是复杂的,但它毕竟是有序的,是有整体功能的。建立灰色预测模型之前,需要对原始时间序列进行数据处理,进过预处理的数据系列称为生成列。对原始数据进行预处理,不是寻求它的统计规律和概率分布,而是将杂乱无章的原始数据列通过一定的方法处理,变成有规律的时间序列数据,即以数找数的规律,再建立动态模型。灰色系统常用的数据处理方式有累加和累减,通常我们用累加。
6 k! Y. e2 L: X g+ j: |8 _" y 灰色预测通过鉴别系统因素之间发展趋势的相异性,对原始数据进行生成处理来寻求事物的未来发展趋势。诸多的灰色模型中,以单序列一阶线性微分方程模型GM(1,1)模型最为常用。下面简要的介绍一下:
. G6 i4 y/ s7 |; k- \ (1)累加生成(AGO) 设原始数列为x(0)=(x0(1),x0(2),….x0(n)),令
; W1 F' L2 l5 J+ l% R5 e x(1)(k)=∑i=1kx(0)(i),k=1,2,...,n - a) L# p5 C/ @$ [4 E2 c( v
x(1)=(x1(1),x1(2),….x1(n)) F0 b+ D, y/ z, m
8 o; P0 A/ p! ~% r
(2)建立微分方程模型 dx(1)(t)dt+ax(1)(t)=b ( C) h0 w, ~6 R, ]7 q6 `2 G
2 n( Q" r# e; ^( y( i/ r0 B
8 O/ M+ K: R+ z" }: p
(3)对累加生成数据做均值生成 B 与常数项 向量Y
(4)最小二乘法求解灰色参数
则令该参数为 c ,令k =t
9 U# Y( u2 s4 O c=[ab]=(BTB)−1BTY
7 Q' ?0 _8 b4 l8 x(5)参数代入微分方程,解得 x^(1)(k+1)=(x(0)(1)−ua)e−ak+ua,k=1,2,...,n−1 2 X9 u2 q1 ^3 P6 s& S; T) P* K% S- _
(6)对函数表达式进行离散将二者做差来还原原序列" ^; Q5 [1 a4 m) L& P( z4 ~/ A
x^(0)(k+1)=x^(1)(k+1)−x^(1)(k),k=1,2,...,n−1 ! q1 ^9 Q5 g( \# N( }
(7)对模型进行检验1.计算原序列与预测序列的残差 e 和相对误差 q& C0 y) ~: s$ \/ z
2. 求原始序列的均值和方差S1( e: K2 _# x/ Q7 \8 I+ @) i
3.区域残差 e 的均值及方差S2" y3 U& W3 L# k0 L) d, Y; H, ]8 h) w
4.计算方差比 C=S2/S16 O: S+ K) r; `3 l$ X
5.求小误差概率 P
9 A/ ~( Q0 N0 `1 J# r6.精度检验表如下:+ P; |8 ?/ r. U
" A$ T# D+ X; _
: g& \8 P' N& k* s
4 C8 [9 b+ i+ y- T. h
; W9 G) L' k3 M# C. ~/ w7 ]( Y1 q h ^. W* n0 y
代码的话百度我也帮你们准备好了:
" Q' B8 Y8 I& P" U _; v5 D" F图片格式,自己抄去
0 k! \0 A# Y- S+ o( W
3 h8 U9 A- o) t% N
& c, }; b3 z& U( {; x" F8 |" e
5 f8 N8 S4 L+ K: ?. l: L- ]9 v' Q6 G/ ~
( R" \) o, h; J, `1 G$ r5 t9 @: F7 v: w; \
|