文章目录
一、综述
本文首先介绍了灰色预测模型,然后简要介绍了神经网络在预测中的应用。数据预测在数学建模中是一类常见的问题,准确地对数据进行预测是解决问题的关键。
二、灰色预测简介
白色系统 | 灰色系统 | 黑色系统 |
---|---|---|
系统中的信息是已知的 | 系统中一些信息已知,一些信息未知 | 系统中的信息都是未知的 |
灰色预测就是根据原始已知的数据来寻找系统变动的规律,然后建立相应的微分方程模型,从而对事物进行预测。
三、GM(1, 1)模型
在 GM(1, 1) 模型中,第一个 ‘1’ 代表微分方程是 1 阶的,后面的 ‘1’ 代表只有一个变量。
-
GM(1, 1) 原理介绍
设 x ( 0 ) = ( x ( 0 ) ( 1 ) , x ( 0 ) ( 2 ) , ⋯ , x ( 0 ) ( n ) ) x^{(0)} = (x^{(0)}(1), x^{(0)}(2), \cdots, x^{(0)}(n)) x(0)=(x(0)(1),x(0)(2),⋯,x(0)(n)) 是最初的非负数据序列 (灰色预测模型处理的数据一定要是非负的),对其进行一次累加得到新的生成数据列 x ( 1 ) x^{(1)} x(1) : x ( 1 ) = ( x ( 1 ) ( 1 ) , x ( 1 ) ( 2 ) , ⋯ , x ( 1 ) ( n ) ) x^{(1)} = (x^{(1)}(1), x^{(1)}(2), \cdots, x^{(1)}(n)) x(1)=(x(1)(1),x(1)(2),⋯,x(1)(n)) 其中, x ( 1 ) ( m ) = ∑ i = 1 m x ( 0 ) ( i ) , m = 1 , 2 , ⋯ , n x^{(1)}(m) = \sum_{i = 1}^{m}x^{(0)}(i), m = 1, 2, \cdots, n x(1)(m)=∑i=1mx(0)(i),m=1,2,⋯,n令 z ( 1 ) z^{(1)} z(1) 为数列 x ( 1 ) x^{(1)} x(1) 的紧邻均值生成数列,即
z ( 1 ) = ( z ( 1 ) ( 2 ) , z ( 1 ) ( 3 ) , ⋯ , z ( 1 ) ( n ) ) z^{(1)} = (z^{(1)}(2), z^{(1)}(3), \cdots, z^{(1)}(n)) z(1)=(z(1)(2),z(1)(3),⋯,z(1)(n)) ,
其中 z ( 1 ) ( m ) = δ x ( 1 ) ( m ) + ( 1 − δ ) x ( 1 ) ( m − 1 ) , m = 2 , 3 , ⋯ , n z^{(1)}(m) = \delta x^{(1)}(m) + (1 - \delta)x^{(1)}(m - 1), m = 2, 3, \cdots, n z(1)(m)=δx(1)(m)+(1−δ)x(1)(m−1),m=2,3,⋯,n,并且 δ = 0.5 \delta = 0.5 δ=0.5
称方程 x ( 0 ) ( k ) + a z ( 1 ) ( k ) = b x^{(0)}(k) + az^{(1)}(k) = b x(0)(k)+az(1)(k)=b 为 GM(1, 1) 模型的基本形式 ( k = 2 , 3 , ⋯ , n ) (k = 2, 3, \cdots, n) (k=2,3,⋯,n)。其中, b b b 表示灰作用量, − a -a −a 表示发展系数
可以将其看作 y = k x + b y = kx + b y=kx+b ,从而利用多元回归中的 OLS 方法可以得到 a ^ \hat{a} a^ 和 b ^ \hat{b} b^ ,因此 x ( 0 ) ( k ) = − a ^ z ( 1 ) ( k ) + b ^ , ( k = 2 , 3 , ⋯ , n ) x^{(0)}(k) = -\hat{a}z^{(1)}(k) + \hat{b}, (k = 2, 3, \cdots, n) x(0)(k)=−a^z(1)(k)+b^,(k=2,3,⋯,n) x ( 0 ) ( k ) = − a ^ z ( 1 ) ( k ) + b ^ ⇒ x ( 1 ) ( k ) − x ( 1 ) ( k − 1 ) = − a ^ z ( 1 ) ( k ) + b ^ x^{(0)}(k) = -\hat{a}z^{(1)}(k) + \hat{b} \Rightarrow x^{(1)}(k) - x^{(1)}(k - 1) = -\hat{a}z^{(1)}(k) + \hat{b} x(0)(k)=−a^z(1)(k)+b^⇒x(1)(k)−x(1)(k−1)=−a^z(1)(k)+b^ 又因为 x ( 1 ) ( k ) − x ( 1 ) ( k − 1 ) = ∫ k − 1 k d x ( 1 ) ( t ) d t d t x^{(1)}(k) - x^{(1)}(k - 1) = \int_{k - 1}^{k}\frac{dx^{(1)}(t)}{dt}dt x(1)(k)−x(1)(k−1)=∫k−1kdtdx(1)(t)dt z ( 1 ) ( k ) = x ( 1 ) ( k ) + x ( 1 ) ( k − 1 ) 2 ≈ ∫ k − 1 k x ( 1 ) d t z^{(1)}(k) = \frac{x^{(1)}(k) + x^{(1)}(k - 1)}{2} ≈ \int_{k - 1}^{k}x^{(1)}dt z(1)(k)=2x(1)(k)+x(1)(k−1)≈∫k−1kx(1)dt 因此, ∫ k − 1 k d x ( 1 ) ( t ) d t d t ≈ − a ^ ∫ k − 1 k x ( 1 ) ( t ) d t + ∫ k − 1 k b ^ d t = ∫ k − 1 k [ − a ^ x ( 1 ) ( t ) + b ^ ] \int_{k - 1}^{k}\frac{dx^{(1)}(t)}{dt}dt ≈ -\hat{a}\int_{k - 1}^{k}x^{(1)}(t)dt + \int_{k - 1}^{k}\hat{b}dt \\= \int_{k - 1}^{k}[-\hat{a}x^{(1)}(t) + \hat{b}] ∫k−1kdtdx(1)(t)dt≈−a^∫k−1kx(1)(t)dt+∫k−1kb^dt=∫k−1k[−a^x(1)(t)+b^],便可以的带微分方程: d x ( 1 ) ( t ) d t = − a ^ x ( 1 ) ( t ) + b ^ \frac{dx^{(1)}(t)}{dt} = -\hat{a}x^{(1)}(t) + \hat{b} dtdx(1)(t)=−a^x(1)(t)+b^,这就是 GM(1, 1) 模型的白化方程
取初始值 x ^ ( 1 ) ∣ t = 1 = x ( 0 ) ( 1 ) \hat{x}^{(1)}|_{t = 1} = x^{(0)}(1) x^(1)∣t=1=x(0)(1),于时可以求出其对应的解为: x ^ ( 1 ) ( m + 1 ) = [ x ( 0 ) ( 1 ) − b ^ a ^ ] e − a ^ m + b ^ a ^ , m = 1 , 2 , ⋯ , n − 1 \hat{x}^{(1)}(m + 1) = [x^{(0)}(1) - \frac{\hat{b}}{\hat{a}}]e^{-\hat{a}m} + \frac{\hat{b}}{\hat{a}}, m = 1, 2, \cdots, n - 1 x^(1)(m+1)=[x(0)(1)−a^b^]e−a^m+a^b^,m=1,2,⋯,n−1 由于 x ( 1 ) ( m ) = ∑ i = 1 m x ( 0 ) ( i ) , m = 1 , 2 , ⋯ , n x^{(1)}(m) = \sum_{i = 1}{m}x^{(0)}(i), m = 1, 2, \cdots, n x(1)(m)=∑i=1mx(0)(i),m=1,2,⋯,n,因此: x ^ ( 0 ) ( m + 1 ) = x ^ ( 1 ) ( m + 1 ) − x ^ ( 1 ) ( m ) = ( 1 − e a ^ ) [ x ( 0 ) ( 1 ) − b ^ a ^ ] e − a ^ m , m = 1 , 2 , ⋯ , n − 1 \hat{x}^{(0)}(m + 1) = \hat{x}^{(1)}(m + 1) - \hat{x}^{(1)}(m) \\= (1 - e^{\hat{a}})[x^{(0)}(1) - \frac{\hat{b}}{\hat{a}}]e^{-\hat{a}m}, m = 1, 2, \cdots, n - 1 x^(0)(m+1)=x^(1)(m+1)−x^(1)(m)=(1−ea^)[x(0)(1)−a^b^]e−a^m,m=1,2,⋯,n−1
四、使用灰色系统建模的前提 —— 准指数规律检验
定义原始序列
x
(
0
)
x^{(0)}
x(0) 的光滑比
ρ
(
k
)
=
x
(
0
)
(
k
)
x
(
1
)
(
k
−
1
)
\rho(k) = \frac{x^{(0)}(k)}{x^{(1)}(k - 1)}
ρ(k)=x(1)(k−1)x(0)(k),要使
x
(
1
)
x^{(1)}
x(1) 具有准指数规律,只需要保证
ρ
(
k
)
∈
(
0
,
0.5
)
\rho(k) \in (0, 0.5)
ρ(k)∈(0,0.5) 即可。
注意:在实际建模中,我们要计算出
ρ
(
k
)
∈
(
0
,
0.5
)
\rho(k) \in (0, 0.5)
ρ(k)∈(0,0.5) 的占比,占比越高越好。(一般前两期:
ρ
(
2
)
\rho(2)
ρ(2) 和
ρ
(
3
)
\rho(3)
ρ(3) 可能不符合要求,我们要关注的是后面的期数)
同时,所有数据光滑比 < 0.5 的占比一般要达到 60%;除去前两期后,光滑比 < 0.5 的占比一般要达到 90%
五、对于GM(1, 1)的检验
使用 GM(1, 1) 模型对未来数据进行预测是,我们需要先检验 GM(1, 1) 模型对原数据的拟合程度。一般有残差检验和级比偏差检验两种方法。
-
残差检验
绝对残差: ε ( k ) = x ( 0 ) ( k ) − x ^ ( 0 ) ( k ) , k = 2 , 3 , ⋯ , n \varepsilon(k) = x^{(0)}(k) - \hat{x}^{(0)}(k), k = 2, 3, \cdots, n ε(k)=x(0)(k)−x^(0)(k),k=2,3,⋯,n相对残差: ε r ( k ) = ∣ x ( 0 ) ( k ) − x ^ ( 0 ) ( k ) ∣ x ( 0 ) ( k ) × 100 % , k = 2 , 3 , ⋯ , n \varepsilon_r(k) = \frac{|x^{(0)}(k) - \hat{x}^{(0)}(k)|}{x^{(0)}(k)} \times 100\%, k = 2, 3, \cdots, n εr(k)=x(0)(k)∣x(0)(k)−x^(0)(k)∣×100%,k=2,3,⋯,n
平均相对残差: ε ˉ r = 1 n − 1 ∑ k = 2 n ∣ ε r ( k ) ∣ \bar{\varepsilon}_r = \frac{1}{n - 1}\sum_{k = 2}^{n}|\varepsilon_r(k)| εˉr=n−11∑k=2n∣εr(k)∣
如果 ε ˉ r < 20 % \bar{\varepsilon}_r < 20\% εˉr<20% ,则认为 GM(1, 1) 对原数据的拟合达到一般要求。
如果 ε ˉ r < 10 % \bar{\varepsilon}_r < 10\% εˉr<10% ,则认为 GM(1, 1) 对原数据的拟合效果非常不错。 -
级比偏差检验
首先由 x ( 0 ) ( k − 1 ) x^{(0)}(k - 1) x(0)(k−1) 和 x ( 0 ) ( k ) x^{(0)}(k) x(0)(k) 计算出原始数据的级比 σ ( k ) \sigma(k) σ(k): σ ( k ) = x ( 0 ) ( k ) x ( 0 ) ( k − 1 ) ( k = 2 , 3 , ⋯ , n ) \sigma(k) = \frac{x^{(0)}(k)}{x^{(0)}(k - 1)} (k = 2, 3, \cdots, n) σ(k)=x(0)(k−1)x(0)(k)(k=2,3,⋯,n) 再根据预测出来的发展系数 − a ^ -\hat{a} −a^ 计算出相应的级比偏差和平均级比偏差: η ( k ) = ∣ 1 − 1 − 0.5 a ^ 1 + 0.5 a ^ 1 σ ( k ) ∣ , η ˉ = ∑ k = 2 n η ( k ) ( n − 1 ) \eta(k) = |1 - \frac{1 - 0.5\hat{a}}{1 + 0.5\hat{a}}\frac{1}{\sigma(k)}|, \bar{\eta} = \sum_{k = 2}^{n}\frac{\eta(k)}{(n - 1)} η(k)=∣1−1+0.5a^1−0.5a^σ(k)1∣,ηˉ=k=2∑n(n−1)η(k) 如果 η ˉ < 0.2 \bar{\eta} < 0.2 ηˉ<0.2,则认为GM(1, 1) 对原数据的拟合达到一般要求。
如果 η ˉ < 0.1 \bar{\eta} < 0.1 ηˉ<0.1,则认为 GM(1, 1) 对原数据的拟合效果非常不错。
六、GM(1, 1)模型的拓展
除了上面介绍到的 GM(1, 1) 模型,还可以将 GM(1, 1) 模型做一个拓展,得到 新信息GM(1, 1) 模型和新陈代谢GM(1, 1) 模型
-
新信息GM(1, 1)模型
设 x ( 0 ) ( n + 1 ) x^{(0)}(n + 1) x(0)(n+1) 为最新信息,将 x ( 0 ) ( n + 1 ) x^{(0)}(n + 1) x(0)(n+1) 置入 X^{(0)},称用 X ( 0 ) = ( x ( 0 ) ( 1 ) , x ( 0 ) ( 2 ) , ⋯ , x ( 0 ) ( n + 1 ) ) X^{(0)} = (x^{(0)}(1), x^{(0)}(2), \cdots, x^{(0)}(n + 1)) X(0)=(x(0)(1),x(0)(2),⋯,x(0)(n+1)) 建立的模型为新信息GM(1, 1)模型。简单来说,新信息GM(1, 1)模型就是将预测后的数据加入到原始数据序列中构成一个新的数据序列,然后利用这个新的数据序列来对后面的期数进行预测。
-
新陈代谢GM(1, 1)模型
置入最新信息 x ( 0 ) ( n + 1 ) x^{(0)}(n + 1) x(0)(n+1),去掉最老信息 x ( 0 ) ( 1 ) x^{(0)}(1) x(0)(1),称用 X ( 0 ) = ( x ( 0 ) ( 2 ) , ⋯ , x ( 0 ) ( n ) , x ( 0 ) ( n + 1 ) ) X^{(0)} = (x^{(0)}(2), \cdots, x^{(0)}(n), x^{(0)}(n + 1)) X(0)=(x(0)(2),⋯,x(0)(n),x(0)(n+1)) 建立的模型为新陈代谢GM(1, 1)模型同样,新陈代谢GM(1, 1)模型就是将预测后的新数据加入到原始数据序列中,然后删除最原始的哪个数据,从而构成一个新的数据序列。再利用这个新的数据序列对后面的期数进行预测。
一般来说,GM(1,1), 新信息GM(1, 1)以及新陈代谢GM(1, 1)这三个模型中,**新陈代谢GM(1, 1)**模型的效果最好。我们可以使用误差平方和 SSE 来观测这三个模型的好坏,取 SSE 最小的模型即可。
七、什么时候使用灰色预测
- 数据是以年份度量,而且是非负的。(月份或者季度就可以使用时间序列模型了)
- 数据能够经过准指数规律检验
- 数据不能太长也不能太短,一般大于3期,小于10期。
同时,我们还可以将数据分为训练组和试验组,使用不同模型对数据进行建模,从而判断哪种模型的预测效果最好。
(1)如果只有4期数据,则直接使用上述提到的三种模型进行建模,最后求一个平均值即可。
(2)如果有 > 4 并且 < 7 组数据,则设置 2 组试验组,其余的为训练组进行建模,选取效果最好的模型。
(3)如果有 > 7 并且 < 10 组数据,则设置 3 组试验组,其余的为训练组进行建模,选取效果最好的模型。
八、神经网络模型
可以参考这篇文章:神经网络
如果有错误的话,还请斧正~~~