The multivariate time series models used in Econometrics Toolbox™ functions are based on linear, autoregressive models. The basic models are:
|Vector Moving Average||VMA(q)|
|Vector Autoregressive Moving Average||VARMA(p, q)|
|Vector Autoregressive Moving Average with eXogenous inputs||VARMAX(p, q, r)|
|Structural Vector Autoregressive Moving Average with eXogenous inputs||SVARMAX(p, q, r)|
The following variables appear in the equations:
a is a constant vector of offsets, with n elements.
Ai are n-by-n matrices for each i. The Ai are autoregressive matrices. There are p autoregressive matrices.
εt is a vector of serially uncorrelated innovations, vectors of length n. The εt are multivariate normal random vectors with a covariance matrix Q, where Q is an identity matrix, unless otherwise specified.
Bj are n-by-n matrices for each j. The Bj are moving average matrices. There are q moving average matrices.
Xt is an n-by-r matrix representing exogenous terms at each time t. r is the number of exogenous series. Exogenous terms are data (or other unmodeled inputs) in addition to the response time series yt.
b is a constant vector of regression coefficients of size r. So the product Xt·b is a vector of size n.
Generally, the time series yt and Xt are
observable. In other words, if you have data, it represents one or
both of these series. You do not always know the offset a,
coefficient b, autoregressive matrices Ai,
and moving average matrices Bj.
You typically want to fit these parameters to your data. See the
vgxvarx function reference page for ways
to estimate unknown parameters. The innovations εt are
not observable, at least in data, though they can be observable in
There is an equivalent representation of the linear autoregressive equations in terms of lag operators. The lag operator L moves the time index back by one: Lyt = yt–1. The operator Lm moves the time index back by m: Lmyt = yt–m.
In lag operator form, the equation for a SVARMAX(p, q, r) model becomes
This equation can be written as
This condition implies that, with all innovations equal to zero, the VAR process converges to a as time goes on. See Lütkepohl  Chapter 2 for a discussion.
This condition implies that the pure VAR representation of the process is stable. For an explanation of how to convert between VAR and VMA models, see Changing Model Representations. See Lütkepohl  Chapter 11 for a discussion of invertible VMA models.
A VARMA model is stable if its VAR part is stable. Similarly, a VARMA model is invertible if its VMA part is invertible.
There is no well-defined notion of stability or invertibility for models with exogenous inputs (e.g., VARMAX models). An exogenous input can destabilize a model.
To understand a multiple time series model, or multiple time series data, you generally perform the following steps:
Import and preprocess data.
Specify a model.
Specification Structures with Known Parameters to specify a model with known parameters
Specification Structures with No Parameter Values to specify a model when you want MATLAB® to estimate the parameters
Specification Structures with Selected Parameter Values to specify a model where you know some parameters, and want MATLAB to estimate the others
Determining an Appropriate Number of Lags to determine an appropriate number of lags for your model
Fit the model to data.
Analyze and forecast using the fitted model. This can involve:
Examining the Stability of a Fitted Model to determine whether your model is stable and invertible.
VAR Model Forecasting to forecast directly from models or to forecast using a Monte Carlo simulation.
Calculating Impulse Responses to calculate impulse responses, which give forecasts based on an assumed change in an input to a time series.
Compare the results of your model's forecasts to data held out for forecasting. For an example, see VAR Model Case Study.
Your application need not involve all of the steps in this workflow. For example, you might not have any data, but want to simulate a parameterized model. In that case, you would perform only steps 2 and 4 of the generic workflow.
You might iterate through some of these steps.