本帖最后由 2336426014 于 2018-8-5 22:20 编辑
. b! a, [; ~- c/ P( a R' s+ ~: J
G( v- ?' \, w# |# L _" { 可以好不夸张的说灰色预测是所有新人爱用的,老生也爱用的,同时也是最基本的最简单的预测算法,原理简单的没话说。8 ^9 i8 \) s5 z1 q- O9 l
再说一下它的作用,虽然吧...这个东西原理很简单,但是耐不住人家适用范围广啊,效果虽然不是90%的准确率,但是59%的话差不多还是可以的。. w4 r& n( @& O% R
但是我还是觉得有必要说一下这个东西,帮助那些第一次用的时候注意一些细节问题,比如范围和结果分析别一顿还夸...
$ N( ~2 R' Q+ K, | 首先介绍一下灰色预测:
; w+ U2 k. @+ E; c5 s6 S# { 灰色系统理论认为:系统的行为现象尽管是朦胧的,数据是复杂的,但它毕竟是有序的,是有整体功能的。建立灰色预测模型之前,需要对原始时间序列进行数据处理,进过预处理的数据系列称为生成列。对原始数据进行预处理,不是寻求它的统计规律和概率分布,而是将杂乱无章的原始数据列通过一定的方法处理,变成有规律的时间序列数据,即以数找数的规律,再建立动态模型。灰色系统常用的数据处理方式有累加和累减,通常我们用累加。5 @& {- }+ A# a' K5 J9 A
灰色预测通过鉴别系统因素之间发展趋势的相异性,对原始数据进行生成处理来寻求事物的未来发展趋势。诸多的灰色模型中,以单序列一阶线性微分方程模型GM(1,1)模型最为常用。下面简要的介绍一下:
. N# X+ s9 [: n3 u (1)累加生成(AGO) 设原始数列为x(0)=(x0(1),x0(2),….x0(n)),令 & v1 T; r& `9 F- h0 v
x(1)(k)=∑i=1kx(0)(i),k=1,2,...,n - a( s* a3 d3 y$ L6 t" t8 G
x(1)=(x1(1),x1(2),….x1(n)) ) J( E5 Z- `4 d$ E, L
8 ]6 ~9 g! E# d8 W k
(2)建立微分方程模型 dx(1)(t)dt+ax(1)(t)=b 1 `% {/ N" o, K4 q) N+ M
: O2 R2 I1 N8 ^- n% \+ v/ C
c: b) Z) W, O(3)对累加生成数据做均值生成 B 与常数项 向量Y
(4)最小二乘法求解灰色参数
则令该参数为 c ,令k =t. b/ f2 ^: E$ I# K' y
c=[ab]=(BTB)−1BTY / m% W7 ^# Q7 C9 G5 ~: {
(5)参数代入微分方程,解得 x^(1)(k+1)=(x(0)(1)−ua)e−ak+ua,k=1,2,...,n−1 $ F- l9 F( H' _0 q( l) q
(6)对函数表达式进行离散将二者做差来还原原序列
6 _- u" l/ u# t" O9 X- F9 n x^(0)(k+1)=x^(1)(k+1)−x^(1)(k),k=1,2,...,n−1 * Y5 w& o4 V; a/ }
(7)对模型进行检验1.计算原序列与预测序列的残差 e 和相对误差 q( j4 U4 \3 e1 Y E2 [& q
2. 求原始序列的均值和方差S1
( i. H' b; V% W1 f3 M- q3.区域残差 e 的均值及方差S2
' f& R! |5 E6 v0 O% `# K& n. A4.计算方差比 C=S2/S1
/ G* @4 h( F i) k3 B1 y5 R5.求小误差概率 P @" \: e7 r- N% ~
6.精度检验表如下:- i( X l4 l) `. B( P
8 r- E: r4 Y8 L! R; T& b3 b3 x: I4 E: v, V0 U
5 }( h; v9 n& S) K; c
- U- d' p2 l* x8 K
6 I. E) |: o3 W8 V: \) g: j8 |代码的话百度我也帮你们准备好了:
/ |* ^, J! d" f, R图片格式,自己抄去
+ `" I7 Q2 {" }3 B: g5 b9 C
* {. \/ ~5 |. M9 m* Z, m
7 @0 D# `( {; r0 z7 |
/ o$ G$ Y+ Y7 {) Z2 ]2 \5 \
! B) W# ?; ^( g6 x+ ~/ ?
' C" J- A! R4 n- W( c) T- [: ^' X0 E! \5 l4 N/ i
|