本帖最后由 2336426014 于 2018-8-5 22:20 编辑 ! _! m* |" s) z9 F* `
' \( `1 j2 W, T7 o
可以好不夸张的说灰色预测是所有新人爱用的,老生也爱用的,同时也是最基本的最简单的预测算法,原理简单的没话说。' p1 h- r' X" `& W4 V9 I
再说一下它的作用,虽然吧...这个东西原理很简单,但是耐不住人家适用范围广啊,效果虽然不是90%的准确率,但是59%的话差不多还是可以的。
& c! Q p$ V( { _" A 但是我还是觉得有必要说一下这个东西,帮助那些第一次用的时候注意一些细节问题,比如范围和结果分析别一顿还夸...- b# P3 v) h) U) G7 o, F7 t; O8 g. I- [
首先介绍一下灰色预测:
# V- ]* `( ^& s! ?4 R 灰色系统理论认为:系统的行为现象尽管是朦胧的,数据是复杂的,但它毕竟是有序的,是有整体功能的。建立灰色预测模型之前,需要对原始时间序列进行数据处理,进过预处理的数据系列称为生成列。对原始数据进行预处理,不是寻求它的统计规律和概率分布,而是将杂乱无章的原始数据列通过一定的方法处理,变成有规律的时间序列数据,即以数找数的规律,再建立动态模型。灰色系统常用的数据处理方式有累加和累减,通常我们用累加。) j9 ]! H8 d8 F2 x* }/ Y
灰色预测通过鉴别系统因素之间发展趋势的相异性,对原始数据进行生成处理来寻求事物的未来发展趋势。诸多的灰色模型中,以单序列一阶线性微分方程模型GM(1,1)模型最为常用。下面简要的介绍一下:
4 w* S: e7 L. X4 k (1)累加生成(AGO) 设原始数列为x(0)=(x0(1),x0(2),….x0(n)),令 ! u h8 h5 T: P
x(1)(k)=∑i=1kx(0)(i),k=1,2,...,n % q& P) k; E( W$ ^5 ]* B4 E
x(1)=(x1(1),x1(2),….x1(n))
8 U6 T: {+ \7 ^! \$ R
6 ]$ M) F6 j7 [7 ~" w+ X; L9 }( @(2)建立微分方程模型 dx(1)(t)dt+ax(1)(t)=b / L `' l3 Y" R) E
- J5 U* P, e* m4 m. ^. n) X
3 q: z" E! x$ B& M! P' Y: f0 }# d" f
(3)对累加生成数据做均值生成 B 与常数项 向量Y
(4)最小二乘法求解灰色参数
则令该参数为 c ,令k =t+ S; e" i# y7 D% m# j& ^
c=[ab]=(BTB)−1BTY - ?: ]6 U8 ]5 r) H: [
(5)参数代入微分方程,解得 x^(1)(k+1)=(x(0)(1)−ua)e−ak+ua,k=1,2,...,n−1 % s6 G, r% J7 ^/ o
(6)对函数表达式进行离散将二者做差来还原原序列
! R! p$ c, U( L: }9 o+ W x^(0)(k+1)=x^(1)(k+1)−x^(1)(k),k=1,2,...,n−1
0 `5 v; A: \5 W$ u, f; F; F1 n6 Z$ u$ v/ Z (7)对模型进行检验1.计算原序列与预测序列的残差 e 和相对误差 q
. {% C& t1 |/ D) B, T+ H* H2. 求原始序列的均值和方差S1
( S5 h5 v+ A ?# Z: j( H/ X' Q* A3.区域残差 e 的均值及方差S2
" J' F! n3 N1 J& @4.计算方差比 C=S2/S1" l5 e& B2 e3 L) x$ `2 ^ {: a$ t
5.求小误差概率 P- s, ~( U6 H. n, ?0 b0 B
6.精度检验表如下:
" _9 g4 H E$ [$ [: f' S! x8 q: a2 F: K s; ]) `) u& p
$ R3 k$ [" n8 p( h% L
/ z2 N4 ]$ |& v' }2 r/ w% x8 V7 e; j
" t! G; X/ l8 A! @7 s代码的话百度我也帮你们准备好了:
- X( k6 _9 `9 A! u图片格式,自己抄去/ r- E2 G" W4 x( W: \# ^
0 `+ N# X8 \6 t* t1 v" S6 w" h
' U* U' e9 Z2 ^$ J
$ G8 W3 S/ t |1 N# }: S6 K& T. l0 @0 Q5 _ k9 c% l
" T4 p" f# k, ~1 d9 |
! T2 m! K2 B" F) W2 G/ c' y |