前言

時間序列在我們的生活當中扮演著不可或缺的角色。從國家主計處公布的經濟指標變化,到一年內粉專瀏覽數、一日氣溫變化等,處處皆可見其蹤影。

而記錄某特定變數隨時間演變的情形,且觀察值順序不可任意更動者,就稱作時間序列資料。這種資料類型與橫斷面資料有著很大的不同,分析手法也要以不同視角來看待。例如:過去時間的資料必然會對未來時間資料產生影響,也就是說不同時點間的資料具有相關性。在正式介紹相關時間序列模型以前,我們先來了解一下這類型資料主要的分析目的以及建置模型前需要注意哪些事吧!

時間序列例子:透過Google Trend得出以「bitcoin」作為關鍵字搜尋的熱度變化

分析目的

一般而言,我們可以藉由分析時間序列資料做到以下幾件事:

  1. 了解單一變數或多變數之間跨時的動態及相關結構變化
  2. 給定過去觀察值,對變數進行樣本外的未來預測
  3. 數據的季節性調整
  4. 異常偵測

在此文章系列中,將更加著重於第1、2兩類用途,並藉由分析實作,讓大家能深入體會資料分析的強大~

建置模型前:平穩性的重要性

若最後要得出有效的統計推論,必須在建模前將時間序列資料處理成弱平穩狀態(weak stationary),這也是時間序列資料很特別的地方。讓我們先來看看弱平穩性的定義:

給定弱平穩時間序列資料,對於任意整數 t 和 h,須滿足以下條件:

此處的 t 是資料所處的時點,而 h 是 X_t 和 X_t+h 兩個資料點間的時間間隔單位,也經常被稱作為 Lag(h)。由定義可以知道,弱平穩時間序列的一階、二階動差將不會隨著時間而改變,且任意兩個時間間格相同的資料,會得到一樣的相關結構。不知道大家是否還記得在過往所學的統計學基礎中,許多定理都要求變數資料具備i.i.d.性質,如:中央極限定理。然而時間序列資料大多不可重複觀察,每次僅可得到「一組」樣本,於是我們可以利用弱平穩性質,得到多組統計性質相近的資料,也就有類似過往用來處理i.i.d.資料的良好特性。

以AAPL股票價格、對數報酬資料為例,比較非平穩(上)及平穩(下)時間序列的差異

就直觀上來說,若一組時間序列資料是非平穩的,代表資料的相關結構會隨時間改變,那麼在某段時間所得出的統計推論也就無法適用於下一段時間的資料了。至於如何將非平穩資料處理成平穩資料?我們將在最後一節討論。

資料的組成成分

一般而言,我們可以將時間序列的組成成分拆解為以下幾部分:

  1. 長期趨勢(Long-term trend):是最容易觀察的部分,觀察前一小節AAPL的股價資料,可以明顯發現整體向上的長期趨勢。而此成分能夠以迴歸模型來描述。
  2. 季節性變動(seasonality):在描繪出長期趨勢線後,仍發現資料隨之上下波動,且具有周期性的規律變化。有些資料甚至會明顯的隨著季節、月份而規律變動。此成分通常會以虛擬變數(dummy variable)或在迴歸模型中加入一組正、餘弦函數來描述。
  3. 不規則變動(irregular pattern):無法被長期趨勢、季節性變動解釋的成分,我們則將其歸類成不規則變動,即不可預測的隨機因素。

因此,我們的建模目標是想盡可能將資料的相關性收納到長期趨勢、季節性變動中。剩下來無法被解釋的不規則變動,則希望它最後會長的像彼此間相關性為0的白噪音。關於白噪音序列的定義,可以參考以下文章。

處理非平穩時間序列方法

於真實世界中,非平穩的時間序列資料佔絕大多數。在上一小節我們有提到長期趨勢能以迴歸模型來描述,其實這正是一種可能將非平穩轉換成平穩資料的方法之一。然而使用這種方法會有一些缺陷:像是當不規則變化加劇時,我們可能會需要用到更高階、更複雜的迴歸模型來描述資料,就會導致斜率項參數 β維度過高,增加參數的估計誤差(估計誤差正比於解釋變數個數),進而影響預測效果。更重要的是,迴歸模型的β屬於全域參數,也就是說所有時間點的資料都將被這個固定參數給解釋,而這項缺點也將造成模型缺乏彈性。

因此,在這裡要介紹一個最常使用的處理方法 — — 差分法:

差分法的目的為去除局部趨勢。而差分運算符( backward shift operator)的定義為:

讓我們看一個實際的例子來了解差分是怎樣將一個非平穩序列轉換成平穩序列:

上述這個簡單的例子並未凸顯差分方法是如何去除「局部」趨勢的,我們再舉一個例子來好好體會:

除了去除長期趨勢外,只需要針對運算子做週期性的修正,差分也可以用來去除季節性變化,定義如下:

其中,d為已知週期

結論

在初步認識時間序列資料的特性、分析目的、前處理之後,接下來就可以來介紹幾個基本的時間序列模型,以及模型各自的特色囉!

--

--