時間序列探索(二):ARIMA家族簡介

Cindy Li
11 min readAug 12, 2021

--

Photo by Aleksi Tappura on Unsplash

段落大綱

  1. 前言
  2. 自相關函數
  3. ARIMA的基本組成:AR、MA、I

3.1 自迴歸模型(Autoregressive,AR(p))

3.2 移動平均模型(Moving Average Model,MA(q))

3.3 ARIMA 模型(ARIMA(p,d,q))

4. 結論

前言

接續著上一篇〈時間序列探索(一):資料型態與前處理〉所提到的內容,這篇文章將介紹時間序列的重頭戲,也就是最基礎也很常使用的ARIMA模型啦~不過在介紹模型之前,我們還有幾個定義需要先釐清。話不多說,我們趕緊開始吧!

自相關函數

不知道大家是否還記得時間序列資料一個很特別的性質是:同一個變數在不同時間點的資料彼此間具有相關性。在我們把資料處理成平穩序列後,我們接下去要做的就是利用模型去描述資料點之間的相關性。那我們可以用什麼方法來一窺樣本資料間的相關性,以及時序模型本身所刻劃的相關性呢?答案就是這個小節要介紹的自相關函數(Auto Covariance / Correlation Function)。

給定如下定義:

其實在上一篇文章中,自相關函數就曾出現在弱平穩時間序列的定義裡,也就是序列本身的 ACVF 必須不隨時間 t 而改變。仔細觀察可知,自相關函數與共變異數、相關係數的定義非常雷同,差別只在於相關函數探討的是「同一變數」自己所產生的資料(realization)在不同時點的線性相關性

另外,當我們拿到一組樣本資料,我們也可以計算其樣本 ACF,並將相關性變化繪製成圖,讓我們能初步觀察這筆資料的特性,此步驟亦可稱作為探索式資料分析(Exploratory Data Analysis)。接下來讓我們來看一個實際的例子:

上圖是根據 2020/01/01至2021/07/01 Apple 股票的對數報酬所繪製出的ACF圖。在 R 語言中,我們是使用 acf 這個函數來實現。在此需要注意此函數是預設繪製 Auto Correlation Function,所以圖內的每一筆數值都會介於-1到1之間。而在這張圖中,當固定住 X_t ,可以清楚觀察到 corr(X_t , X_t+h)隨著時間間隔(lag h)變化的樣貌。其中,lag 0 處則代表著 corr(X_t , X_t),其必定等於1。當相異時點的 ACF 絕對值越大,代表線性相關性越強,也就表示 X_t 對未來時點 X_t+h 的預測能力越佳。此外,我們發現圖中在 lag 1 之後的資料點,大多只存在微弱的相關性。這是財務資料一個很有趣的現象,在往後的文章會再做詳細討論!讀者們可以期待一下喔~

介紹完自相關函數後,終於輪到主角登場囉!讓我們小心翼翼地揭開ARIMA家族的神秘面紗吧~

ARIMA的基本組成:AR、MA、I

此小節除了介紹 ARIMA 模型的基本組成元素,還會實際帶大家推導一遍模型本身的 ACF function,以及呈現模型模擬出的資料與樣本 ACF 的呈現。

仔細一看,其實ARIMA 這個字是由三個東西所組成,分別是 AR、MA 以及 差分階數(I)。以下我們先從 AR 開始介紹:

自迴歸模型(Autoregressive,AR(p))

給定一組時間序列資料{X_t},則 p 階(p>0)的 AR 模型定義如下:

可以看到 AR(p) 模型就是拿自己過去 p 期的歷史資料來解釋當期的資料,雖然公式可能看起來有點長,但在意義上其實非常直觀!為了方便說明,以下我們看一個較為簡單的例子,也就是僅僅使用過去一期資料來當作解釋變量的 AR(1) 模型:

當 φ1=1 ,我們則稱此為隨機漫步模型,這在證券的效率市場假說中扮演著重要角色。至於一個 AR(1) 模型如果要滿足弱平穩性,需要具備了哪些條件呢?首先,我們可以藉由弱平穩性對變異數的要求來看出一點端倪~

假設 X_t 為一弱平穩時間序列,則變異數要存在(< ∞) 且須為一個常數、不隨時間改變。於是我們可得到以下結果:

由變異數須大於等於 0 的特性可知,φ1平方要小於1,即|φ1|<1

另外,我們再將 AR(1) 模型改寫成如下形式:

可以知道如果|φ|<1,當 k 趨近於無限大時,第一項會收斂至 0,而 X_t 最後可以迭代成:

接著計算X_t的期望值與共變異數:

可以看出一階動差與二階動差確實都不會隨著時間 t 而改變,符合平穩性的條件。綜合上述,我們可以知道|φ1|<1 是 AR(1) 模型滿足弱平穩性的充分且必要條件。相反的,若|φ1|>1,序列將會是非平穩,也可稱作是一個爆炸的序列(explosive series)。

此外,一個平穩 AR(1) 模型同時也滿足 causality 性質。只要一個序列 X_t 能轉換成一個線性過程(linear process),則稱 X_t 符合causality 性質。給定線性過程的定義如下:

讓我們再看一眼前面推導過的式子:

可知只要|φ1|<1,一個平穩 AR(1) 則可表示成一種線性過程。直觀來說,我們可以看成當期的資料,可以用過去所有隨機變動(random shock)的線性組合來解釋。可以向過去做展開的這個特性,讓我們能更容易地做出因果推論。

接著來試著模擬 AR(1) 模型所生成的資料會長怎樣吧!下圖分別為 φ = 0.9 以及 φ = -0.9 時所繪製出的 AR(1) 時間序列資料。可以發現 φ=0.9 的模擬資料相較 φ=-0.9 還來的平滑許多,顯示出如果當期資料和歷史資料之間是負相關,資料會呈現較大幅度的上下擺動。

AR(1) 模擬資料

最後,我們再來看看一個 AR(1) 模型畫出的 ACF Function 會長怎樣吧!以下將以 X_t = 0.9 X_t-1+ ε_t 為例:

可以看到資料彼此間的相關性隨著時間間隔增加而遞減,可以先對此圖有個印象,以便和後面 MA(1) 的 ACF Function 做比較。

移動平均模型(Moving Average Model,MA(q))

給定一組平穩時間序列資料{X_t},則 q 階的 MA 模型定義如下:

不同於 AR(p) 模型是使用變數本身的歷史資料以及一項白噪音來當作當期資 料的解釋變數,MA(q)模型是使用當期以及過去 q 期白噪音的線性組合來當作當期資料的解釋變數。此外, MA(q) 可以有如下表示:

這也說明 MA 模型是線性過程的一種特例。另外,我們一樣先用 MA(1) 來進行討論:

首先,計算 X_t 的期望值、共變異數和相關係數:

由上述可以發現 MA(1) 的幾個重要性質:

  1. 一階與二階動差均不隨時間 t 而改變,符合弱平穩定義。若以一般的 MA(q) 模型來做推導也可以得到相同結論,故 MA 模型不像 AR 模型需要對參數有所限制,而是對任意 θ 都會服從弱平穩性質。
  2. 當 lag h > 1,與 X_t 的相關性將會等於 0 ,推廣至 MA(q) 可以得到類似結論:即 lag h > q,與 X_t 的相關性為 0 。
  3. 若 h =1,當 θ=θ1 或 θ=1/θ1 時,兩者會得出一樣的相關係數。

第三點所造成的問題則稱為 MA 過程不唯一。因為我們在現實生活中無法直接觀察到白噪音本身,而是 X_t 本身,因此無法唯一確定對應的模型。為了解決這個問題,一般來說會挑選可以表達成 AR(∞) 的 MA 模型。這個特性也稱作為可逆性(invertibility),給定以下定義:

而我們可以透過類似 AR(1) 模型的推導過程(如下)得知:當|θ|<1,會唯一對應到一個 AR(∞) 模型。

接著來試著模擬 MA(1) 模型所生成的資料,下圖分別為 θ= 0.9 以及 θ= -0.9 時所繪製出的 MA(1) 時間序列資料。可以發現 θ=0.9 的模擬資料相較 θ=-0.9 還來的平滑,得出與 AR(1) 類似的結果。

再來一樣來看看 MA(1) 的 ACF Function,以下將以 X_t = ε_t+0.9 ε_t-1為例:

MA(1) 的 ACF Function

將此圖與 AR(1) 作為比較,可以發現 MA(1) 在 lag 1 以後的資料,和當期資料已沒有甚麼相關性,而 AR(1) 的 ACF function是呈現緩慢遞減的狀況。於是我們可以利用資料的 ACF 特性,來挑選出相對適合的模型喔!

ARIMA 模型(ARIMA(p,d,q))

給定 ARMA 模型定義如下:

可以看到 ARMA 模型正是把 AR、MA 整合在一起,此舉將能造出更豐富的相關結構。當資料相關性更複雜時,可以避免使用到很高階的 AR 或 MA 模型,造成模型參數維度過高。此外,ARMA模型之所以被廣泛的使用其實是建立在 Wold Decomposition Theorem 的基礎之上,由該定理可以得出一個結論,即任何一個隨機平穩過程(stationary process),都可以被拆解成兩個彼此間不相關的過程,分別是:

  1. 由白噪音序列中不同 lag 所組成的線性組合(stochastic)。如:MA
  2. 由變數本身的過去觀察值所組成的線性組合(deterministic)。如:AR

關於定理詳細的推導可以參考下面這篇文章~

讓我們回到模型本身來討論,一樣先看最簡單的 ARMA(1,1):

使用 ARMA 時,除了需要遵守前面我們提過的 causality、invertibility 性質,也可看出 φ1 不可等於 θ1 ,否則就隱含 X_t 是白噪音,如此就失去了建立模型的意義。

接著計算 X_t 的期望值、變異數和相關係數:

上述推導 ACF 的方法稱為 Yule-Walker Equation。其中可以觀察到一個很有趣的現象,也就是 ARMA(1,1) 中的 MA(1) 係數 θ 僅會「直接」對 lag 1 的數據造成影響。反之,AR(1) 係數 φ 會持續對 lag>1 的數據造成影響,使得相關性在 lag2 以後呈現指數遞減。從這個角度來看,我們可以知道在 ARMA 模型中,AR 的部分會影響到整個序列的相關結構,而 MA 部分僅會對初始 lag 的局部數據造成影響。

說到這邊我們來模擬一下 ARMA(1,1) 的資料以及它的 ACF function~

從 ACF function 可以看出,確實 ARMA 模型比起純粹的 AR、MA 模型造出了更豐富的相關結構,且相關性也的確是從 lag 2 以後指數遞減。

此外,讀者可能會好奇,咦!?不是說好要介紹 ARIMA 模型嗎?那個 I 跑到哪裡去了呢~其實 ,I 在這裡就是代表上一篇所提過的差分階數。今天要配適一個 ARMA 模型以前,需要確保隨機序列是平穩的,於是我們可能會透過對序列進行差分來達成目的。如果 X_t 進行一次差分後的序列已經平穩,再對差分後的數據配適一個 ARMA(p,q) 模型,則我們會稱作對 X_t 建立一個 ARMA(p,1,q)的模型。若對兩次差分後的平穩序列建模則稱作ARMA(p,2,q)

結論

結束了篇幅稍長的 ARIMA 簡介,希望這篇文章能帶給讀者這種時間序列模型的基礎概念。下一篇文章我們將講解 ARIMA 模型的定階議題。在這篇文章中其實都還沒提到 ARMA中的 p 和 q 應該要怎麼取?所以之後將為大家介紹 ACF、PACF 以及 information criteria 對應的選模方法。

--

--