The basic multivariate time series models based on linear autoregressive, moving average models are:
|Vector Moving Average||VMA(q)||
|Vector Autoregression Moving Average||VARMA(p, q)||
|Vector Autoregression Moving Average with a linear time trend||VARMA(p, q)||
|Vector Autoregression Moving Average with eXogenous inputs||VARMAX(p, q)||
|Structural Vector Autoregression Moving Average||SVARMA(p, q)||
The following variables appear in the equations:
yt is the vector of response time series variables at time t. yt has n elements.
c is a constant vector of offsets, with n elements.
Φi are n-by-n matrices for each i. The Φi are autoregressive matrices. There are p autoregressive matrices, and some can be entirely composed of zeros.
εt is a vector of serially uncorrelated innovations, vectors of length n. The εt are multivariate normal random vectors with a covariance matrix Σ.
Θj are n-by-n matrices for each j. The Θj are moving average matrices. There are q moving average matrices, and some can be entirely composed of zeros.
δ is a constant vector of linear time trend coefficients, with n elements.
xt is an r-by-1 vector 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. Each exogenous series appears in all response equations.
β is an n-by-r constant matrix of regression coefficients of size r. So the product βxt 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 c, trend coefficient δ, coefficient
β, autoregressive matrices
Φi, and moving average matrices
Θj. You typically want to fit
these parameters to your data. See
estimate for ways to estimate unknown parameters. The innovations
εt are not observable, at least in
data, though they can be observable in simulations.
Toolbox™ supports the creation and analysis of the VAR(p)
varm and associated methods.
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) model becomes
This equation can be written as
This condition implies that, with all innovations equal to zero, the VAR process converges to c 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. See Lütkepohl  Chapter 11 for a discussion of invertible VMA models.
A VARMA model is stable if its VAR polynomial is stable. Similarly, a VARMA model is invertible if its VMA polynomial 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.
Model Objects with Known Parameters to specify a model with known parameters
Model Objects with No Parameter Values to specify a model when you want MATLAB® to estimate the parameters
Model Objects 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
Analyze and forecast using the fitted model. This can involve:
Examining the Stability of a Fitted Model to determine whether your model is stable.
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.