時間序列為統計學的一種方法,最初使用的領域在經濟、財務領域,而後也推廣到像是生物、大氣或是行銷等領域。時間序列架構在時間類型的相關資料,藉由一些數學假設,讓資料達到穩態 ( Stationary ),使得過去的資料得以預測未來的資料。在這篇則會介紹最基本的 ARMA 模型、如何挑選及 R 的實作。
Stationary
穩態 (Stationary) 為時間序列的基本假設,若資料符合穩態的假設,則可以得到
(i) 與 t 獨立
(ii) 再任意 h 下,與 t 獨立
將這兩個定義簡短的解釋就是,在資料符合穩態的情況下,資料的期望值與所在的時間點無關,只與經歷的時間期間有關。(wiki)
ARMA
ARMA 為 Autoregressive model 和 Moving average model 的結合,Autoregressive model 又稱 AR 模型,AR(p) 使用落後 p 期的資料作為自變數預測未來資料。Moving average 又稱 MA 模型,MA(q) 使用落後 q 期的預測誤差項作為自變數預測未來資料。而 ARMA 則是 AR 與 MA 模型的結合。數學式為
如何挑選適合的 ARMA(p,q) ?
在統計學上有簡單判斷 ARMA 的落後項,通常會將資料做 ACF 與 PACF 的分析,挑選 的落後項。
R 實作
在這裡使用 Johnson and Johnson 1960-1980 每季 EPS 作為這次實際操作的資料。
install.packages(astsa) library(astsa) head(jj) # jj 為 Johnson and Johnson 1960-1980 每季 EPS jj.nu jj.dif jj.dif acf2(jj.dif) #藉由 ACF, PACF 判斷挑選 參數為 (4,0,1) fit plot(fit$x,col="red") lines(fitted(fit),col="blue")
由這個圖判斷選取 (4,0,1) 做為模型的參數

紅色線 jj.dif 資料,藍色線為模型配適結果


結論
時間序列最重要的基礎假設為 stationary ,然而其實很多資料都沒有符合這個假設,也就是變異數會隨著時間變動而有所改變,所以衍生產生了 ARCH,甚至後來的 GARCH 模型,還有許多 GARCH 模型的變形,讓模型更加貼近實際世界。