[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 进行多变量时间序列预测。

资料来源:


<<:  DAY21 MongoDB Profiler 如何监控效能差的操作

>>:  Day 6. 列一下VR头盔

盘点清查与检测扫描

适用人员: 资安人员/技术人员。 适用法规: 资通安全责任等级分级办法 - 附表十资通系统防护基准....

Day17 - 物理模拟篇 - 弹力、引力与磁力II - 成为Canvas Ninja ~ 理解2D渲染的精髓

在上一篇文中我们提到了一维弹力模拟的案例 这次我们则是要实作二维弹力模拟~并且是存在重力场的状态! ...

Day 03 : Python 基础观念 (2)

昨天初步认识 python 怎麽设定变数的操作,今天我们要聚焦在串列、字典、字串的操作,东西有点多X...

关於 StrongSwan IPSec Lan-to-Lan 一问

想请教一下大家, 我想由 Site A LAN 连线到 Site B LAN, 环境简介如下: //...

【零基础成为 AI 解梦大师秘笈】Day27 - 周易解梦之人工智慧(8)

人工智慧8 前言 系列文章简介 大家好,我们是 AI . FREE Team - 人工智慧自由团队,...