pinterest
Icon1 Icon2 Icon3 Icon4

DATA SCIENCE

using PYTHON

LIVE ONLINE TRAINING

Vector Autoregression (VAR) Model

In the realm of time series forecasting, wherein variables frequently influence one another over time, univariate models such as ARIMA may prove insufficient. At this juncture, Vector Autoregression (VAR) emerges as a robust statistical model specifically designed to capture the linear interdependencies among multiple time series. Initially introduced by Christopher Sims in 1980, the VAR model has since established itself as a fundamental component in the fields of econometrics, finance, and data science.

The VAR model represents a multivariate time series framework that generalizes the univariate autoregressive model by accommodating multiple evolving variables. Each variable within a VAR model is expressed as a linear function of its historical values and the historical values of all other variables encompassed within the system.

Vector autoregression(VAR) is a statistical model used to catch the connection between different amounts as they change over the long haul. VAR is a sort of stochastic interaction model. VAR models sum up the single-variable (univariate) autoregressive model by taking into consideration multivariate time series. VAR models are frequently utilized in financial aspects and the inherent sciences.

To explain this model, let me introduce one of interesting case study of Money Supply (M1) and 90 Days Corporate Interest rates (R) in economics.

Money Supply:

  • The total stock of money circulating in an economy is the money supply. The circulating money involves the currency, printed notes, money in the deposit accounts and in the form of other liquid assets.

90 Days Corporate Interest rates:

  • 90-day prime corporate interest rates in %
  • These two are the key factors of the Monetary Policy which impacts other economic parameters like inflation, business expansions, net exports, employments – all of which directly or indirectly affects the demand.
  • OK!!! Return to the term VAR Model.
  • To explain the concept of VAR, we will consider the often asked question in macroeconomics: Is it Money Supply that “causes” the interest rates that is,

Money Supply (M1) ----> Interest rates (R) that is M1 affects R or

  • Interest rates that “causes” the Money Supply that is,

Interest rates (R) ----> Money Supply (M1) that is R affects M1

These two questions create a seed of VAR model as follow.

  1. M1t = α + β (Mt – j) + γ (Rt – j) + u1
  2. Rt = α + β (Mt – j) + γ (Rt – j) + u2
  • M1t = Money Supply at time t
  • Mt – j = Lagged money supply at time t – j
  • Rt = Interest Rates at time t
  • Rt – j = Lagged Interest rates

The above model parameters are estimated by the usual OLS method. Lagged variables can be fixed by using trial and error and by using AIC, BIC information criteria. The term autoregressive in VAR is used as it contains the lagged value of endogenous (dependent) variable and the term vector is used as we are dealing with vector of two (or more) variables.

In VAR Model, there is a true simultaneity among set of variables and must be treated on an equal footing. In fact, there is no distinction between endogenous (dependent) and exogenous (independent) variables.

In[2]:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from statsmodels.tsa.api import VAR

# Load the input files

money_int_rates = pd.read_excel ("./Data/Money_Interest_Rate.xlsx") [[ "Year","M1" ),"R"]]
money_int_rates.head()

Out[2]:
Year M1 R
0 1979-1 22175.0 11.13333
1 1979-2 22841.0 11.16667
2 1979-3 23461.0 11.800000
3 1979-4 23427.0 14.18333
4 1980-1 23811.0 14.38333
In[23]:

money_int_rates_train = money_int_rates[0:36]
money_int_rates_test = money_int_rates[36:]

Fit the VAR Model by treating Money Supply and Interest Rates dependent on each other.

I used AIC information criteria method to set for the appropriate lag variables

In[24]:

money_int_rates_model = VAR(np.asarray(money_int_rates_train[["M1", "R"]])
result = money_int_rates_model.fit(ic = 'aic')
result.summary()

Out[24]:

Summary of Regression Results

Model: VAR
Method: OLS
Date: Tue, 24, Nov, 2020
Time: 14:33:57