本帖最后由 2336426014 于 2018-8-5 22:20 编辑 3 o- h5 E6 k4 w+ {, s& B {+ Y
* p. o2 i' U# X- |
可以好不夸张的说灰色预测是所有新人爱用的,老生也爱用的,同时也是最基本的最简单的预测算法,原理简单的没话说。
, ]" A9 u3 S2 w" \( O4 P- Y 再说一下它的作用,虽然吧...这个东西原理很简单,但是耐不住人家适用范围广啊,效果虽然不是90%的准确率,但是59%的话差不多还是可以的。9 \ J/ _( v% F: I6 L
但是我还是觉得有必要说一下这个东西,帮助那些第一次用的时候注意一些细节问题,比如范围和结果分析别一顿还夸...
# e$ k9 S- {0 C+ U1 N5 A4 b 首先介绍一下灰色预测:
6 U2 g+ g; y+ T7 Q# {& C) r! q$ e 灰色系统理论认为:系统的行为现象尽管是朦胧的,数据是复杂的,但它毕竟是有序的,是有整体功能的。建立灰色预测模型之前,需要对原始时间序列进行数据处理,进过预处理的数据系列称为生成列。对原始数据进行预处理,不是寻求它的统计规律和概率分布,而是将杂乱无章的原始数据列通过一定的方法处理,变成有规律的时间序列数据,即以数找数的规律,再建立动态模型。灰色系统常用的数据处理方式有累加和累减,通常我们用累加。
# W2 ^' k% L8 P- z' _! |4 W 灰色预测通过鉴别系统因素之间发展趋势的相异性,对原始数据进行生成处理来寻求事物的未来发展趋势。诸多的灰色模型中,以单序列一阶线性微分方程模型GM(1,1)模型最为常用。下面简要的介绍一下:
8 a: ?( q3 ]( w7 K* ]( a (1)累加生成(AGO) 设原始数列为x(0)=(x0(1),x0(2),….x0(n)),令 * o7 i. l- P5 Y G' Z
x(1)(k)=∑i=1kx(0)(i),k=1,2,...,n
+ e0 h( y" o/ P* x% N# [+ e3 Q x(1)=(x1(1),x1(2),….x1(n))
7 E. E$ ` h' r1 ~6 s( {7 P7 W: L! I+ Y( q
(2)建立微分方程模型 dx(1)(t)dt+ax(1)(t)=b 2 ~% S3 h, ?6 N
5 r- [! y/ t) Q) m! A; }
9 @; o; M a L/ G- L8 i
(3)对累加生成数据做均值生成 B 与常数项 向量Y
(4)最小二乘法求解灰色参数
则令该参数为 c ,令k =t
6 h) J2 E+ I H C c=[ab]=(BTB)−1BTY
' x D) k; I/ K( o7 v* w(5)参数代入微分方程,解得 x^(1)(k+1)=(x(0)(1)−ua)e−ak+ua,k=1,2,...,n−1
7 s2 K7 ?! `; G o" q- M(6)对函数表达式进行离散将二者做差来还原原序列
4 i- D) G; T: M6 L8 f( e6 S x^(0)(k+1)=x^(1)(k+1)−x^(1)(k),k=1,2,...,n−1 / a: l9 W6 G( K7 q6 B$ y
(7)对模型进行检验1.计算原序列与预测序列的残差 e 和相对误差 q6 z, Z5 T; d8 |1 m1 L) H% M
2. 求原始序列的均值和方差S18 j5 W! `: x N" m; c" N9 F" b: C
3.区域残差 e 的均值及方差S2
; v: C9 o( H3 p4.计算方差比 C=S2/S18 C7 w0 G" x% |0 f, x
5.求小误差概率 P
5 W9 h8 ~9 c6 c4 A6.精度检验表如下:& z; Z) J' x T- `% c
! Z r" D; |; H# `
" n6 W) |- R2 B1 h! q# o
# U7 Y( [+ i) r' j! `
2 D: s8 }9 S8 N& e
; ~( x" P# O3 r+ |6 x6 V' p. a代码的话百度我也帮你们准备好了:
# \! a. n% |( f, p& G图片格式,自己抄去
) w& z& T$ ~5 U& z2 S, ?4 p. K- v0 P
: \/ f4 c8 }2 b, N- T
# G6 b% D8 N- q8 W) J* O9 `0 ^6 Q
5 d( L! `% W) O6 M! |6 S6 Q. Y! T3 f. x
5 ?/ O3 L) ^6 b- _/ {2 u! V2 T8 S( N# L- \
: |# y" i% | ]! D5 C2 n7 E
|