VAR

VAR <: Model

Vector Autoregressive (VAR) model in matrix form.

A VAR of lag order p is specified as:

\[ y_t = C e_t + B_1 y_{t-1} + ... + B_p y_{t-p} + u_t \]

where:

  • \(e_t\) is a vector of deterministic components (constant, trends, etc)
  • \(C, B_i\) are conformable matrices
  • \(u_t\) is vector white noise

This can be rewritten compactly as:

\[ y_t' = z_t' B_+' + u_t' \]

where:

  • \(z_t = [e_t; y_{t-1}; ...; y_{t-p}]\) includes deterministic components and lagged values of all variables
  • \(B_+ = [C, B_1, ..., B_p]\) is the coefficient matrix stacking trend and autoregressive terms

Stacking observations from \(t = p+1\) to \(T\), the system can be written in matrix form:

\[ Y = X B_+' + U \]

where:

  • \(Y\): an \((T - p) \times k\) matrix of outcomes
  • \(X\): an \((T - p) \times (k p + d)\) matrix of regressors (lags and trends)
  • \(B_+\): a \(k \times (kp + d)\) matrix of coefficients where \(d\) is the number of deterministic components.
  • \(U\): a \((T - p) \times k\) matrix of residuals

This structure is represented by the VAR object.

Fields

  • B::Matrix{<:Number}: Coefficient matrix [C, B_1, ..., B_p]
  • Sigma_u::Matrix{<:Number}: Covariance matrix of the error term
  • p::Int: Lag order of the VAR
  • trend_exponents::Vector{<:Number}: Time trend exponents (e.g., [0,1] implies constant and linear trend)
  • input_data::DataFrame: Original dataset used to estimate the VAR
  • Y::Matrix{<:Number}: Left-hand side matrix of outcomes y_t, shape (T - p, k)
  • X::Matrix{<:Number}: Right-hand side matrix of regressors z_t, shape (T - p, k * p + d)
  • U::Matrix{<:Number}: Residuals u_t, shape (T - p, k)
  • Yhat::Matrix{<:Number}: Fitted values X * B_+', shape (T - p, k)
VAR(B::Matrix{<:Number},
    Sigma_u::Matrix{<:Number},
    p::Int,
    trend_exponents::Vector{<:Number},
    data::DataFrame)

Constructs a VAR model from estimated coefficient matrix B, error covariance matrix Sigma_u, lag length p, time trend exponents, and the dataset data.

Arguments

  • B::Matrix{<:Number}: Coefficient matrix
  • Sigma_u::Matrix{<:Number}: Covariance matrix of residuals
  • p::Int: Lag order
  • trend_exponents::Vector{<:Number}: Trend exponents for time trend terms
  • data::DataFrame: Dataset used to construct X and Y
VAR(data::DataFrame, p::Int;
    trend_exponents::Vector{<:Number} = [0])

Constructs a VAR model object with data, lag length p, and specified time trend exponents. Coefficients and residuals are uninitialised but can be estimed using fit!.

Arguments

  • data::DataFrame: Dataset to construct lag matrix and outcomes
  • p::Int: Lag length

Keyword Arguments

  • trend_exponents::Vector{<:Number}: Exponents of time trends (default: [0])