iT邦幫忙

2021 iThome 鐵人賽

DAY 6
0
AI & Data

時間序列分析與預測方法大全系列 第 6

[Day6] 多變量時間序列預測的鼻祖:向量自迴歸模型 (VAR)

第六篇我們要對之前提過的 AR model (AutoRegressive model) 做一個延伸,那就是「VAR (Vector Autoregression model),向量自迴歸模型」!

為什麼要延伸介紹它呢?
這是因為原本的 AR model 只能處理單變量時間序列,而 VAR 可以容納大於 1 個變量,所以適用於處理「多變量時間序列 (multivariate time series)」,更貼近實務需求!

向量自迴歸模型的起源

  • 由 Christopher Albert 於 1980 年提出,用於宏觀經濟的實證研究,分析經濟如何受到政策的臨時改變和其他因素的影響等。
  • 隨著能夠搜集的資料越多、環境越複雜,多變量時間序列分析的情境需求增加,t 個時間間隔中,任一時間間隔所要觀測的樣本變量從 1 個增加到了 N 個。
  • 原本的自迴歸模型無法考慮到變量間的影響關係,因此延伸出以矩陣形式表達多變量時間序列關係的向量自迴歸模型。

雖然向量自迴歸模型是一個進化版,但相比現今非線性模型,如樹迴歸模型、遞歸神經網絡家族等,向量自迴歸主要還是線性方法,對於變化更複雜的時間序列就還是有很多優化空間了。

從 AR 到 VAR

還記得我們說過自迴歸模型是,假設當前時間點數值與過去時間點存在一線性關係。
那延伸到 VAR,就是將原本的單變量,改以矩陣表示多變量的自迴歸係數,用以下公式表示:

var_p_formula
其中:

  • y 表示在時間點 t 時的觀測值
  • A 表示向量自迴歸模型的係數矩陣
  • c 表示截距值
  • epsilon 表示誤差值

實際把矩陣寫出來,以時間序列中有 2 個變量的 VAR(1) 為例:
(VAR(p),p=1,當前時間與過去前 1 個時間點的線性關係表達式)

var_1_formula

多變量時間序列相關套件

有什麼套件能夠幫助我們建立 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 進行多變量時間序列預測。

資料來源:


上一篇
[Day5] Holt's Model 介紹
下一篇
[Day7] 用 Python 實作 VAR 多變量時間序列預測
系列文
時間序列分析與預測方法大全13
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言