数学建模学习笔记(十一)——预测模型

一、综述

本文首先介绍了灰色预测模型,然后简要介绍了神经网络在预测中的应用。数据预测在数学建模中是一类常见的问题,准确地对数据进行预测是解决问题的关键。

二、灰色预测简介

白色系统灰色系统黑色系统
系统中的信息是已知的系统中一些信息已知,一些信息未知系统中的信息都是未知的

灰色预测就是根据原始已知的数据来寻找系统变动的规律,然后建立相应的微分方程模型,从而对事物进行预测。

三、GM(1, 1)模型

在 GM(1, 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)(m1),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)(k1)=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)(k1)=k1kdtdx(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)(k1)k1kx(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}] k1kdtdx(1)(t)dta^k1kx(1)(t)dt+k1kb^dt=k1k[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^]ea^m+a^b^,m=1,2,,n1 由于 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)=(1ea^)[x(0)(1)a^b^]ea^m,m=1,2,,n1

四、使用灰色系统建模的前提 —— 准指数规律检验

定义原始序列 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)(k1)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) 模型对原数据的拟合程度。一般有残差检验级比偏差检验两种方法。

  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=n11k=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) 对原数据的拟合效果非常不错。

  2. 级比偏差检验
    首先由 x ( 0 ) ( k − 1 ) x^{(0)}(k - 1) x(0)(k1) 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)(k1)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)=11+0.5a^10.5a^σ(k)1,ηˉ=k=2n(n1)η(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) 模型

  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)模型就是将预测后的数据加入到原始数据序列中构成一个新的数据序列,然后利用这个新的数据序列来对后面的期数进行预测。

  2. 新陈代谢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 最小的模型即可。

七、什么时候使用灰色预测

  1. 数据是以年份度量,而且是非负的。(月份或者季度就可以使用时间序列模型了)
  2. 数据能够经过准指数规律检验
  3. 数据不能太长也不能太短,一般大于3期,小于10期。

同时,我们还可以将数据分为训练组和试验组,使用不同模型对数据进行建模,从而判断哪种模型的预测效果最好。
(1)如果只有4期数据,则直接使用上述提到的三种模型进行建模,最后求一个平均值即可。
(2)如果有 > 4 并且 < 7 组数据,则设置 2 组试验组,其余的为训练组进行建模,选取效果最好的模型。
(3)如果有 > 7 并且 < 10 组数据,则设置 3 组试验组,其余的为训练组进行建模,选取效果最好的模型。

八、神经网络模型

可以参考这篇文章:神经网络

如果有错误的话,还请斧正~~~
请添加图片描述

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值