本帖最后由 2336426014 于 2018-8-5 22:20 编辑
8 u" J+ a% X L4 ?* j& `7 x7 r0 B3 h" b3 @3 A
可以好不夸张的说灰色预测是所有新人爱用的,老生也爱用的,同时也是最基本的最简单的预测算法,原理简单的没话说。
9 b6 e; X3 m- c. L; w& O$ X 再说一下它的作用,虽然吧...这个东西原理很简单,但是耐不住人家适用范围广啊,效果虽然不是90%的准确率,但是59%的话差不多还是可以的。
# }# n4 ]% X% @' ] 但是我还是觉得有必要说一下这个东西,帮助那些第一次用的时候注意一些细节问题,比如范围和结果分析别一顿还夸...
9 k. d/ ^+ l! m' Q! ]9 B* [ 首先介绍一下灰色预测:6 @ t9 ?8 k" C9 Q
灰色系统理论认为:系统的行为现象尽管是朦胧的,数据是复杂的,但它毕竟是有序的,是有整体功能的。建立灰色预测模型之前,需要对原始时间序列进行数据处理,进过预处理的数据系列称为生成列。对原始数据进行预处理,不是寻求它的统计规律和概率分布,而是将杂乱无章的原始数据列通过一定的方法处理,变成有规律的时间序列数据,即以数找数的规律,再建立动态模型。灰色系统常用的数据处理方式有累加和累减,通常我们用累加。
* b; l4 K# H% m 灰色预测通过鉴别系统因素之间发展趋势的相异性,对原始数据进行生成处理来寻求事物的未来发展趋势。诸多的灰色模型中,以单序列一阶线性微分方程模型GM(1,1)模型最为常用。下面简要的介绍一下:4 |* O: A' v- y8 C4 L( q% z
(1)累加生成(AGO) 设原始数列为x(0)=(x0(1),x0(2),….x0(n)),令
4 _& U0 y" R" p0 h; k: X( X x(1)(k)=∑i=1kx(0)(i),k=1,2,...,n 5 M' P: u$ L: Q& y) `0 I2 w w2 f
x(1)=(x1(1),x1(2),….x1(n))
; ?1 q3 G. u8 X* e. a7 K3 r, z2 K
1 l( j; E( n" W; E9 d# W A% o(2)建立微分方程模型 dx(1)(t)dt+ax(1)(t)=b
& Q0 W+ q& h3 [- \3 d6 ?$ u( l- P9 I! Y$ q" p2 y
; n% h) A- o0 Z, k3 b n& h+ M7 D3 L(3)对累加生成数据做均值生成 B 与常数项 向量Y
(4)最小二乘法求解灰色参数
则令该参数为 c ,令k =t' Z8 E4 o! j8 h' e9 ?7 e. n
c=[ab]=(BTB)−1BTY
0 }; L( |7 S& x# X8 I(5)参数代入微分方程,解得 x^(1)(k+1)=(x(0)(1)−ua)e−ak+ua,k=1,2,...,n−1
4 b ^. b) b! ]6 L: l# q(6)对函数表达式进行离散将二者做差来还原原序列
% y$ h) T- p: ~2 r+ {' W x^(0)(k+1)=x^(1)(k+1)−x^(1)(k),k=1,2,...,n−1 # I- ?. Z0 d3 S( l# C3 T
(7)对模型进行检验1.计算原序列与预测序列的残差 e 和相对误差 q8 t" e$ o7 B9 s/ q: Y# s
2. 求原始序列的均值和方差S1
! O' v2 Z- w! d# p! o3.区域残差 e 的均值及方差S2
. l+ q# U" A9 G. ~4.计算方差比 C=S2/S1
. u# v6 S7 T0 @+ p: `5.求小误差概率 P2 h3 t0 B3 t0 o a/ L( f
6.精度检验表如下:6 u# j2 O- {$ O' P( u3 i: W8 ^+ x
% {+ N, ?- K& W4 d# u3 N( z# U n* F
5 ~2 l) v, ^4 e- R/ I5 u
( N7 f- c( k- `& x/ U" w$ C6 _7 J4 a' @2 I- j
代码的话百度我也帮你们准备好了:
( S: C* t0 R6 e$ u, Y# s( K图片格式,自己抄去4 U- D5 ?7 S) D' c
! j. T! ^; H' V# C! a/ X; j6 k: H
7 L# Z( C& ]! ]- {5 i$ k8 D* n3 s8 F8 \9 l1 U" M+ k
" W0 J; C+ |" b" y# ^4 f9 L# ?* [
- n% W v" N, Z: d4 ]
% \3 Y5 [$ [( ]4 p' g$ I! F
|