第六篇我們要對之前提過的 AR model (AutoRegressive model) 做一個延伸,那就是「VAR (Vector Autoregression model),向量自迴歸模型」!
為什麼要延伸介紹它呢?
這是因為原本的 AR model 只能處理單變量時間序列,而 VAR 可以容納大於 1 個變量,所以適用於處理「多變量時間序列 (multivariate time series)」,更貼近實務需求!
雖然向量自迴歸模型是一個進化版,但相比現今非線性模型,如樹迴歸模型、遞歸神經網絡家族等,向量自迴歸主要還是線性方法,對於變化更複雜的時間序列就還是有很多優化空間了。
還記得我們說過自迴歸模型是,假設當前時間點數值與過去時間點存在一線性關係。
那延伸到 VAR,就是將原本的單變量,改以矩陣表示多變量的自迴歸係數,用以下公式表示:
其中:
實際把矩陣寫出來,以時間序列中有 2 個變量的 VAR(1) 為例:
(VAR(p),p=1,當前時間與過去前 1 個時間點的線性關係表達式)
有什麼套件能夠幫助我們建立 VAR model 呢? 當然不能不提到 python package 中的統計愛用包:statsmodels
from statsmodels.tsa.api import VAR
除此之外,做完整的時間序列分析,不能少了「平穩性檢測(Stationarity Check)」以及擬合程度指標,常用的例如: AIC (Akaike information criterion)、RMSE (Root-Mean-Squared Error)
from statsmodels.tsa.stattools import adfuller
from statsmodels.tools.eval_measures import rmse, aic
下一篇我們就可以來實際走過一遍,如何用 Python 進行多變量時間序列預測。