{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# VARMAX models\n", "\n", "This is a brief introduction notebook to VARMAX models in statsmodels. The VARMAX model is generically specified as:\n", "$$\n", "y_t = \\nu + A_1 y_{t-1} + \\dots + A_p y_{t-p} + B x_t + \\epsilon_t +\n", "M_1 \\epsilon_{t-1} + \\dots M_q \\epsilon_{t-q}\n", "$$\n", "\n", "where $y_t$ is a $\\text{k_endog} \\times 1$ vector." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [], "source": [ "import numpy as np\n", "import pandas as pd\n", "import statsmodels.api as sm\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [], "source": [ "dta = sm.datasets.webuse('lutkepohl2', 'https://www.stata-press.com/data/r12/')\n", "dta.index = dta.qtr\n", "endog = dta.loc['1960-04-01':'1978-10-01', ['dln_inv', 'dln_inc', 'dln_consump']]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Model specification\n", "\n", "The `VARMAX` class in statsmodels allows estimation of VAR, VMA, and VARMA models (through the `order` argument), optionally with a constant term (via the `trend` argument). Exogenous regressors may also be included (as usual in statsmodels, by the `exog` argument), and in this way a time trend may be added. Finally, the class allows measurement error (via the `measurement_error` argument) and allows specifying either a diagonal or unstructured innovation covariance matrix (via the `error_cov_type` argument)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example 1: VAR\n", "\n", "Below is a simple VARX(2) model in two endogenous variables and an exogenous series, but no constant term. Notice that we needed to allow for more iterations than the default (which is `maxiter=50`) in order for the likelihood estimation to converge. This is not unusual in VAR models which have to estimate a large number of parameters, often on a relatively small number of time series: this model, for example, estimates 27 parameters off of 75 observations of 3 variables." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/home/travis/build/statsmodels/statsmodels/statsmodels/tsa/base/tsa_model.py:162: ValueWarning: No frequency information was provided, so inferred frequency QS-OCT will be used.\n", " % freq, ValueWarning)\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " Statespace Model Results \n", "==================================================================================\n", "Dep. Variable: ['dln_inv', 'dln_inc'] No. Observations: 75\n", "Model: VARX(2) Log Likelihood 361.038\n", "Date: Tue, 17 Dec 2019 AIC -696.077\n", "Time: 23:39:38 BIC -665.949\n", "Sample: 04-01-1960 HQIC -684.047\n", " - 10-01-1978 \n", "Covariance Type: opg \n", "===================================================================================\n", "Ljung-Box (Q): 61.24, 39.25 Jarque-Bera (JB): 11.14, 2.41\n", "Prob(Q): 0.02, 0.50 Prob(JB): 0.00, 0.30\n", "Heteroskedasticity (H): 0.45, 0.40 Skew: 0.16, -0.38\n", "Prob(H) (two-sided): 0.05, 0.03 Kurtosis: 4.86, 3.44\n", " Results for equation dln_inv \n", "====================================================================================\n", " coef std err z P>|z| [0.025 0.975]\n", "------------------------------------------------------------------------------------\n", "L1.dln_inv -0.2388 0.093 -2.564 0.010 -0.421 -0.056\n", "L1.dln_inc 0.2861 0.450 0.636 0.525 -0.595 1.167\n", "L2.dln_inv -0.1665 0.155 -1.072 0.284 -0.471 0.138\n", "L2.dln_inc 0.0628 0.421 0.149 0.881 -0.762 0.888\n", "beta.dln_consump 0.9750 0.638 1.528 0.127 -0.276 2.226\n", " Results for equation dln_inc \n", "====================================================================================\n", " coef std err z P>|z| [0.025 0.975]\n", "------------------------------------------------------------------------------------\n", "L1.dln_inv 0.0633 0.036 1.773 0.076 -0.007 0.133\n", "L1.dln_inc 0.0811 0.107 0.758 0.448 -0.129 0.291\n", "L2.dln_inv 0.0104 0.033 0.315 0.753 -0.054 0.075\n", "L2.dln_inc 0.0350 0.134 0.261 0.794 -0.228 0.298\n", "beta.dln_consump 0.7731 0.112 6.879 0.000 0.553 0.993\n", " Error covariance matrix \n", "============================================================================================\n", " coef std err z P>|z| [0.025 0.975]\n", "--------------------------------------------------------------------------------------------\n", "sqrt.var.dln_inv 0.0434 0.004 12.284 0.000 0.036 0.050\n", "sqrt.cov.dln_inv.dln_inc 5.58e-05 0.002 0.028 0.978 -0.004 0.004\n", "sqrt.var.dln_inc 0.0109 0.001 11.222 0.000 0.009 0.013\n", "============================================================================================\n", "\n", "Warnings:\n", "[1] Covariance matrix calculated using the outer product of gradients (complex-step).\n" ] } ], "source": [ "exog = endog['dln_consump']\n", "mod = sm.tsa.VARMAX(endog[['dln_inv', 'dln_inc']], order=(2,0), trend='n', exog=exog)\n", "res = mod.fit(maxiter=1000, disp=False)\n", "print(res.summary())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "From the estimated VAR model, we can plot the impulse response functions of the endogenous variables." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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XH/uWJatr2HpuuqowxERERER6bFO+uQB4Krpoynun8vtSyqjDkVEREREpMdS8gDkZce57pwyXqzcycqNu6IOR0RERESkR1LyEPrUjDEU9svhds19EBERERFplZKHUL/cLK79YBnPvrODP1XtjjocEREREZEeR8lDks+eNYaCPtma+yAiIiIi0golD0ny87JZMKuUP7y1nbe27Ik6HBERERGRHkXJQ4oFM8vIz83ijmc090FEREREJJmShxQFfbO5emYpT/x5G2u210UdjoiIiIhIj6HkoRV//cEy+mTHueMZzX0QEREREWmi5KEVhf1y+MyZY/jNH7ewbsfeqMMREREREekRlDy04XNnjyUnK8adz6yNOhQRERERkR5ByUMbBufn8snpY/jV6++yqXp/1OGIiIiIiEROycMxXH/uWOIx4+7nNPdBRERERETJwzEMHZDH/IpRPLayind3H4g6HBERERGRSCl5aMcXZo8D4AfPau6DiIiIiJzclDy0Y+TAPlwxrYRHl29mW2191OGIiIiIiERGyUMHfPHcchrd+eHz6n0QERERkZNXWpIHM7vYzN4xs0ozu6WV/blm9mi4f6mZlYbbP2RmK83sjfB9TjriSbfRRX257PSR/GzpJnbUHYw6HBERERGRSHQ5eTCzOHAn8GFgEnCVmU1KKXYtsMvdy4HvAt8Ot+8EPuruk4GrgR93NZ7ucuN55RxuTHDvC+uiDkVEREREJBLp6HmYDlS6+zp3PwQ8AsxLKTMPeChcfgw438zM3V9z9y3h9jeBPDPLTUNMaVdW3I+PfmAEP351IzX7DkUdjoiIiIjICZeO5GEksDlpvSrc1moZd28AaoGilDKXA6+5e6vjgszsOjNbYWYrduzYkYawO2/heeUcONzIfS+q90FERERETj7pSB6slW3emTJmdirBUKbr2zqIu9/j7hXuXjF48ODjCrSrxg/N5yPvH85DL2+kdv/hSGIQEREREYlKOpKHKmBU0noJsKWtMmaWBRQANeF6CfA48Fl37/GPM1o4p5y9Bxt44OX1UYciIiIiInJCpSN5WA6MN7MyM8sBrgQWp5RZTDAhGuAKYIm7u5kNBP4H+Jq7v5SGWLrdxOED+NCkodz/4nrq6tX7ICIiIiInjy4nD+EchoXAk8Bq4Ofu/qaZfdPM5obF7gOKzKwS+BLQ9DjXhUA58I9m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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "ax = res.impulse_responses(10, orthogonalized=True).plot(figsize=(13,3))\n", "ax.set(xlabel='t', title='Responses to a shock to `dln_inv`');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example 2: VMA\n", "\n", "A vector moving average model can also be formulated. Below we show a VMA(2) on the same data, but where the innovations to the process are uncorrelated. In this example we leave out the exogenous regressor but now include the constant term." ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/home/travis/build/statsmodels/statsmodels/statsmodels/tsa/base/tsa_model.py:162: ValueWarning: No frequency information was provided, so inferred frequency QS-OCT will be used.\n", " % freq, ValueWarning)\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " Statespace Model Results \n", "==================================================================================\n", "Dep. Variable: ['dln_inv', 'dln_inc'] No. Observations: 75\n", "Model: VMA(2) Log Likelihood 353.887\n", " + intercept AIC -683.774\n", "Date: Tue, 17 Dec 2019 BIC -655.964\n", "Time: 23:39:43 HQIC -672.670\n", "Sample: 04-01-1960 \n", " - 10-01-1978 \n", "Covariance Type: opg \n", "===================================================================================\n", "Ljung-Box (Q): 68.61, 39.33 Jarque-Bera (JB): 12.77, 13.96\n", "Prob(Q): 0.00, 0.50 Prob(JB): 0.00, 0.00\n", "Heteroskedasticity (H): 0.44, 0.81 Skew: 0.06, -0.49\n", "Prob(H) (two-sided): 0.04, 0.59 Kurtosis: 5.02, 4.87\n", " Results for equation dln_inv \n", "=================================================================================\n", " coef std err z P>|z| [0.025 0.975]\n", "---------------------------------------------------------------------------------\n", "intercept 0.0182 0.005 3.809 0.000 0.009 0.028\n", "L1.e(dln_inv) -0.2576 0.106 -2.437 0.015 -0.465 -0.050\n", "L1.e(dln_inc) 0.5044 0.629 0.802 0.422 -0.728 1.737\n", "L2.e(dln_inv) 0.0286 0.149 0.192 0.848 -0.264 0.321\n", "L2.e(dln_inc) 0.1951 0.475 0.410 0.682 -0.737 1.127\n", " Results for equation dln_inc \n", "=================================================================================\n", " coef std err z P>|z| [0.025 0.975]\n", "---------------------------------------------------------------------------------\n", "intercept 0.0207 0.002 13.065 0.000 0.018 0.024\n", "L1.e(dln_inv) 0.0477 0.042 1.145 0.252 -0.034 0.129\n", "L1.e(dln_inc) -0.0709 0.141 -0.503 0.615 -0.347 0.205\n", "L2.e(dln_inv) 0.0181 0.043 0.424 0.672 -0.065 0.102\n", "L2.e(dln_inc) 0.1199 0.154 0.780 0.435 -0.181 0.421\n", " Error covariance matrix \n", "==================================================================================\n", " coef std err z P>|z| [0.025 0.975]\n", "----------------------------------------------------------------------------------\n", "sigma2.dln_inv 0.0020 0.000 7.345 0.000 0.001 0.003\n", "sigma2.dln_inc 0.0001 2.32e-05 5.840 0.000 9.01e-05 0.000\n", "==================================================================================\n", "\n", "Warnings:\n", "[1] Covariance matrix calculated using the outer product of gradients (complex-step).\n" ] } ], "source": [ "mod = sm.tsa.VARMAX(endog[['dln_inv', 'dln_inc']], order=(0,2), error_cov_type='diagonal')\n", "res = mod.fit(maxiter=1000, disp=False)\n", "print(res.summary())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Caution: VARMA(p,q) specifications\n", "\n", "Although the model allows estimating VARMA(p,q) specifications, these models are not identified without additional restrictions on the representation matrices, which are not built-in. For this reason, it is recommended that the user proceed with error (and indeed a warning is issued when these models are specified). Nonetheless, they may in some circumstances provide useful information." ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/home/travis/build/statsmodels/statsmodels/statsmodels/tsa/statespace/varmax.py:163: EstimationWarning: Estimation of VARMA(p,q) models is not generically robust, due especially to identification issues.\n", " EstimationWarning)\n", "/home/travis/build/statsmodels/statsmodels/statsmodels/tsa/base/tsa_model.py:162: ValueWarning: No frequency information was provided, so inferred frequency QS-OCT will be used.\n", " % freq, ValueWarning)\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " Statespace Model Results \n", "==================================================================================\n", "Dep. Variable: ['dln_inv', 'dln_inc'] No. Observations: 75\n", "Model: VARMA(1,1) Log Likelihood 354.283\n", " + intercept AIC -682.567\n", "Date: Tue, 17 Dec 2019 BIC -652.440\n", "Time: 23:39:44 HQIC -670.537\n", "Sample: 04-01-1960 \n", " - 10-01-1978 \n", "Covariance Type: opg \n", "===================================================================================\n", "Ljung-Box (Q): 68.77, 39.05 Jarque-Bera (JB): 10.77, 14.12\n", "Prob(Q): 0.00, 0.51 Prob(JB): 0.00, 0.00\n", "Heteroskedasticity (H): 0.43, 0.91 Skew: 0.00, -0.46\n", "Prob(H) (two-sided): 0.04, 0.81 Kurtosis: 4.86, 4.92\n", " Results for equation dln_inv \n", "=================================================================================\n", " coef std err z P>|z| [0.025 0.975]\n", "---------------------------------------------------------------------------------\n", "intercept 0.0110 0.068 0.161 0.872 -0.122 0.144\n", "L1.dln_inv -0.0097 0.718 -0.013 0.989 -1.417 1.397\n", "L1.dln_inc 0.3620 2.847 0.127 0.899 -5.218 5.942\n", "L1.e(dln_inv) -0.2502 0.729 -0.343 0.732 -1.680 1.180\n", "L1.e(dln_inc) 0.1262 3.089 0.041 0.967 -5.929 6.181\n", " Results for equation dln_inc \n", "=================================================================================\n", " coef std err z P>|z| [0.025 0.975]\n", "---------------------------------------------------------------------------------\n", "intercept 0.0166 0.029 0.580 0.562 -0.039 0.072\n", "L1.dln_inv -0.0332 0.286 -0.116 0.908 -0.593 0.527\n", "L1.dln_inc 0.2311 1.160 0.199 0.842 -2.042 2.505\n", "L1.e(dln_inv) 0.0884 0.292 0.303 0.762 -0.484 0.661\n", "L1.e(dln_inc) -0.2352 1.192 -0.197 0.844 -2.572 2.102\n", " Error covariance matrix \n", "============================================================================================\n", " coef std err z P>|z| [0.025 0.975]\n", "--------------------------------------------------------------------------------------------\n", "sqrt.var.dln_inv 0.0449 0.003 14.535 0.000 0.039 0.051\n", "sqrt.cov.dln_inv.dln_inc 0.0017 0.003 0.645 0.519 -0.003 0.007\n", "sqrt.var.dln_inc 0.0116 0.001 11.667 0.000 0.010 0.013\n", "============================================================================================\n", "\n", "Warnings:\n", "[1] Covariance matrix calculated using the outer product of gradients (complex-step).\n" ] } ], "source": [ "mod = sm.tsa.VARMAX(endog[['dln_inv', 'dln_inc']], order=(1,1))\n", "res = mod.fit(maxiter=1000, disp=False)\n", "print(res.summary())" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.5" } }, "nbformat": 4, "nbformat_minor": 0 }