摘要:時間序列分析和時間序列建模是強有力的預(yù)測工具。理解時間序列背后的統(tǒng)計學(xué)知識對于時間序列建模很有幫助。本文將介紹時間序列的整體流程,包括ARMA 和 ARIMA等重要工具。
時間序列建模,顧名思義,使用基于時間的數(shù)據(jù)(年,月,日,小時,分鐘),然后得出某些預(yù)測以幫助決策。時間序列建模在現(xiàn)實生活中有廣泛的應(yīng)用。雖然要保持與時間“同步”并做出“預(yù)測”相當(dāng)困難,但是學(xué)術(shù)界已經(jīng)發(fā)展出一些強有力的工具,我們可以利用他們來“感知未來”。時間序列分析與建模一直以來都是教學(xué)上的難點和重點,我們可以借助相關(guān)的例子來對整個流程進(jìn)行解析,讓同學(xué)們有更直觀的認(rèn)識,然后再具體研究數(shù)學(xué)上的細(xì)節(jié)。
一、ARMA 時間序列模型
ARMA 是最常用的時間序列模型。在 ARMA 模型中,AR 代表自回歸 auto-regression,MA 代表移動平均 moving average。需要注意的是,AR 或者 MA 模型都不適用于非平穩(wěn)序列。
1.AR 模型
這個就是 AR(1) 模型的公式。數(shù)值(1)代表下一個時刻的值僅僅取決于當(dāng)前的時刻。alpha 是需要確定的參數(shù),使得誤差項最小。注意到,x(t-1)也取決于 x(t-2),因此,x(t)將隨著時間的流逝而漸漸消失。
2.MA 模型
可以注意到,在 MA 模型中,噪聲隨著時間的消失很快,而在 AR 模型中,突變的影響持續(xù)很久。
3.AR 模型與 MA 模型的區(qū)別
AR 模型與 MA 模型的最大不同在于時間序列在不同時間點上的相關(guān)性。對于 n>階數(shù)的 MA 模型, x(t) 與 x(t-n) 之間的相關(guān)系數(shù)為 0。相關(guān)分析可以得到 MA 模型的階數(shù)。然而,對于 AR 模型,隨著 n 變大,x(t) 與 x(t-n)之間的相關(guān)性逐漸減少。下面將介紹如何通過ACF/PACF 確定 ARMA 模型的參數(shù)。
二、時間序列建模整體流程
第一步:時間序列可視化。在建立任何時間序列模型之前,分析序列的趨勢是關(guān)鍵。我們關(guān)注的趨勢要包括任何類型的趨勢,如季節(jié)性和某些隨機行為。
第二步:時間序列平穩(wěn)化。因為時間序列的建模過程中有很多結(jié)論都是建立在大數(shù)定理和中心極限定理的前提條件下的,如果它不滿足,得到的許多結(jié)論都是不可靠的。序列平穩(wěn),一般要求均值為常數(shù),方差為常數(shù),以及自協(xié)方差為常數(shù)。如果一個序列不是平穩(wěn)的話,那我們該怎么辦呢?有三種常用的方法可以使得時間序列平穩(wěn):
1.去除趨勢:假設(shè)時間序列的公式是:X(t) = (mean + trend*t) + error。我們可以去掉圓括號中的部分,然后對剩余的部分建模。
2.差分:我們可以對兩項之間的差值進(jìn)行建模,而不是原來的項。例如:X(t) – x(t-1) = ARMA(p, q)。差分項d可以叫做AR(I)MA模型中的集成項(Integration part)?,F(xiàn)在,我們就有了三個參數(shù)ARIMA(p,d,q)
3.季節(jié)性:季節(jié)性可以很容易地直接融合到 ARIMA 模型中。
一旦我們處理了趨勢的模式,周期和季節(jié)性等,就可以測試一下序列是否平穩(wěn)。一個常用的工具是Dickey-Fuller 算法。
第三步:找出最優(yōu)的階數(shù)。我們可以通過使用ACF 和 PACF畫圖找出最優(yōu)的參數(shù)ARIMA(p,d,q)。假如 ACF 和 PACF 都下降緩慢,這預(yù)示著我們需要通過增加參數(shù) d 的值將序列變平穩(wěn)。
第四步:建立 ARIMA 模型。我們得到ARIMA 的參數(shù)后,就可以開始建立模型了。上一步種我們通過 ACF 和 PACF 得到了參數(shù),但這只是一個大致的估計,我們需要遍歷更多的(p,d,q)組合。能得到最低的 BIC值或AIC值的參數(shù)組合將是我們的選擇。假如在 ACF/PACF 畫圖中發(fā)現(xiàn)季節(jié)性成分,我們也可以納入 ARIMA 的模型中。
第五步:做出預(yù)測。一旦我們得到最終的 ARIMA 模型,我們就可以對未來的時間點的值做預(yù)測了。如果模型運行良好,我們就可以將趨勢可視化進(jìn)行交叉驗證。
三、實際應(yīng)用的例子
我們可以通過舉例說明時間序列模型的應(yīng)用。我們使用AirPassengers這個已有的數(shù)據(jù)集[1]。這個數(shù)據(jù)集是1949-1960年每個月國際航空的乘客數(shù)量的數(shù)據(jù),如圖2(a)所示。
從圖中,我們可以觀察出:
1.存在趨勢成分,隨著時間的增加而增加;
2.存在季節(jié)性成分,但周期不超過 12 個月;
3.數(shù)據(jù)的方差隨著時間的增長而增大。
在測試平穩(wěn)性之前,我們需要解決兩個問題:1)不穩(wěn)定的方差??梢酝ㄟ^取序列l(wèi)og 對數(shù)的方法解決。2)季節(jié)成分。這個可以通過求序列的差分而實現(xiàn)?,F(xiàn)在,讓我們測試一下處理后的序列。通過求 ADF,得到序列的 p-value=0.01。因此,序列是平穩(wěn)的,我們可以對它進(jìn)行建模。
確定參數(shù)后,我們可以訓(xùn)練 ARIMA 模型,然后預(yù)測未來的 10 年的乘客量,將預(yù)測的結(jié)果可視化,如圖 所示。由于我們是將原始數(shù)據(jù)求對數(shù)以及再一階差分進(jìn)行處理,因此我們的預(yù)測要有復(fù)原的過程。至此,一個完整的ARIMA 時間序列建模預(yù)測過程就完成了。
參考文獻(xiàn)
[1] https://www.kaggle.com/rakannimer/air-passengers
作者簡介:羅曉牧(1980-),性別:男,廣東省廣州市(籍貫),現(xiàn)職稱:副教授,學(xué)歷:工科博士研究生畢業(yè),研究方向:機器學(xué)習(xí),無線傳感器網(wǎng)絡(luò),生物信息獲取.
基金來源:廣州中醫(yī)藥大學(xué)教學(xué)改革項目 A3-0433-181-427-039