数学建模学习笔记(十一)——预测模型
文章目錄
- 一、綜述
- 二、灰色預測簡介
- 三、GM(1, 1)模型
- 四、使用灰色系統建模的前提 —— 準指數規律檢驗
- 五、對于GM(1, 1)的檢驗
- 六、GM(1, 1)模型的拓展
- 七、什么時候使用灰色預測
- 八、神經網絡模型
一、綜述
本文首先介紹了灰色預測模型,然后簡要介紹了神經網絡在預測中的應用。數據預測在數學建模中是一類常見的問題,準確地對數據進行預測是解決問題的關鍵。
二、灰色預測簡介
| 系統中的信息是已知的 | 系統中一些信息已知,一些信息未知 | 系統中的信息都是未知的 |
灰色預測就是根據原始已知的數據來尋找系統變動的規律,然后建立相應的微分方程模型,從而對事物進行預測。
三、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=1mx(0)(i),m=1,2,?,nx^{(1)}(m) = \sum_{i = 1}^{m}x^{(0)}(i), m = 1, 2, \cdots, nx(1)(m)=∑i=1m?x(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,?,nz^{(1)}(m) = \delta x^{(1)}(m) + (1 - \delta)x^{(1)}(m - 1), m = 2, 3, \cdots, nz(1)(m)=δx(1)(m)+(1?δ)x(1)(m?1),m=2,3,?,n,并且 δ=0.5\delta = 0.5δ=0.5
稱方程 x(0)(k)+az(1)(k)=bx^{(0)}(k) + az^{(1)}(k) = bx(0)(k)+az(1)(k)=b 為 GM(1, 1) 模型的基本形式 (k=2,3,?,n)(k = 2, 3, \cdots, n)(k=2,3,?,n)。其中,bbb 表示灰作用量,?a-a?a 表示發展系數
可以將其看作 y=kx+by = kx + by=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?1kdx(1)(t)dtdtx^{(1)}(k) - x^{(1)}(k - 1) = \int_{k - 1}^{k}\frac{dx^{(1)}(t)}{dt}dtx(1)(k)?x(1)(k?1)=∫k?1k?dtdx(1)(t)?dt z(1)(k)=x(1)(k)+x(1)(k?1)2≈∫k?1kx(1)dtz^{(1)}(k) = \frac{x^{(1)}(k) + x^{(1)}(k - 1)}{2} ≈ \int_{k - 1}^{k}x^{(1)}dtz(1)(k)=2x(1)(k)+x(1)(k?1)?≈∫k?1k?x(1)dt 因此,∫k?1kdx(1)(t)dtdt≈?a^∫k?1kx(1)(t)dt+∫k?1kb^dt=∫k?1k[?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?1k?dtdx(1)(t)?dt≈?a^∫k?1k?x(1)(t)dt+∫k?1k?b^dt=∫k?1k?[?a^x(1)(t)+b^],便可以的帶微分方程:dx(1)(t)dt=?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 - 1x^(1)(m+1)=[x(0)(1)?a^b^?]e?a^m+a^b^?,m=1,2,?,n?1 由于 x(1)(m)=∑i=1mx(0)(i),m=1,2,?,nx^{(1)}(m) = \sum_{i = 1}{m}x^{(0)}(i), m = 1, 2, \cdots, nx(1)(m)=∑i=1?mx(0)(i),m=1,2,?,n,因此:x^(0)(m+1)=x^(1)(m+1)?x^(1)(m)=(1?ea^)[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 - 1x^(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=1n?1∑k=2n∣ε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.5a^1+0.5a^1σ(k)∣,ηˉ=∑k=2nη(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 最小的模型即可。
七、什么時候使用灰色預測
同時,我們還可以將數據分為訓練組和試驗組,使用不同模型對數據進行建模,從而判斷哪種模型的預測效果最好。
(1)如果只有4期數據,則直接使用上述提到的三種模型進行建模,最后求一個平均值即可。
(2)如果有 > 4 并且 < 7 組數據,則設置 2 組試驗組,其余的為訓練組進行建模,選取效果最好的模型。
(3)如果有 > 7 并且 < 10 組數據,則設置 3 組試驗組,其余的為訓練組進行建模,選取效果最好的模型。
八、神經網絡模型
可以參考這篇文章:神經網絡
如果有錯誤的話,還請斧正~~~
總結
以上是生活随笔為你收集整理的数学建模学习笔记(十一)——预测模型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【youcans 的 OpenCV 例程
- 下一篇: 整数线性规划实现(lingo,pytho