5 Causalidad de Granger, Modelos Multivariados de Vectores Autoregresivos y de Cointegración, y Modelos ARDL
En este capítulo removeremos el supuesto de que el análisis es univariado, ya que introduciremos la posibilidad de que los procesos generadores de datos compartan información entre dos o más series. Como primera aproximación desarrollaremos el concepto de Causalidad de Granger. Mediante esta metodología discutiremos cuándo dos series se causan estadísticamente. Posteriormente, introduciremos una técnica más sofisticada conocida como la metodología de Vectores Autoregresivos (VAR), la cual es una generalización de los procesos Autoregresivos (AR) que analizamos al principio del curso. Finalmente, introduciremos la técnica de cointegración y de rezagos distribuidos (ARDL) para los casos en que las series que analicemos sean procesos no estacionarios.
A partir de este punto, asumiremos que las series empleadas son estacionarias en sus primeras diferencias y solo nos preocuparemos por su estacionariedad en los casos particulares de Cointegración y los modelos ARDL.
5.1 Causalidad de Granger
Hasta ahora hemos supuesto que una serie puede ser explicada únicamente con la información contenida en ella misma. No obstante, en adelante trataremos de analizar el caso en el que buscamos determinar relaciones entre variables y cómo el comportamiento de una serie influye en las demás. Algunas relaciones más importantes son las llamadas: causalidad. En este caso analizaremos el procedimiento de Granger (1969), conocido como causalidad de Granger. En adelante asumiremos que las series involucradas son débilmente estacionarias.
Sean \(X\) y \(Y\) dos series débilmente estacionarias. Definamos a \(I_t\) un conjunto de toda la información disponible hasta el momento \(t\). Asimismo, digamos que \(\overline{X}_t\) y \(\overline{Y}_t\) son los conjuntos de toda la información disponible (actual y pasada) de \(X\) y \(Y\), respectivamente. Es decir: \[\begin{eqnarray*} \overline{X}_t & := & \{ X_t, X_{t-1}, X_{t-2}, \ldots \} \\ \overline{Y}_t & := & \{ Y_t, Y_{t-1}, Y_{t-2}, \ldots \} \\ I_t & := & \overline{X}_t + \overline{Y}_t \end{eqnarray*}\]
Adicionalmente, definamos \(\sigma^2(*)\) como la varianza del término de error estimado de una regresión dada. Dicho lo anterior, digamos que: La definición anterior aplica de igual forma si se reemplaza a \(X\) por \(Y\) y a \(Y\) por \(X\), respectivamente. De acuerdo a la definición anterior, existen 5 diferentes posibilidades de relaciones causales entre las dos series:Por lo anterior, representaremos mediante un \(AR(p)\) con variables exógenas lo siguiente: \[\begin{equation} A(L) \begin{bmatrix} Y_t \\ X_t \end{bmatrix} = \begin{bmatrix} a_{11}(L) & a_{12}(L) \\ a_{21}(L) & a_{22}(L) \end{bmatrix} \begin{bmatrix} Y_t \\ X_t \end{bmatrix} = \begin{bmatrix} V_t \\ U_t \end{bmatrix} \tag{5.1} \end{equation}\]
O en su versión \(MA(q)\) con variables exógenas: \[\begin{equation} \begin{bmatrix} Y_t \\ X_t \end{bmatrix} = B(L) \begin{bmatrix} V_t \\ U_t \end{bmatrix} = \begin{bmatrix} b_{11}(L) & b_{12}(L) \\ b_{21}(L) & b_{22}(L) \end{bmatrix} \begin{bmatrix} V_t \\ U_t \end{bmatrix} \end{equation}\]
Para determinar el test de causalidad utilizaremos una especificación similar a la de la ecuación (5.1). Para probar si \(X\) causa a \(Y\), consideraremos la siguiente regresión: \[\begin{equation} Y_t = \alpha_0 + \sum^{k_1}_{k = 1} a^k_{11} Y_{t-k} + \sum^{k_2}_{k = k_0} a^k_{12} X_{t-k} + U_{1,t} \end{equation}\]
Donde \(k_0 = 1\) y, en general, se asume que \(k_1 = k_2\). Asimismo, el valor de estas constantes se puede determinar con el criterio de Akaike (o cualquier otro criterio de información). No obstante, algunos autores sugieren que una buena práctica es considerar valores de \(k_1\) y \(k_2\) que recorran al 4, 8, 12 y 16.
Dicho lo anterior, el test de causalidad de Granger se establece con una prueba F, en la cual se prueba la siguiente hipótesis nula: \[\begin{equation} H_0: a^1_{12} = a^2_{12} = \ldots = a^{k2}_{12} = 0 \end{equation}\]
. Consideremos como variables analizadas al Índice Nacional de Precios al Consumidor (\(INPC_t\)), al Tipo de Cambio (\(TDC_t\)) y al rendimiento anual de los Cetes a 28 días (\(CETE28_t\)), todas desestacionalizadas para el periodo de enero de 2000 a julio de 2019. Dado que la metodología de Granger supone que las series son estacionarias, utilizaremos las diferencias logarítmicas de cada una de las tres series (es decir, utilizaremos una transformación del tipo \(ln(X_t) - ln(X_{t-1})\)). La Figura 5.1 muestra las series en su transformación de diferencias logarítmicas.
library(ggplot2)
library(dplyr)
library(stats)
library(MASS)
library(strucchange)
library(zoo)
library(sandwich)
library(urca)
library(lmtest)
library(vars)
#
load("BD/Datos_Ad.RData")
#
INPC <- ts(Datos_Ad$INPC_Ad,
start = c(2000, 1),
freq = 12)
DLINPC <- diff(log( ts(Datos_Ad$INPC_Ad, start = c(2000, 1), freq = 12) ))
TC <- ts(Datos_Ad$TC_Ad,
start = c(2000, 1),
freq = 12)
DLTC <- diff(log( ts(Datos_Ad$TC_Ad, start = c(2000, 1), freq = 12) ))
CETE28 <- ts(Datos_Ad$CETE28_Ad,
start = c(2000, 1),
freq = 12)
DLCETE28 <- diff(log( ts(Datos_Ad$CETE28_Ad, start = c(2000, 1), freq = 12) ))
#
#png("Plots/DLGranger.png", width = 800, height = 1200)
par(mfrow=c(3, 1))
plot(DLINPC, xlab = "Tiempo",
main = "Diferencias Logarítmicas del INPC",
col = "darkgreen")
plot(DLTC, xlab = "Tiempo",
main = "Diferencias Logarítmicas del Tipo de Cambio",
col = "darkblue")
plot(DLCETE28, xlab = "Tiempo",
main = "Diferencias Logarítmicas de los Cetes a 28 dias",
col = "darkred")

Figure 5.1: Series en diferencias logarítmicas dadas por las siguientes expresiones: \(DLINPC_t = ln(DLINPC_t) - ln(DLINPC_{t-1})\), \(DLTC_t = ln(TC_t) - ln(TC_{t-1})\) y \(DLCETE28_t = ln(CETE28_t) - ln(CETE28_{t-1})\).
Por simplicidad, en el Cuadro 5.1 se muestra el resultado de aplicar el test de Granger a diferentes especificaciones, con rezagos 4, 8, 12 y 16, sólo para la serie de Tipo de Cambio en diferencias logarítmicas. En cada una de las pruebas se compara el modelo considerado como regresor a la variable que es candidata de causar, respecto del modelo sin considerar a dicha variable.
Rezagos | Estadiística F | Probabilidad (\(>\)F) | Significancia |
---|---|---|---|
4 | 3.2621 | 0.01265 | * |
8 | 1.9079 | 0.06030 | |
12 | 2.2577 | 0.01067 | * |
16 | 1.6735 | 0.05495 | * |
Notas: | *** | signif. | al 0.1% |
** | signif. | al 1% | |
* | signif. | al 5% |
De acuerdo con el Cuadro 5.1, podemos concluir que existe información estadísticamente significativa para concluir que la inflación causa a la tasa de depreciación cambiaria, ambas medidas como las diferencias logaritmicas. El resto de los resultados para las otras combinaciones de causalidad se encuentran en el R Markdown llamado Clase 13 ubicado en el repositorio de GitHub.
5.2 Definición y representación del Sistema o Modelo de Vectores Autorregresicos (VAR(p))
En esta sección ampliaremos la discusión planteada en el apartado anterior. En el sentido de que en la sección pasada nuestra discusión se limitó al análisis de causalidad entre dos variables a la vez, que si bien es posible extenderlo a más variables, es un procedimiento limitado a casos particulares por las siguientes razones.
El procedimiento de causalidad de Granger supone que es posible identificar un sistema de ecuaciones que debe conformarse una vez que se ha identificado el sentido de la causalidad. Así, el proceso anterior necesita del conocimiento previo de las relaciones que existen entre las variables.
Adicionalmente, no resuelve el problema más general que está relacionado con cómo identificar la causalidad cuando se tienen múltiples variables con múltiples sentidos de causalidad. En esta sección analizaremos una mejor aproximación al problema de cómo identificar la causalidad múltiple. Por lo tanto, como mecanismo para solucionar el problema planteado, analizaremos el caso de un Sistema o Modelo de Vectores Autoregresivos conocido como VAR.
El primer supuesto del que partiremos es que existe algún grado de endogeneidad entre las variables consideradas en el análisis. Adicionalmente, el segundo supuesto que estableceremos es que requerimos que las variables que tengamos consideradas sean estacionarias.
Por lo anterior, diremos que un modelo de Vectores Autoregresivos (VAR) es un procedimiento que sigue fundado en el supuesto de que las variables consideradas son estacionarias. Así, hasta este momento del curso hemos pasado de modelos univariados a modelos multivariados, pero no hemos podido dejar de asumir que las series son estacionarias.
En lo subsecuente asumiremos que las series empleadas son estacionarias y sólo lo demostraremos cuando, en su caso, sea necesario. Esto no significa que el lector deba asumir estacionariedad. Por el contrario, siempre debe probar que las series son estacionarias antes de iniciar la implementación de cualquier técnica de series de tiempo.
Ahora bien, iniciaremos con el establecimiento de la representación del proceso. Digamos que tenemos un proceso estocástico \(\mathbf{X}_t\) estacionario vectorial de dimensión \(k\): \[\begin{equation*} \mathbf{X}_t = \begin{bmatrix} X_{1t} \\ X_{2t} \\ \vdots \\ X_{kt} \end{bmatrix} \end{equation*}\]
Para cualquier \(i = 1, 2, \ldots, p\): \[\begin{equation*} \mathbf{X}_{t-i} = \begin{bmatrix} X_{1t-i} \\ X_{2t-i} \\ \vdots \\ X_{kt-i} \end{bmatrix} \end{equation*}\]
Donde cada \(X_{kt}\) en \(\mathbf{X}_t\) es una serie de tiempo por sí misma. De esta forma, la expresión reducida del modelo o el proceso \(VAR(p)\) estará dado por: \[\begin{equation} \mathbf{X}_t = \boldsymbol{\delta} + A_1 \mathbf{X}_{t-1} + A_2 \mathbf{X}_{t-2} + \ldots + A_p \mathbf{X}_{t-p} + \mathbf{U}_{t} \tag{5.2} \end{equation}\]
Donde cada uno de las \(A_i\), \(i = 1, 2, \ldots, p\), son matrices cuadradas de dimensión \(k\) y \(\mathbf{U}_t\) representa un vector de dimensión \(k \times 1\) con los residuales en el momento del tiempo \(t\) que son, por individual, un proceso puramente aleatorio. También se incorpora un vector de términos constantes denominado como \(\mathbf{\delta}\), el cual es de dimensión \(k \times 1\).
Así, la ecuación (5.2) supone la siguiente estructura del vector \(\boldsymbol{\delta}\): \[\begin{equation*} \boldsymbol{\delta} = \begin{bmatrix} \delta_{1} \\ \delta_{2} \\ \vdots \\ \delta_{k} \end{bmatrix} \end{equation*}\]
También, la ecuación (5.2) supone que cada matriz \(A_i\), \(i = 1, 2, \ldots, p\) está definida de la siguiente forma: \[\begin{equation*} \mathbf{A}_i = \begin{bmatrix} a^{(i)}_{11} & a^{(i)}_{12} & \ldots & a^{(i)}_{1k} \\ a^{(i)}_{21} & a^{(i)}_{22} & \ldots & a^{(i)}_{2k} \\ \vdots & \vdots & \ddots & \vdots \\ a^{(i)}_{k1} & a^{(i)}_{k2} & \ldots & a^{(i)}_{kk} \end{bmatrix} \end{equation*}\]
Donde \(i = 1, 2, \ldots, p\).
Retomando la ecuación (5.2) y considerando que podemos ocupar el operador rezago \(L^j\) de forma análoga al caso del modelo \(AR(p)\), pero aplicado a un vector, tenemos las siguientes ecuaciones: \[\begin{eqnarray} \mathbf{X}_t - A_1 \mathbf{X}_{t-1} - A_2 \mathbf{X}_{t-2} - \ldots - A_p \mathbf{X}_{t-p} & = & \boldsymbol{\delta} + \mathbf{U}_{t} \nonumber \\ \mathbf{X}_t - A_1 L \mathbf{X}_{t} - A_2 L^2 \mathbf{X}_{t} - \ldots - A_p L^p \mathbf{X}_{t-p} & = & \boldsymbol{\delta} + \mathbf{U}_{t} \nonumber \\ (I_k - \mathbf{A_1} L - \mathbf{A_2} L^2 - \ldots - \mathbf{A_p} L^p) \mathbf{X}_t & = & \boldsymbol{\delta} + \mathbf{U}_{t} \nonumber \\ \mathbf{A}(L) \mathbf{X}_t & = & \boldsymbol{\delta} + \mathbf{U}_{t} \tag{5.3} \end{eqnarray}\]
Adicionalmente, requeriremos que dado que \(\mathbf{U}_t\) es un proceso puramente aleatorio, este debe cumplir con las siguientes condiciones:
El valor esperado del término de error es cero: \[\begin{equation} \mathbb{E}[\mathbf{U}_t] = 0 \end{equation}\]
Existe una matriz de varianzas y covarianzas entre los términos de error contemporáneos dada por: \[\begin{eqnarray} \mathbb{E}[\mathbf{U}_t \mathbf{U}_t'] & = & \mathbb{E} \left[ \begin{bmatrix} U^{(t)}_{1} \\ U^{(t)}_{2} \\ \vdots \\ U^{(t)}_{k} \end{bmatrix} \begin{bmatrix} U^{(t)}_{1} & U^{(t)}_{2} & \ldots & U^{(t)}_{k} \end{bmatrix} \right] \nonumber \\ & = & \mathbb{E} \begin{bmatrix} U^{(t)}_{1} U^{(t)}_{1} & U^{(t)}_{1} U^{(t)}_{2} & \ldots & U^{(t)}_{1} U^{(t)}_{k} \\ U^{(t)}_{2} U^{(t)}_{1} & U^{(t)}_{2} U^{(t)}_{2} & \ldots & U^{(t)}_{2} U^{(t)}_{k} \\ \vdots & \vdots & \ldots & \vdots \\ U^{(t)}_{k} U^{(t)}_{1} & U^{(t)}_{k} U^{(t)}_{2} & \ldots & U^{(t)}_{k} U^{(t)}_{k} \end{bmatrix} \nonumber \\ & = & \begin{bmatrix} \sigma^2_1 & \rho_{12} & \ldots & \rho_{1k} \\ \rho_{21} & \sigma^2_2 & \ldots & \rho_{2k} \\ \vdots & \vdots & \ldots & \vdots \\ \rho_{k1} & \rho_{k2} & \ldots & \sigma^2_k \end{bmatrix} \nonumber \\ & = & \mathbf{\Sigma}_{UU} \tag{5.4} \end{eqnarray}\]
La matriz de varianzas y covarianzas no contemporáneas es nula. Es decir, que para todo \(t \neq s\): \[\begin{eqnarray} \mathbb{E} [\mathbf{U}_t \mathbf{U}_s'] & = & \mathbb{E} \left[ \begin{bmatrix} U^{(t)}_{1} \\ U^{(t)}_{2} \\ \vdots \\ U^{(t)}_{k} \end{bmatrix} \begin{bmatrix} U^{(s)}_{1} & U^{(s)}_{2} & \ldots & U^{(s)}_{k} \end{bmatrix} \right] \nonumber \\ & = & \mathbb{E} \begin{bmatrix} U^{(t)}_{1} U^{(s)}_{1} & U^{(t)}_{1} U^{(s)}_{2} & \ldots & U^{(t)}_{1} U^{(s)}_{k} \\ U^{(t)}_{2} U^{(s)}_{1} & U^{(t)}_{2} U^{(s)}_{2} & \ldots & U^{(t)}_{2} U^{(s)}_{k} \\ \vdots & \vdots & \ldots & \vdots \\ U^{(t)}_{k} U^{(s)}_{1} & U^{(t)}_{k} U^{(s)}_{2} & \ldots & U^{(t)}_{k} U^{(s)}_{k} \end{bmatrix} \nonumber \\ & = & \mathbf{0} \tag{5.5} \end{eqnarray}\]
Las ecuaciones (5.4) y (5.5) significan que los residuales \(\mathbf{U}_t\) pueden estar correlacionados entre ellos solo en el caso de que la información sea contemporánea, pero no tienen información en común entre residuales de otros periodos.
Al igual que en el caso del modelo o especificación \(AR(p)\) en la especificación del modelo \(VAR(p)\) existen condiciones de estabilidad. Dichas condiciones están dadas por lo siguiente, definamos el siguiente polinomio que resulta de tomar la matriz \(\mathbf{A}(L)\) en la ecuación (5.3): \[\begin{equation} Det[I_t - A_1 z - A_2 z^2 - \ldots - A_p z^p] \neq 0 \end{equation}\]
Donde las raíces del polinomio cumplen que \(|z| \leq 1\), es decir, se ubican dentro del circulo unitario.
La ecuación (5.3) puede ser rexpresada en una forma similar al un proceso de MA. Al respecto, de forma similar a la siguiente ecuación podemos construir un modelo \(VARMA(p,q)\), el cual no estudiamos es este curso.
Reromando el primer planteamiento, podemos escribir: \[\begin{eqnarray} \mathbf{X}_t & = & \mathbf{A}^{-1}(L) \boldsymbol{\delta} + \mathbf{A}^{-1}(L) \mathbf{U}_t \nonumber \\ & = & \boldsymbol{\mu} + \boldsymbol{\beta}(L) \mathbf{U}_t \tag{5.6} \end{eqnarray}\]
Donde \(\boldsymbol{\mu}\) es un vector de \(k \times 1\) constantes y \(\boldsymbol{\beta}(L)\) es una matriz que depende de \(L\).
Por el lado de las matrices que representan la autocovarianza, estás resultan de resolver lo siguiente: \[\begin{equation} \Gamma_X(\tau) = E[(\mathbf{X}_t - \mu)(\mathbf{X}_{t-\tau} - \mu)'] \end{equation}\]
Ahora, sin pérdida de generalidad digamos que la especificación VAR(p) en la ecuación (5.2) no tiene constante, por lo que \(\boldsymbol{\delta} = \mathbf{0}\), lo que implica que \(\boldsymbol{\mu} = \mathbf{0}\). De esta forma las matrices de autocovarianza resultan de: \[\begin{eqnarray*} \Gamma_{\mathbf{X}}(\tau) & = & E[(\mathbf{X}_t)(\mathbf{X}_{t-\tau})'] \\ & = & \mathbf{A_1} E[(\mathbf{X}_{t-1})(\mathbf{X}_{t-\tau})'] + \mathbf{A_2} E[(\mathbf{X}_{t-2})(\mathbf{X}_{t-\tau})'] \\ & & + \ldots + \mathbf{A_p} E[(\mathbf{X}_{t-p})(\mathbf{X}_{t-\tau})'] + E[(\mathbf{U}_t(\mathbf{X}_{t-\tau})'] \end{eqnarray*}\]
Finalmente, al igual que en el caso \(AR(p)\), requerimos de una métrica que nos permita determinar el número de rezagos óptimo \(p\) en el \(VAR(p)\). Así, establecemos criterios de información similares a los del \(AR(p)\) dados por:
1.Final Prediction Error (FPE): \[\begin{equation} FPE(p) = \left[ \frac{T + kp + 1}{T - kp - 1} \right]^k |\mathbf{\Sigma}_{\hat{U}\hat{U}}(p)| \end{equation}\]
Akaike Criterion (AIC): \[\begin{equation} AIC(p) = ln|\mathbf{\Sigma}_{\hat{U}\hat{U}}(p)| + (k + p k^2) \frac{2}{T} \end{equation}\]
Hannan - Quinn Criterion (HQ): \[\begin{equation} HQ(p) = ln|\mathbf{\Sigma}_{\hat{U}\hat{U}}(p)| + (k + p k^2) \frac{2ln(ln(2))}{T} \end{equation}\]
Schwartz Criterion (SC): \[\begin{equation} SC(p) = ln|\mathbf{\Sigma}_{\hat{U}\hat{U}}(p)| + (k + p k^2) \frac{ln(T)}{T} \end{equation}\]
Donde la matriz de varianzas y covarianzas contemporáneas estará dada por: \[\begin{equation*} \mathbf{\Sigma}_{\hat{U}\hat{U}}(p) = \mathbb{E} \left[ \begin{bmatrix} U^{(t)}_{1} \\ U^{(t)}_{2} \\ \vdots \\ U^{(t)}_{k} \end{bmatrix} \begin{bmatrix} U^{(t)}_{1} & U^{(t)}_{2} & \ldots & U^{(t)}_{k} \end{bmatrix} \right] \end{equation*}\]
. Ahora veámos un ejemplo de estimación de \(VAR(p)\). Para el ejemplo utilizaremos las series de INPC, Tipo de Cambio, rendimiento de los Cetes a 28 días, el IGAE y el Índice de Producción Industrial de los Estados Unidos, todas desestacionalizadas y para el período de enero de 2000 a julio de 2019. Dado que el supuesto estacionariedad sigue presente en nuestro análisis, emplearemos cada una de las series en su versión de diferencias logaritmicas. Las Figuras 5.2 y 5.3 muestra las series referidas.
library(ggplot2)
library(dplyr)
library(stats)
library(MASS)
library(strucchange)
library(zoo)
library(sandwich)
library(urca)
library(lmtest)
library(vars)
#
load("BD/Datos_Ad.RData")
#
DLINPC <- diff(log( ts(Datos_Ad$INPC_Ad, start = c(2000, 1), freq = 12) ))
DLTC <- diff(log( ts(Datos_Ad$TC_Ad, start = c(2000, 1), freq = 12) ))
DLCETE28 <- diff(log( ts(Datos_Ad$CETE28_Ad, start = c(2000, 1), freq = 12) ))
DLIGAE <- diff(log( ts(Datos_Ad$IGAE_Ad, start = c(2000, 1), freq = 12) ))
DLIPI <- diff(log( ts(Datos_Ad$IPI_Ad, start = c(2000, 1), freq = 12) ))
Datos <- data.frame(cbind(DLINPC, DLTC, DLCETE28, DLIGAE, DLIPI))
Datos <- ts(Datos,
start = c(2000, 2), freq = 12)
plot(Datos, plot.type = "s",
col = c("darkgreen", "darkblue", "darkred", "black", "purple"),
main = "Series en Diferencias logaritmicas",
xlab = "Tiempo", ylab = "Variacion")
legend("bottomright", c("INPC", "TC", "CETES28", "IGAE", "IPI"),
cex = 0.6, lty = 1:1,
col = c("darkgreen", "darkblue", "darkred", "black", "purple"))

Figure 5.2: Series en diferencias logarítmicas (Forma 1)
plot(Datos, plot.type = "m",
col = "darkgreen",
main = "Series en Diferencias logaritmicas", xlab = "Tiempo")

Figure 5.3: Series en diferencias logarítmicas (Forma 2)
Dicho lo anterior, a continuación mostraremos la tabla que resume el valor de los distintos criterios de información para una especificación de un \(VAR(p)\) con constante. Notése que es posible especificar un \(VAR(p)\) con tendencia, siempre que exista evidencia de que algunas de las series sean estacionarias alrededor de una tendencia. Caso que no aplica hasta este momento, ya que nuestro análisis de estacionariedad es claro respecto a la media constante (más adelante aportaremos la evidencia de esto), lo cual elimina la posibilidad de incluir una tendencia.
En el Cuadro 5.2 reportamos el número de rezagos propuesto a partir de cada criterio de información y en el Cuadro 5.3 reportamos los resultados de aplicar una prueba de criterios de información para diferentes valores de rezagos. Del cual se concluye que el número óptimo de rezagos es 2 (según el criterio AIC y el FPE) y 1 (según el criterio HQ y el SC). Recordemos que es común que el criterio AIC siempre reporte el mayor valor de rezagos, por lo que es una buena práctica utilizarlo como referente principal.
AIC | HQ | SC | FPE |
---|---|---|---|
2 | 1 | 1 | 2 |
Rezagos | AIC | HQ | SC | FPE |
---|---|---|---|---|
1 | -4.636412e+01 | -4.617847e+01 | -4.590430e+01 | 7.317262e-21 |
2 | -4.639541e+01 | -4.605506e+01 | -4.555241e+01 | 7.094216e-21 |
3 | -4.635305e+01 | -4.585799e+01 | -4.512686e+01 | 7.407479e-21 |
\(\vdots\) | \(\vdots\) | \(\vdots\) | \(\vdots\) | \(\vdots\) |
VARselect(Datos, lag.max = 12, type = "const")
## $selection
## AIC(n) HQ(n) SC(n) FPE(n)
## 2 1 1 2
##
## $criteria
## 1 2
## AIC(n) -43.4369385930444451560106245 -43.4878280980991220872056147
## HQ(n) -43.2759374580961733158801508 -43.1926593506939511257769482
## SC(n) -43.0360414131631969780755753 -42.7528499349835016118959174
## FPE(n) 0.0000000000000000001366449 0.0000000000000000001298899
## 3 4
## AIC(n) -43.4268489491758202802884625 -43.3868843889051234441467386
## HQ(n) -42.9975125893137573029889609 -42.8233804165861613455490442
## SC(n) -42.3577898028258275076041173 -41.9837442593207583740877453
## FPE(n) 0.0000000000000000001381225 0.0000000000000000001438821
## 5 6
## AIC(n) -43.293163285544032703455741 -43.2431704133633161291072611
## HQ(n) -42.595491700768178588987212 -42.4113312161305699987678963
## SC(n) -41.555942172725302441449458 -41.1718683173102135697263293
## FPE(n) 0.000000000000000000158246 0.0000000000000000001667106
## 7 8
## AIC(n) -43.2902076769675190348607430 -43.2419352439015938216471113
## HQ(n) -42.3242008672778737832231855 -42.1417608217550565541387186
## SC(n) -40.8848245976800441781051632 -40.5024711813797466675168835
## FPE(n) 0.0000000000000000001595179 0.0000000000000000001680601
## 9 10
## AIC(n) -43.2201406224138153788771888 -43.1788072276712782127106038
## HQ(n) -41.9857985878103789900706033 -41.8102975806109569134605408
## SC(n) -40.1465955766575959273723129 -39.7711811986806935692584375
## FPE(n) 0.0000000000000000001726236 0.0000000000000000001810365
## 11 12
## AIC(n) -43.1191364389135785017970193 -43.0502244962885995960277796
## HQ(n) -41.6164591793963580812487635 -41.4133796243144800541813311
## SC(n) -39.3774294266886144555428473 -38.9744365008292632523989596
## FPE(n) 0.0000000000000000001936459 0.0000000000000000002093856
De esta forma, justificamos la estimación de un \(VAR(2)\). Los resultados del mismo se reportan en los siguientes cuadros, en los que se muestra el resultado de una de las ecuaciones. Los resultados restantes se encuentran en el código de R mostrado más abajo. Primero mostraremos los resultados de las raíces del polinomio característico en el Cuadro 5.4, seguido de un cuadro para la ecuación del IGAE en el Cuadro 5.5 (por simplicidad se omiten las otras cuatro ecuaciones del VAR(2)), y del Cuadro 5.6 con la matriz \(\mathbf{\Sigma}_{\hat{U}\hat{U}}\) estimada del VAR.
0.7452 | 0.4403 | 0.4403 | 0.3503 | 0.3503 |
0.3342 | 0.3342 | 0.3339 | 0.3339 | 0.06951 |
Variable | Coeficiente | Error Est. | Estad. t | Prob.(\(>\) t) |
---|---|---|---|---|
\(DLINPC_{t-1}\) | -0.2584978 | 0.1658396 | -1.559 | 0.120493 |
\(DLTC_{t-1}\) | 0.0022016 | 0.0152876 | 0.144 | 0.885620 |
\(DLCETE28_{t-1}\) | 0.0009547 | 0.0049115 | 0.194 | 0.846054 |
\(DLIGAE_{t-1}\) | -0.2351453 | 0.0699797 | -3.360 | 0.000917 *** |
\(DLIPI_{t-1}\) | 0.2442406 | 0.0600502 | 4.067 | 6.62e-05 *** |
\(DLINPC_{t-2}\) | -0.0775039 | 0.1694809 | -0.457 | 0.647904 |
\(DLTC_{t-2}\) | -0.0413316 | 0.0144650 | -2.857 | 0.004680 ** |
\(DLCETE28_{t-2}\) | 0.0005341 | 0.0048058 | 0.111 | 0.911612 |
\(DLIGAE_{t-2}\) | -0.0646890 | 0.0693711 | -0.933 | 0.352092 |
\(DLIPI_{t-2}\) | 0.1796286 | 0.0620861 | 2.893 | 0.004195 ** |
\(\delta_4\) | 0.0030377 | 0.0008077 | 3.761 | 0.000217 *** |
Notas: | *** | signif. | al 0.1% | |
** | signif. | al 1% | ||
* | signif. | al 5% |
\(DLINPC_t\) | \(DLTC_t\) | \(DLCE28_t\) | \(DLIGAE_t\) | \(DLIGAE_t\) | |
\(DLINPC_t\) | 3.95e-06 | 3.19e-06 | -1.83e-06 | -5.29-07 | 1.34e-06 |
\(DLTC_t\) | 3.19e-06 | 5.04e-04 | 4.27e-04 | 9.81e-06 | 1.61e-05 |
\(DLCE28_t\) | -1.83e-06 | 4.27e-04 | 4.63e-03 | 1.26e-05 | 2.76e-05 |
\(DLIGAE_t\) | -5.29e-07 | 9.81e-06 | 1.26e-05 | 2.43e-05 | 8.75e-06 |
\(DLIGAE_t\) | 1.34e-06 | 1.61e-05 | 2.76e-05 | 8.75e-06 | 3.13e-05 |
##
## VAR Estimation Results:
## =========================
## Endogenous variables: DLINPC, DLTC, DLCETE28, DLIGAE, DLIPI
## Deterministic variables: const
## Sample size: 279
## Log Likelihood: 4142.895
## Roots of the characteristic polynomial:
## 0.53 0.53 0.4501 0.4501 0.4425 0.4425 0.3251 0.3251 0.1677 0.1677
## Call:
## VAR(y = Datos, p = 2, type = "const")
##
##
## Estimation results for equation DLINPC:
## =======================================
## DLINPC = DLINPC.l1 + DLTC.l1 + DLCETE28.l1 + DLIGAE.l1 + DLIPI.l1 + DLINPC.l2 + DLTC.l2 + DLCETE28.l2 + DLIGAE.l2 + DLIPI.l2 + const
##
## Estimate Std. Error t value Pr(>|t|)
## DLINPC.l1 0.387061 0.063100 6.134 0.0000000030610259 ***
## DLTC.l1 -0.004611 0.005286 -0.872 0.3839
## DLCETE28.l1 0.001229 0.002078 0.592 0.5546
## DLIGAE.l1 -0.022088 0.015077 -1.465 0.1441
## DLIPI.l1 0.009878 0.019363 0.510 0.6104
## DLINPC.l2 -0.006707 0.063621 -0.105 0.9161
## DLTC.l2 0.009608 0.005496 1.748 0.0816 .
## DLCETE28.l2 0.001827 0.002051 0.891 0.3737
## DLIGAE.l2 0.006544 0.014289 0.458 0.6473
## DLIPI.l2 -0.015245 0.019632 -0.777 0.4381
## const 0.002325 0.000294 7.908 0.0000000000000688 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
##
## Residual standard error: 0.002176 on 268 degrees of freedom
## Multiple R-Squared: 0.1783, Adjusted R-squared: 0.1476
## F-statistic: 5.815 on 10 and 268 DF, p-value: 0.00000006289
##
##
## Estimation results for equation DLTC:
## =====================================
## DLTC = DLINPC.l1 + DLTC.l1 + DLCETE28.l1 + DLIGAE.l1 + DLIPI.l1 + DLINPC.l2 + DLTC.l2 + DLCETE28.l2 + DLIGAE.l2 + DLIPI.l2 + const
##
## Estimate Std. Error t value Pr(>|t|)
## DLINPC.l1 -1.344803 0.745382 -1.804 0.07233 .
## DLTC.l1 0.315786 0.062442 5.057 0.00000079 ***
## DLCETE28.l1 -0.039912 0.024542 -1.626 0.10506
## DLIGAE.l1 0.379306 0.178102 2.130 0.03411 *
## DLIPI.l1 -0.514827 0.228727 -2.251 0.02521 *
## DLINPC.l2 0.071779 0.751538 0.096 0.92398
## DLTC.l2 -0.183813 0.064926 -2.831 0.00499 **
## DLCETE28.l2 0.030125 0.024228 1.243 0.21481
## DLIGAE.l2 0.070713 0.168797 0.419 0.67561
## DLIPI.l2 -0.166610 0.231909 -0.718 0.47312
## const 0.006463 0.003473 1.861 0.06388 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
##
## Residual standard error: 0.0257 on 268 degrees of freedom
## Multiple R-Squared: 0.1425, Adjusted R-squared: 0.1105
## F-statistic: 4.454 on 10 and 268 DF, p-value: 0.000008102
##
##
## Estimation results for equation DLCETE28:
## =========================================
## DLCETE28 = DLINPC.l1 + DLTC.l1 + DLCETE28.l1 + DLIGAE.l1 + DLIPI.l1 + DLINPC.l2 + DLTC.l2 + DLCETE28.l2 + DLIGAE.l2 + DLIPI.l2 + const
##
## Estimate Std. Error t value Pr(>|t|)
## DLINPC.l1 3.933798 1.861561 2.113 0.0355 *
## DLTC.l1 0.112997 0.155945 0.725 0.4693
## DLCETE28.l1 0.113300 0.061292 1.849 0.0656 .
## DLIGAE.l1 -0.588758 0.444803 -1.324 0.1868
## DLIPI.l1 1.174496 0.571237 2.056 0.0407 *
## DLINPC.l2 -2.213087 1.876936 -1.179 0.2394
## DLTC.l2 0.117661 0.162151 0.726 0.4687
## DLCETE28.l2 0.063398 0.060509 1.048 0.2957
## DLIGAE.l2 -0.237974 0.421565 -0.565 0.5729
## DLIPI.l2 1.110203 0.579183 1.917 0.0563 .
## const -0.007514 0.008674 -0.866 0.3872
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
##
## Residual standard error: 0.06419 on 268 degrees of freedom
## Multiple R-Squared: 0.08823, Adjusted R-squared: 0.05421
## F-statistic: 2.593 on 10 and 268 DF, p-value: 0.005122
##
##
## Estimation results for equation DLIGAE:
## =======================================
## DLIGAE = DLINPC.l1 + DLTC.l1 + DLCETE28.l1 + DLIGAE.l1 + DLIPI.l1 + DLINPC.l2 + DLTC.l2 + DLCETE28.l2 + DLIGAE.l2 + DLIPI.l2 + const
##
## Estimate Std. Error t value Pr(>|t|)
## DLINPC.l1 0.719855 0.393617 1.829 0.0685 .
## DLTC.l1 -0.218508 0.032974 -6.627 0.000000000188 ***
## DLCETE28.l1 0.007718 0.012960 0.596 0.5520
## DLIGAE.l1 0.037559 0.094051 0.399 0.6900
## DLIPI.l1 0.389894 0.120785 3.228 0.0014 **
## DLINPC.l2 -0.737653 0.396868 -1.859 0.0642 .
## DLTC.l2 0.073830 0.034286 2.153 0.0322 *
## DLCETE28.l2 -0.013542 0.012794 -1.058 0.2908
## DLIGAE.l2 -0.142845 0.089138 -1.603 0.1102
## DLIPI.l2 -0.154835 0.122465 -1.264 0.2072
## const 0.001637 0.001834 0.893 0.3729
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
##
## Residual standard error: 0.01357 on 268 degrees of freedom
## Multiple R-Squared: 0.3272, Adjusted R-squared: 0.3021
## F-statistic: 13.03 on 10 and 268 DF, p-value: < 0.00000000000000022
##
##
## Estimation results for equation DLIPI:
## ======================================
## DLIPI = DLINPC.l1 + DLTC.l1 + DLCETE28.l1 + DLIGAE.l1 + DLIPI.l1 + DLINPC.l2 + DLTC.l2 + DLCETE28.l2 + DLIGAE.l2 + DLIPI.l2 + const
##
## Estimate Std. Error t value Pr(>|t|)
## DLINPC.l1 0.042383 0.326611 0.130 0.8968
## DLTC.l1 -0.163742 0.027361 -5.985 0.00000000693 ***
## DLCETE28.l1 0.012143 0.010754 1.129 0.2598
## DLIGAE.l1 0.098821 0.078041 1.266 0.2065
## DLIPI.l1 0.067742 0.100224 0.676 0.4997
## DLINPC.l2 -0.524835 0.329309 -1.594 0.1122
## DLTC.l2 0.053353 0.028449 1.875 0.0618 .
## DLCETE28.l2 -0.016237 0.010616 -1.529 0.1273
## DLIGAE.l2 -0.088483 0.073964 -1.196 0.2326
## DLIPI.l2 -0.082982 0.101618 -0.817 0.4149
## const 0.002361 0.001522 1.551 0.1220
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
##
## Residual standard error: 0.01126 on 268 degrees of freedom
## Multiple R-Squared: 0.1978, Adjusted R-squared: 0.1679
## F-statistic: 6.61 on 10 and 268 DF, p-value: 0.000000003715
##
##
##
## Covariance matrix of residuals:
## DLINPC DLTC DLCETE28 DLIGAE DLIPI
## DLINPC 0.0000047345 -0.0000001939 0.000004559 0.000006652 0.00000700
## DLTC -0.0000001939 0.0006606619 0.000369751 -0.000035441 -0.00003174
## DLCETE28 0.0000045591 0.0003697510 0.004120747 0.000063618 0.00008525
## DLIGAE 0.0000066522 -0.0000354410 0.000063618 0.000184234 0.00011641
## DLIPI 0.0000069998 -0.0000317443 0.000085254 0.000116407 0.00012685
##
## Correlation matrix of residuals:
## DLINPC DLTC DLCETE28 DLIGAE DLIPI
## DLINPC 1.000000 -0.003466 0.03264 0.22524 0.2856
## DLTC -0.003466 1.000000 0.22409 -0.10159 -0.1097
## DLCETE28 0.032640 0.224095 1.00000 0.07301 0.1179
## DLIGAE 0.225240 -0.101585 0.07301 1.00000 0.7615
## DLIPI 0.285629 -0.109656 0.11792 0.76147 1.0000
Finalmente, en el Cuadro 5.7 reportamos las pruebas de diagnóstico del VAR(2). Incluimos las pruebas de correlación serial (o autocorrelación), normalidad y de heterocedasticidad. De acuerdo con esa información, la correlación serial muestra que existe relación de la matriz de covarianzas no contemporánea considerando pocos rezagos, pero se elimina conforme los rezagos se incrementan. En cuanto a normalidad, se observa que los residuales no lo son, por lo que se requeriría mejorar la especificación del VAR. Finalmente, se observa que los residuales no son homocedásticos.
Estadística (rezagos) | Coeficiente | p-value | Conclusión |
---|---|---|---|
Correlación Serial (\(\chi^2 (2)\)) | 59.436 | 0.1696 | Existe autocorrelación serial |
Correlación Serial (\(\chi^2 (4)\)) | 127.17 | 0.03461 | No existe autocorrelación serial |
Correlación Serial (\(\chi^2 (6)\)) | 183.14 | 0.03393 | No existe autocorrelación serial |
Normalidad - JB (\(\chi^2\)) | 2335 | 0.0000 | Los residuales no son normales |
ARCH (\(\chi^2 (2)\)) | 691.58 | 0.0000 | Los residuales no son homocedásticos |
### Diagnostic tests
#### Normalidad:
normality.test(VAR_p)
## $JB
##
## JB-Test (multivariate)
##
## data: Residuals of VAR object VAR_p
## Chi-squared = 36186, df = 10, p-value < 0.00000000000000022
##
##
## $Skewness
##
## Skewness only (multivariate)
##
## data: Residuals of VAR object VAR_p
## Chi-squared = 1261, df = 5, p-value < 0.00000000000000022
##
##
## $Kurtosis
##
## Kurtosis only (multivariate)
##
## data: Residuals of VAR object VAR_p
## Chi-squared = 34925, df = 5, p-value < 0.00000000000000022
#### Autocorrelacion Serial:
#### LAGS = 2:
serial.test(VAR_p, lags.bg = 2, type = "BG")
##
## Breusch-Godfrey LM test
##
## data: Residuals of VAR object VAR_p
## Chi-squared = 74.839, df = 50, p-value = 0.013
#### LAGS = 4:
serial.test(VAR_p, lags.bg = 4, type = "BG")
##
## Breusch-Godfrey LM test
##
## data: Residuals of VAR object VAR_p
## Chi-squared = 131.69, df = 100, p-value = 0.01849
#### LAGS = 6:
serial.test(VAR_p, lags.bg = 6, type = "BG")
##
## Breusch-Godfrey LM test
##
## data: Residuals of VAR object VAR_p
## Chi-squared = 201.63, df = 150, p-value = 0.003147
#### Homocedasticidad:
arch.test(VAR_p, lags.multi = 6)
##
## ARCH (multivariate)
##
## data: Residuals of VAR object VAR_p
## Chi-squared = 2122.4, df = 1350, p-value < 0.00000000000000022
5.3 Análisis de Impulso-Respuesta
Una de las grandes ventajas que aporta el análisis de los modelos VAR es el análisis de Impulso-Respuesta. Dicho análisis busca cuantificar el efecto que tiene en \(\mathbf{X}_t\) una innovación o cambio en los residuales de cualquiera de las variables en un momento definido. Partamos de la ecuación (5.6) de forma que tenemos: \[\begin{eqnarray} \mathbf{X}_t & = & \mathbf{A}^{-1}(L) \delta + \mathbf{A}^{-1}(L) \mathbf{U}_t \nonumber \\ & = & \mu + \mathbf{B}(L) \mathbf{U}_t \nonumber \\ & = & \mu + \Psi_0 \mathbf{U}_t + \Psi_1 \mathbf{U}_{t-1} + \Psi_2 \mathbf{U}_{t-2} + \Psi_3 \mathbf{U}_{t-3} + \ldots \end{eqnarray}\]
Donde \(\Psi_0 = I\) y cada una de las \(\Psi_i = - \mathbf{B}_i\), \(i = 1, 2, \ldots\). De esta forma se verifica el efecto que tiene en \(\mathbf{X}_t\) cada una de las innovaciones pasadas. Por lo que el análisis de Impulso-Respuesta cuantifica el efecto de cada una de esas matrices en las que hemos descompuesto a \(\mathbf{B}(L)\).
. Retomando el modelo \(VAR(2)\) anteriormente estimado, en las siguientes figuras reportamos las gráficas de Impulso-Respuesta de la serie \(DLTC_t\) ante cambios en los residuales del resto de las series y de la propia serie.
IR_DLINPC <- irf(VAR_p, n.ahead = 12, boot = TRUE,
ci = 0.95, response = "DLINPC")
IR_DLINPC
##
## Impulse response coefficients
## $DLINPC
## DLINPC
## [1,] 0.0021759002410
## [2,] 0.0008094393250
## [3,] 0.0002429936391
## [4,] 0.0001048999556
## [5,] 0.0000430519256
## [6,] 0.0000257195308
## [7,] 0.0000108405478
## [8,] 0.0000011471582
## [9,] -0.0000014256627
## [10,] -0.0000009999499
## [11,] -0.0000003443770
## [12,] -0.0000001512886
## [13,] -0.0000001157354
##
## $DLTC
## DLINPC
## [1,] 0.0000000000000
## [2,] -0.0000826837093
## [3,] 0.0003117546911
## [4,] 0.0002648974979
## [5,] 0.0000587162871
## [6,] -0.0000289491380
## [7,] -0.0000105463736
## [8,] 0.0000105785893
## [9,] 0.0000076216336
## [10,] -0.0000004038885
## [11,] -0.0000021138204
## [12,] -0.0000004691794
## [13,] 0.0000003771599
##
## $DLCETE28
## DLINPC
## [1,] 0.00000000000000
## [2,] 0.00006486928725
## [3,] 0.00013182636385
## [4,] 0.00003487943931
## [5,] 0.00004740702286
## [6,] 0.00003336371156
## [7,] 0.00001571609856
## [8,] 0.00000377046957
## [9,] 0.00000005672766
## [10,] 0.00000025569500
## [11,] 0.00000033794064
## [12,] 0.00000004626880
## [13,] -0.00000011376620
##
## $DLIGAE
## DLINPC
## [1,] 0.00000000000000
## [2,] -0.00021156780483
## [3,] -0.00017900748374
## [4,] -0.00001453803984
## [5,] 0.00004387550079
## [6,] 0.00001348412556
## [7,] -0.00000660541189
## [8,] -0.00000344927548
## [9,] 0.00000223865243
## [10,] 0.00000206681740
## [11,] 0.00000008258756
## [12,] -0.00000046595182
## [13,] -0.00000009698431
##
## $DLIPI
## DLINPC
## [1,] 0.00000000000000
## [2,] 0.00007038187903
## [3,] -0.00011077803202
## [4,] -0.00003218007799
## [5,] -0.00001697303009
## [6,] 0.00000048565947
## [7,] 0.00001045292187
## [8,] 0.00000469541763
## [9,] 0.00000035996398
## [10,] -0.00000051048646
## [11,] 0.00000005294854
## [12,] 0.00000026647657
## [13,] 0.00000009015073
##
##
## Lower Band, CI= 0.95
## $DLINPC
## DLINPC
## [1,] 0.001864170847
## [2,] 0.000499776775
## [3,] 0.000002450675
## [4,] -0.000078104730
## [5,] -0.000075950781
## [6,] -0.000037958817
## [7,] -0.000025483439
## [8,] -0.000012332298
## [9,] -0.000011329253
## [10,] -0.000007641493
## [11,] -0.000004043746
## [12,] -0.000001841703
## [13,] -0.000001172170
##
## $DLTC
## DLINPC
## [1,] 0.000000000000
## [2,] -0.000286990353
## [3,] 0.000061870696
## [4,] 0.000078542144
## [5,] -0.000039820370
## [6,] -0.000095870183
## [7,] -0.000050900347
## [8,] -0.000019789658
## [9,] -0.000005574237
## [10,] -0.000008547257
## [11,] -0.000009189057
## [12,] -0.000004530429
## [13,] -0.000001945539
##
## $DLCETE28
## DLINPC
## [1,] 0.000000000000
## [2,] -0.000230649362
## [3,] -0.000196536071
## [4,] -0.000126449052
## [5,] -0.000058700460
## [6,] -0.000023095154
## [7,] -0.000007659372
## [8,] -0.000008557329
## [9,] -0.000008242220
## [10,] -0.000005060508
## [11,] -0.000002432306
## [12,] -0.000001136291
## [13,] -0.000001066601
##
## $DLIGAE
## DLINPC
## [1,] 0.000000000000
## [2,] -0.000410323921
## [3,] -0.000418493922
## [4,] -0.000146714896
## [5,] -0.000044408954
## [6,] -0.000035327961
## [7,] -0.000035119635
## [8,] -0.000022423812
## [9,] -0.000012260613
## [10,] -0.000003350492
## [11,] -0.000003212534
## [12,] -0.000004039474
## [13,] -0.000002483970
##
## $DLIPI
## DLINPC
## [1,] 0.0000000000000
## [2,] -0.0001982996896
## [3,] -0.0003103493634
## [4,] -0.0001445269721
## [5,] -0.0001147657072
## [6,] -0.0000494580078
## [7,] -0.0000148574620
## [8,] -0.0000103989132
## [9,] -0.0000059299583
## [10,] -0.0000046364719
## [11,] -0.0000029746270
## [12,] -0.0000012355125
## [13,] -0.0000008043852
##
##
## Upper Band, CI= 0.95
## $DLINPC
## DLINPC
## [1,] 0.002423055334
## [2,] 0.001069138548
## [3,] 0.000514403106
## [4,] 0.000299906999
## [5,] 0.000185297033
## [6,] 0.000101768840
## [7,] 0.000056864142
## [8,] 0.000028728717
## [9,] 0.000018624195
## [10,] 0.000012817976
## [11,] 0.000006987585
## [12,] 0.000004523406
## [13,] 0.000002520736
##
## $DLTC
## DLINPC
## [1,] 0.000000000000
## [2,] 0.000137344529
## [3,] 0.000583804216
## [4,] 0.000433186162
## [5,] 0.000171212748
## [6,] 0.000036307348
## [7,] 0.000034282255
## [8,] 0.000038723787
## [9,] 0.000024964010
## [10,] 0.000009783037
## [11,] 0.000003517692
## [12,] 0.000003748501
## [13,] 0.000003845745
##
## $DLCETE28
## DLINPC
## [1,] 0.000000000000
## [2,] 0.000304305857
## [3,] 0.000373465696
## [4,] 0.000167853443
## [5,] 0.000127305791
## [6,] 0.000089751434
## [7,] 0.000049983292
## [8,] 0.000025579016
## [9,] 0.000012448007
## [10,] 0.000006485072
## [11,] 0.000004515005
## [12,] 0.000002515525
## [13,] 0.000001179168
##
## $DLIGAE
## DLINPC
## [1,] 0.000000000000
## [2,] -0.000006014034
## [3,] 0.000035752798
## [4,] 0.000101880979
## [5,] 0.000107697317
## [6,] 0.000067291001
## [7,] 0.000019302644
## [8,] 0.000009260325
## [9,] 0.000010330953
## [10,] 0.000010351320
## [11,] 0.000004299667
## [12,] 0.000002280664
## [13,] 0.000001077557
##
## $DLIPI
## DLINPC
## [1,] 0.0000000000000
## [2,] 0.0002938283073
## [3,] 0.0001164391542
## [4,] 0.0000642643310
## [5,] 0.0000621769713
## [6,] 0.0000441663489
## [7,] 0.0000332198998
## [8,] 0.0000181489496
## [9,] 0.0000082995640
## [10,] 0.0000034179891
## [11,] 0.0000034672138
## [12,] 0.0000024110405
## [13,] 0.0000009791902
#plot(IR_DLINPC)

Figure 5.4: Impulso - Respuesta en \(DLTC_t\)

Figure 5.5: Impulso - Respuesta en \(DLTC_t\)

Figure 5.6: Impulso - Respuesta en \(DLTC_t\)

Figure 5.7: Impulso - Respuesta en \(DLTC_t\)

Figure 5.8: Impulso - Respuesta en \(DLTC_t\)
Los resultados muestran que la respuesta de \(DLTC_t\) ante impulsos en los términos de error fue estadísticamente significativo sólo para alguunos de los casos y en periodos cortos de tiempo. El resto de los resultados de Impulso-Respuesta se encuentra en el Scrip llamado Clase 15 que se ubica en el repositorio de GitHub.
5.4 VAR Estructural
El enfoque VAR de Sims (1980) tiene la propiedad deseable de que todas las variables se tratan simétricamente, de modo que todas las variables son endógenas en conjunto y el econometrista no depende de ninguna restricción de identificación. Consideremos un sistema VAR de primer orden del tipo representado en la ecuación (5.2): \[\begin{equation} \mathbf{X}_t = \mathbf{\delta} + A_1 \mathbf{X}_{t-1} + \mathbf{U}_{t} (\#eq:VAR_p2) \end{equation}\]
Sin embargo, dada la naturaleza un tanto ad hoc de la descomposición de Choleski, la belleza del enfoque parece disminuida cuando se construyen funciones de respuesta al impulso y descomposiciones de varianza del error de pronóstico. Además, el enfoque VAR ha sido criticado por estar desprovisto de cualquier contenido económico. El único papel del economista es sugerir las variables apropiadas para incluir en el VAR. A partir de ese punto, el procedimiento es casi mecánico. Sin embargo, es posible utilizar una teoría económica para imponer restricciones a las variables de modo que los resultados no sean ad hoc.
A menos que el modelo estructural subyacente pueda identificarse a partir del modelo VAR de forma reducida, las innovaciones en una descomposición de Choleski no tienen una interpretación económica directa. Sin embargo, en lugar de utilizar una descomposición de Choleski, es posible imponer restricciones a los errores para identificar completamente los shocks estructurales de una manera que sea consistente con un modelo económico subyacente. Consideremos un VAR(2) en el que \(\mathbf{X}_t\) contiene a dos series \(Y_t\) y \(Z_t\): \[\begin{eqnarray} Y_t & = & a_{10} + a_{11} Y_{t - 1} + a_{12} Z_{t-1} + U_{1t} \nonumber \\ Z_t & = & a_{20} + a_{21} Y_{t - 1} + a_{22} Z_{t-1} + U_{2t} \tag{5.7} \end{eqnarray}\]
Para nuestros propósitos, el punto importante a destacar es que los dos términos de error \(U_{1t}\) y \(U_{2t}\) son en realidad compuestos de los shocks subyacentes \(\varepsilon_{Yt}\) y \(\varepsilon_{Zt}\). Así, \[\begin{equation*} \mathbf{U}_t = \begin{bmatrix} U_{1t} \\ U_{2t} \end{bmatrix} = \begin{bmatrix} b_{11} & b_{12} \\ b_{21} & b_{22} \end{bmatrix} \begin{bmatrix} \varepsilon_{Yt} \\ \varepsilon_{Zt} \end{bmatrix} \end{equation*}\]
Aunque estos shocks compuestos son los errores de pronóstico de un valor adelante en \(Y_t\) y \(Z_t\), no tienen una interpretación estructural. Por lo tanto, existe una diferencia importante entre usar VAR para pronósticos y análisis económico. En nuestra representación (5.7) \(U_{1t}\) y \(U_{2t}\) son errores de pronóstico. Si solo nos interesa el pronóstico, los componentes de los errores de pronóstico no son importantes.
Dado el modelo económico, \(\varepsilon_{Yt}\) y \(\varepsilon_{Zt}\) son los cambios autónomos en \(Y_t\) y \(Z_t\) en el período \(t\), respectivamente. Si queremos obtener las funciones de impulso - respuesta o las descomposiciones de varianza, es necesario usar los shocks estructurales (es decir, \(\varepsilon_{Yt}\) y \(\varepsilon_{Zt}\)), no los errores de pronóstico.
El objetivo de un VAR estructural es usar la teoría económica (en lugar de la descomposición de Choleski) para recuperar las innovaciones estructurales a partir de los residuos \(U_{1t}\) y \(U_{2t}\).
Una forma de sustituir el VAR estructural es ordenar las series en el VAR de las más correlacionadas a las menos correlacionadas. Si el coeficiente de correlación entre \(U_{1t}\) y \(U_{2t}\) es bajo, es poco probable que el ordenamiento sea importante. Sin embargo, en un VAR con varias variables, es improbable que todas las correlaciones sean pequeñas. Después de todo, al seleccionar las variables que se incluirán en un modelo, es probable que se elijan variables que muestren fuertes comovimientos. Cuando los residuos de un VAR están correlacionados, no es práctico probar todos los ordenamientos alternativos. Con un modelo de cuatro variables, hay 24 (es decir, \(4!\)) ordenamientos posibles.
Sims (1986) y Bernanke (1986) propusieron modelar las innovaciones utilizando el análisis económico. La idea básica es estimar las relaciones entre los shocks estructurales utilizando un modelo económico. Para entender el procedimiento, es útil examinar la relación entre los errores de pronóstico y las innovaciones estructurales en un VAR de \(n\) variables.
Dado que la relación es invariante a la longitud de los rezagos, podemos escribir el VAR(1) como: \[\begin{eqnarray*} \mathbf{X}_t & = & \boldsymbol{\delta} + \mathbf{A_1} \mathbf{X}_{t-1} + \mathbf{U}_{t} \\ & = & \mathbf{B}^{-1} \mathbf{\Gamma}_{0} + \mathbf{B}^{-1} \mathbf{\Gamma}_{1} \mathbf{X}_{t-1} + \mathbf{B}^{-1} \mathbf{\varepsilon}_{t} \\ \mathbf{B} \mathbf{X}_t & = & \mathbf{\Gamma}_{0} + \mathbf{\Gamma}_{1} \mathbf{X}_{t-1} + \mathbf{\varepsilon}_{t} \end{eqnarray*}\]
Donde \(\mathbf{B}\) es una matriz que establece la estructura entre las variables. Sin embargo, la selección de los distintos \(bij \in \mathbf{B}\) no puede ser completamente arbitraria.
La cuestión es restringir el sistema de modo que:Para resolver este problema de identificación, simplemente cuente las ecuaciones y las incógnitas. Usando MCO, podemos obtener la matriz de varianza/covarianza \(\mathbf{\Sigma}\): \[\begin{equation*} \mathbf{\Sigma} = \begin{bmatrix} \sigma_1^2 & \sigma_{12} & \cdots & \sigma_{1n} \\ \sigma_{21} & \sigma_2^2 & \cdots & \sigma_{2n} \\ \vdots & \vdots & \cdots & \vdots \\ \sigma_{n1} & \sigma_{n2} & \cdots & \sigma_n^2 \\ \end{bmatrix} \end{equation*}\]
Donde cada elemento de \(\mathbf{\Sigma}\) se estima como la suma: \[\begin{equation*} \sigma_{ij} = \frac{\sum_{i = 1}^{T} U_{it} U_{jt} }{T} \end{equation*}\]
Como \(\mathbf{\Sigma}\) es simétrica, contiene sólo \((n + 1)n/2\) elementos distintos. Hay \(n\) elementos a lo largo de la diagonal principal, \((n - 1)\) a lo largo del primer elemento fuera de la diagonal, \((n - 2)\) a lo largo del siguiente elemento fuera de la diagonal, así sucesivamente, y un elemento de esquina para un total de \((n2 + n)/2\) elementos libres.
Dado que los elementos diagonales de \(\mathbf{B}\) son todos la unidad, \(\mathbf{B}\) contiene \(n^2 - n\) valores desconocidos. Además, existen los \(n\) valores desconocidos \(Var(\varepsilon_{it})\) para un total de \(n^2\) valores desconocidos en el modelo estructural [es decir, los \(n^2 - n\) valores de \(\mathbf{B}\) más los \(n\) valores \(Var(\varepsilon_{it})\)].
Ahora la respuesta al problema de identificación es simple; para identificar las \(n^2\) incógnitas a partir de los elementos independientes conocidos \((n^2 + n)/2\) de \(\mathbf{\Sigma}\), es necesario imponer restricciones adicionales \(n^2 - [(n^2 + n)/2] = (n^2 + n)/2\) al sistema.
Este resultado se generaliza a un modelo con \(p\) rezagos: Para identificar el modelo estructural a partir de un VAR estimado, es necesario imponer restricciones \((n^2 - n)/2\) al modelo estructural.
Para aquellos que desean un poco más de formalidad, escriba la matriz de varianzas / covarianzas de los residuos de regresión como: \[\begin{equation*} \mathbb{E}[\hat{\mathbf{U}}_{t} \hat{\mathbf{U}}_{t}'] = \mathbf{\Sigma} = \begin{bmatrix} \sigma_1^2 & \sigma_{12} & \cdots & \sigma_{1n} \\ \sigma_{21} & \sigma_2^2 & \cdots & \sigma_{2n} \\ \vdots & \vdots & \cdots & \vdots \\ \sigma_{n1} & \sigma_{n2} & \cdots & \sigma_n^2 \\ \end{bmatrix} \end{equation*}\]
Dado que: \(\mathbf{U}_t = \mathbf{B}^{-1} \mathbf{\varepsilon}_t\), de esta forma: \[\begin{equation*} \mathbb{E}[\hat{\mathbf{U}}_{t} \hat{\mathbf{U}}_{t}'] = \mathbb{E}[(\mathbf{B}^{-1} \mathbf{\varepsilon}_t)(\mathbf{B}^{-1} \mathbf{\varepsilon}_t)'] = \mathbb{E}[\mathbf{B}^{-1} \mathbf{\varepsilon}_t \mathbf{\varepsilon}_t' (\mathbf{B}^{-1})'] = \mathbf{B}^{-1} \mathbb{E}[\mathbf{\varepsilon}_t \mathbf{\varepsilon}_t'] (\mathbf{B}^{-1})' \end{equation*}\]
Donde \(\mathbb{E}[\mathbf{\varepsilon}_t \mathbf{\varepsilon}_t']\) es varianza estructural de las innovaciones y \(\mathbf{B}^{-1}\) es la matriz que permite darle estructura a la varianza estructural. De esta forma: \[\begin{equation*} \mathbf{\Sigma_{\varepsilon}} = \mathbb{E}[\mathbf{\varepsilon}_t \mathbf{\varepsilon}_t'] \end{equation*}\]
. Retomemos el conjunto de variables del ejemplo de una VAR(p) antes discutido, pero solo consideremos las variables domésticas y en orden de las más endógenas a las menos endógenas (\(\Delta LINPC\), \(\Delta LIGAE\), \(\Delta LCETE28\), \(\Delta LTC\))–dejando fuera al IPI de Estados Unidos–. En este caso requerimos establecer las restricciones \(\frac{K^2 - K}{2}\). Pensemos en una matriz: \[\begin{equation*} \begin{pmatrix} \text{NA} & \text{NA} & \text{NA} & \text{NA}\\ 0 & \text{NA} & \text{NA} & \text{NA}\\ 0 & 0 & \text{NA} & \text{NA}\\ 0 & 0 & 0 & \text{NA} \end{pmatrix} \end{equation*}\]
Y en una matriz que capture los efectos individuales: \[\begin{equation*} \begin{pmatrix} \text{NA} & 0 & 0 & 0 \\ 0 & \text{NA} & 0 & 0 \\ 0 & 0 & \text{NA} & 0 \\ 0 & 0 & 0 & \text{NA} \end{pmatrix} \end{equation*}\]
Donde estaríamos imponiendo la restricción de que las variables solo se relacionan en los casos que son distintos de cero (0). Dado lo anterior, obtendríamos el siguiente resultado de la matriz de covarianza restringida: \[\begin{equation*} \begin{pmatrix} 1 & -0.03652 & -0.000252 & -0.001698 \\ 0 & 1.00000 & -0.024109 & 0.077889 \\ 0 & 0 & 1.000000 & -0.503508 \\ 0 & 0 & 0 & 1 \end{pmatrix} \end{equation*}\]
Y de la matiz de efectos individuales: \[\begin{equation*} \begin{pmatrix} 0.002113 & 0 & 0 & 0 \\ 0 & 0.01369 & 0 & 0 \\ 0 & 0 & 0.0634 & 0 \\ 0 & 0 & 0 & 0.02585 \end{pmatrix} \end{equation*}\]
#
Datos <- data.frame(cbind(DLINPC, DLIGAE, DLCETE28, DLTC))
Datos <- ts(Datos,
start = c(2000, 2), freq = 12)
VARselect(Datos, lag.max = 12, type = "const")
## $selection
## AIC(n) HQ(n) SC(n) FPE(n)
## 2 2 1 2
##
## $criteria
## 1 2
## AIC(n) -33.521409602805981364781 -33.616338087137677348437
## HQ(n) -33.414075512840469173170 -33.423136725199746877024
## SC(n) -33.254144816218484947967 -33.135261471280180956001
## FPE(n) 0.000000000000002765949 0.000000000000002515668
## 3 4
## AIC(n) -33.565395809217491773779 -33.541826085160096226900
## HQ(n) -33.286327175307150127992 -33.176890179277343406739
## SC(n) -32.870507364089995405720 -32.633125810762606988646
## FPE(n) 0.000000000000002647675 0.000000000000002711834
## 5 6
## AIC(n) -33.477447219141787115859 -33.417817003960756494507
## HQ(n) -33.026644041286616015896 -32.881146554133181325597
## SC(n) -32.354935115474297901983 -32.081493071023274410436
## FPE(n) 0.000000000000002893893 0.000000000000003074404
## 7 8
## AIC(n) -33.44082242666117110730 -33.416926070357718003834
## HQ(n) -32.81828470486117765859 -32.708521076585313380747
## SC(n) -31.89068666445368549489 -31.652978478880235968518
## FPE(n) 0.00000000000000300813 0.000000000000003085823
## 9 10
## AIC(n) -33.373717109782838008414 -33.317048231898660048955
## HQ(n) -32.579444844038022210952 -32.436908694181433077119
## SC(n) -31.395957689035355997476 -31.125476981881185167822
## FPE(n) 0.000000000000003228696 0.000000000000003425694
## 11 12
## AIC(n) -33.252581037301176536403 -33.212431345326635323545
## HQ(n) -32.286574227611531284765 -32.160557263664578897533
## SC(n) -30.847197958013701679647 -30.593236436769156938453
## FPE(n) 0.000000000000003665237 0.000000000000003829719
##
## VAR Estimation Results:
## =========================
## Endogenous variables: DLINPC, DLIGAE, DLCETE28, DLTC
## Deterministic variables: const
## Sample size: 279
## Log Likelihood: 3139.909
## Roots of the characteristic polynomial:
## 0.5346 0.5346 0.4467 0.4467 0.4372 0.4372 0.2395 0.2395
## Call:
## VAR(y = Datos, p = 2, type = "const")
##
##
## Estimation results for equation DLINPC:
## =======================================
## DLINPC = DLINPC.l1 + DLIGAE.l1 + DLCETE28.l1 + DLTC.l1 + DLINPC.l2 + DLIGAE.l2 + DLCETE28.l2 + DLTC.l2 + const
##
## Estimate Std. Error t value Pr(>|t|)
## DLINPC.l1 0.3936901 0.0621471 6.335 0.0000000009896467 ***
## DLIGAE.l1 -0.0178878 0.0092660 -1.930 0.0546 .
## DLCETE28.l1 0.0011197 0.0020507 0.546 0.5855
## DLTC.l1 -0.0043366 0.0052130 -0.832 0.4062
## DLINPC.l2 -0.0162582 0.0621158 -0.262 0.7937
## DLIGAE.l2 -0.0022728 0.0088328 -0.257 0.7971
## DLCETE28.l2 0.0018184 0.0020464 0.889 0.3750
## DLTC.l2 0.0092343 0.0054652 1.690 0.0922 .
## const 0.0023387 0.0002932 7.976 0.0000000000000432 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
##
## Residual standard error: 0.002172 on 270 degrees of freedom
## Multiple R-Squared: 0.175, Adjusted R-squared: 0.1505
## F-statistic: 7.157 on 8 and 270 DF, p-value: 0.0000000135
##
##
## Estimation results for equation DLIGAE:
## =======================================
## DLIGAE = DLINPC.l1 + DLIGAE.l1 + DLCETE28.l1 + DLTC.l1 + DLINPC.l2 + DLIGAE.l2 + DLCETE28.l2 + DLTC.l2 + const
##
## Estimate Std. Error t value Pr(>|t|)
## DLINPC.l1 0.944639 0.397173 2.378 0.01808 *
## DLIGAE.l1 0.249038 0.059217 4.205 0.000035471815 ***
## DLCETE28.l1 0.008873 0.013106 0.677 0.49900
## DLTC.l1 -0.221922 0.033315 -6.661 0.000000000152 ***
## DLINPC.l2 -1.037719 0.396972 -2.614 0.00945 **
## DLIGAE.l2 -0.234709 0.056449 -4.158 0.000043182412 ***
## DLCETE28.l2 -0.012941 0.013078 -0.990 0.32328
## DLTC.l2 0.062581 0.034927 1.792 0.07429 .
## const 0.001917 0.001874 1.023 0.30737
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
##
## Residual standard error: 0.01388 on 270 degrees of freedom
## Multiple R-Squared: 0.291, Adjusted R-squared: 0.27
## F-statistic: 13.85 on 8 and 270 DF, p-value: < 0.00000000000000022
##
##
## Estimation results for equation DLCETE28:
## =========================================
## DLCETE28 = DLINPC.l1 + DLIGAE.l1 + DLCETE28.l1 + DLTC.l1 + DLINPC.l2 + DLIGAE.l2 + DLCETE28.l2 + DLTC.l2 + const
##
## Estimate Std. Error t value Pr(>|t|)
## DLINPC.l1 4.480766 1.851857 2.420 0.0162 *
## DLIGAE.l1 0.209477 0.276107 0.759 0.4487
## DLCETE28.l1 0.136087 0.061108 2.227 0.0268 *
## DLTC.l1 0.052508 0.155336 0.338 0.7356
## DLINPC.l2 -2.845520 1.850923 -1.537 0.1254
## DLIGAE.l2 0.388994 0.263200 1.478 0.1406
## DLCETE28.l2 0.068584 0.060978 1.125 0.2617
## DLTC.l2 0.096184 0.162852 0.591 0.5553
## const -0.007588 0.008738 -0.868 0.3860
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
##
## Residual standard error: 0.06473 on 270 degrees of freedom
## Multiple R-Squared: 0.06608, Adjusted R-squared: 0.03841
## F-statistic: 2.388 on 8 and 270 DF, p-value: 0.01678
##
##
## Estimation results for equation DLTC:
## =====================================
## DLTC = DLINPC.l1 + DLIGAE.l1 + DLCETE28.l1 + DLTC.l1 + DLINPC.l2 + DLIGAE.l2 + DLCETE28.l2 + DLTC.l2 + const
##
## Estimate Std. Error t value Pr(>|t|)
## DLINPC.l1 -1.610981 0.739621 -2.178 0.03026 *
## DLIGAE.l1 0.062128 0.110275 0.563 0.57364
## DLCETE28.l1 -0.045981 0.024406 -1.884 0.06064 .
## DLTC.l1 0.332109 0.062040 5.353 0.000000185 ***
## DLINPC.l2 0.404104 0.739248 0.547 0.58508
## DLIGAE.l2 -0.020673 0.105121 -0.197 0.84424
## DLCETE28.l2 0.028537 0.024354 1.172 0.24233
## DLTC.l2 -0.171879 0.065042 -2.643 0.00871 **
## const 0.006309 0.003490 1.808 0.07173 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
##
## Residual standard error: 0.02585 on 270 degrees of freedom
## Multiple R-Squared: 0.1261, Adjusted R-squared: 0.1002
## F-statistic: 4.871 on 8 and 270 DF, p-value: 0.00001254
##
##
##
## Covariance matrix of residuals:
## DLINPC DLIGAE DLCETE28 DLTC
## DLINPC 0.0000047185 0.000006982 0.000004359 -0.0000003849
## DLIGAE 0.0000069818 0.000192716 0.000074798 -0.0000439413
## DLCETE28 0.0000043588 0.000074798 0.004189604 0.0003364986
## DLTC -0.0000003849 -0.000043941 0.000336499 0.0006683077
##
## Correlation matrix of residuals:
## DLINPC DLIGAE DLCETE28 DLTC
## DLINPC 1.000000 0.23153 0.03100 -0.006853
## DLIGAE 0.231529 1.00000 0.08324 -0.122441
## DLCETE28 0.031002 0.08324 1.00000 0.201098
## DLTC -0.006853 -0.12244 0.20110 1.000000
### Create Restrictions Matrix:
a.mat <- diag(4)
diag(a.mat) <- NA
a.mat[1, 2] <- NA
a.mat[1, 3] <- NA
a.mat[1, 4] <- NA
a.mat[2, 3] <- NA
a.mat[2, 4] <- NA
a.mat[3, 4] <- NA
a.mat
## [,1] [,2] [,3] [,4]
## [1,] NA NA NA NA
## [2,] 0 NA NA NA
## [3,] 0 0 NA NA
## [4,] 0 0 0 NA
## [,1] [,2] [,3] [,4]
## [1,] NA 0 0 0
## [2,] 0 NA 0 0
## [3,] 0 0 NA 0
## [4,] 0 0 0 NA
### SVAR Estimation
#?SVAR
SVAR_p <- SVAR(VAR_p, Amat = a.mat, Bmat = b.mat, max.iter = 10000, hessian = TRUE)
SVAR_p
##
## SVAR Estimation Results:
## ========================
##
##
## Estimated A matrix:
## DLINPC DLIGAE DLCETE28 DLTC
## DLINPC 1 -0.03652 -0.000252 -0.001698
## DLIGAE 0 1.00000 -0.024109 0.077889
## DLCETE28 0 0.00000 1.000000 -0.503508
## DLTC 0 0.00000 0.000000 1.000000
##
## Estimated B matrix:
## DLINPC DLIGAE DLCETE28 DLTC
## DLINPC 0.002113 0.00000 0.0000 0.00000
## DLIGAE 0.000000 0.01369 0.0000 0.00000
## DLCETE28 0.000000 0.00000 0.0634 0.00000
## DLTC 0.000000 0.00000 0.0000 0.02585
Como resultado, obtenemos las siguientes Impulse-Response, que tienen la característica de que representan un VAR con la estructura definida en las matrices anteriores.
#
IR_DLINPC <- irf(SVAR_p, n.ahead = 12, boot = TRUE,
ci = 0.95, response = "DLINPC")
plot(IR_DLINPC)

Figure 5.9: Impulso - Respuesta en \(DLINPC_t\)

Figure 5.10: Impulso - Respuesta en \(DLINPC_t\)

Figure 5.11: Impulso - Respuesta en \(DLINPC_t\)

Figure 5.12: Impulso - Respuesta en \(DLINPC_t\)
5.5 Otras opciones del análisis impulso-respuesta
IR_DLINPC_2 <- irf(SVAR_p, n.ahead = 12, boot = TRUE,
ci = 0.95, response = "DLINPC",
ortho = TRUE, cumulative = FALSE)
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
## Warning in SVAR(x = varboot, Amat = a.mat, Bmat = b.mat, max.iter = 10000, :
## The AB-model is just identified. No test possible.
plot(IR_DLINPC_2)
5.6 Cointegración
Hasta ahora en el curso hemos usado el supuesto de que las series son estacionarias para el conjunto de técnicas \(ARMA(p,q)\) y \(VAR(p)\). No obstante, dado que relajamos el supuesto de estacionariedad (incluyendo la estacionariedad en varianza) y que establecimos una serie de pruebas para determinar cuándo una serie es estadísticamente estacionaria, ahora podemos plantear una técnica llamada Cointegración. Para esta técnica consideraremos sólo series que son \(I(1)\) y reconoceremos que se originó con los trabajos de Engle y Granger (1987), Stock (1987) y Johansen (1988).
5.6.1 Definición y propiedades del proceso de cointegración
Cointegración puede ser caracterizada o definida en palabras sencillas como que dos o más variables tienen una relación común estable en el largo plazo. Es decir, estas no suelen tomar caminos o trayectorias diferentes, excepto por períodos de tiempo transitorios y eventuales. A continuación, utilizaremos la definición de Engle y Granger (1984) de cointegración.
Sea \(\mathbf{Y}\) un vector de k-series de tiempo, decimos que los elementos en \(\mathbf{Y}\) están cointegrados en un orden (d, c), es decir, \(\mathbf{Y} \sim CI(d, c)\), si todos los elementos de \(\mathbf{Y}\) son series integradas de orden d, I(d), y si existe al menos una combinación lineal no trivial \(\mathbf{Z}\) de esas variables que es de orden I(d - c), donde \(d \geq c > 0\), si y sólo si: \[\begin{equation} \boldsymbol{\beta}_i' \mathbf{Y}_t = \mathbf{Y}_{it} \sim I(d-c) \end{equation}\]
Donde \(i = 1, 2, \ldots, r\) y \(r < k\).
A los diferentes vectores \(\boldsymbol{\beta}_i\) se les denomina como vectores de cointegración. El rango de la matriz de vectores de cointegración \(r\) es el número de vectores de cointegración linealmente independientes. En general diremos que los vectores de la matriz de cointegración \(\boldsymbol{\beta}\) tendrán la forma de: \[\begin{equation} \boldsymbol{\beta}' \mathbf{Y}_t = \mathbf{Z}_t \end{equation}\]
Antes de continuar hagamos algunas observaciones. Si todas las variables de \(\mathbf{Y}\) son I(1) y \(0 \leq r < k\), diremos que las series no cointegran si \(r = 0\). Si esto pasa, entonces, como demostraremos más adelante, la mejor opción será estimar un modelo VAR(p) en diferencias. Adicionalmente, asumiremos que \(c = d = 1\), por lo que la relación de cointegración, en su caso, generará combinaciones lineales \(\mathbf{Z}\) estacionarias.
5.6.2 Cointegración para modelos de más de una ecuación o para modelos basados en Vectores Autoregresivos
Sean \(Y_1, Y_2, \ldots, Y_k\) son series que forman \(\mathbf{Y}\) y que todas son I(1), entonces los siguientes casos son posibles:
Si \(r = 1\) entonces se trata de un caso de cointegración de Granger.
Si \(r \geq 1\) entonces se trata de un caso de cointegración múltiple de Johansen.
Por lo anterior, en este curso analizaremos el caso de Cointegración de Johansen. Ahora plantearemos la forma de estimar el proceso de cointegración. El primer paso para ello es determinar un modelo VAR(p) con las k-series no estacionarias (series en niveles)–en este punto se vuelve fundamental caracterizar las series a través de pruebas de raíces unitarias–. Elegimos el valor de \(p\) mediante el uso de los criterios de información. De esta forma tendremos una especificación similar a: \[\begin{equation} \mathbf{Y}_t = \sum_{j=1}^p \mathbf{A}_j \mathbf{Y}_{t-j} + \mathbf{D}_t + \mathbf{U}_t \tag{5.8} \end{equation}\]
Donde \(\mathbf{U}_t\) es un término de error k-dimensional puramente aleatorio; \(\mathbf{D}_t\) contiene los componentes determinísticos de constante y tendencia, y \(\mathbf{A}_i\), \(i = 1, 2, \ldots, p\), son matrices de \(k \times k\) coeficientes. Notemos que el VAR(p) involucrado en este caso, a diferencia del VAR anteriormente estudiado, puede incluir un término de tendencia. Esto en razón de que hemos relajado el concepto de estacionariedad.
Si reescribimos la ecuación (5.8) en su forma de Vector Corrector de Errores (VEC, por sus siglas en inglés) tenemos: \[\begin{eqnarray} \mathbf{Y}_t - \mathbf{Y}_{t-1} & = & \Delta \mathbf{Y}_t \nonumber \\ & = & \sum_{j=1}^p \mathbf{A}_j \mathbf{Y}_{t-j} + \mathbf{D}_t - \mathbf{Y}_{t-1} + \mathbf{U}_t \nonumber \\ & = & (\mathbf{A}_1 - \mathbf{I}) \mathbf{Y}_{t-1} + \mathbf{A}_2 \mathbf{Y}_{t-2} + \ldots + \mathbf{A}_p \mathbf{Y}_{t-p} + \mathbf{D}_t + \mathbf{U}_t \nonumber \\ & = & \left( \sum_{j=1}^{p} \mathbf{A}_j - \mathbf{I} \right) \mathbf{Y}_{t-1} + \sum_{j=1}^{p-1} \mathbf{A}^*_j \Delta \mathbf{Y}_{t-j} + \mathbf{D}_t \mathbf{U}_t \nonumber \\ & = & - \left( \mathbf{I} - \sum_{j=1}^{p} \mathbf{A}_j \right) \mathbf{Y}_{t-1} + \sum_{j=1}^{p-1} \mathbf{A}^*_j \Delta \mathbf{Y}_{t-j} + \mathbf{D}_t \mathbf{U}_t \nonumber \\ \Delta \mathbf{Y}_t & = & - \Pi \mathbf{Y}_{t-1} + \sum_{j=1}^{p-1} \mathbf{A}^*_j \Delta \mathbf{Y}_{t-j} + \mathbf{D}_t + \mathbf{U}_t \tag{5.9} \end{eqnarray}\]
Donde \(\mathbf{A}_j^* = - \sum_{i=j+1}^p \mathbf{A}_i\), \(i = 1, 2, \ldots, p-1\), y la matriz \(\Pi\) representa todas las relaciones de largo plazo entre las variables, por lo que la matriz es de rango completo \(k \times k\). Por lo tanto, tenemos que dicha matriz en la ecuación (5.9) se puede factorizar como: \[\begin{equation} \Pi_{(k \times k)} = \Gamma_{(k \times r)} \boldsymbol{\beta}_{(r \times k)}' (\#eq:Pi_Matrix) \end{equation}\]
Donde \(\boldsymbol{\beta}_{(r \times k)}' \mathbf{Y}_{t-1}\) son \(r\) combinaciones linealmente independientes que son estacionarias.
Dada la ecuación (5.9) podemos establecer la aproximación de Johansen (1988) que se realiza mediante una estimación por Máxima Verosimilitud de la ecuación: \[\begin{equation} \Delta \mathbf{Y}_t + \Gamma \boldsymbol{\beta}' \mathbf{Y}_{t-1} = \sum_{j=1}^{p-1} \mathbf{A}^*_j \Delta \mathbf{Y}_{t-j} + \mathbf{D}_t + \mathbf{U}_t \end{equation}\]
Donde una vez estimado el sistema: \[\begin{equation} \boldsymbol{\beta} = [v_1, v_2, \ldots, v_r] \end{equation}\]
Cada \(v_i\), \(i = 1, 2, \ldots, r\) es un vector propio que está asociado con los \(r\) valores propios positivos, mismos que están asociados con la prueba de hipótesis de cointegración. Dicha hipótesis está basada en dos estadísticas con las que se determina el rango \(r\) de \(\Pi\):
Prueba de Traza: \(H_0 :\) Existen al menos \(r\) valores propios positivos o Existen al menos \(r\) relaciones de largo plazo estacionarias.
Prueba del valor propio máximo o \(\lambda_{max}\): \(H_0 :\) Existen \(r\) valores propios positivos o Existen \(r\) relaciones de largo plazo estacionarias.
. Para ejemplificar el procedimiento de cointegración utilizaremos las series de INPC, Tipo de Cambio, rendimiento de los Cetes a 28 días, IGAE e Índice de Producción Industrial de Estados Unidos. Quizá el marco teórico de la relación entre las variables no sea del todo correcto, pero dejando de lado ese problema, estimaremos si las 5 series cointegran.
Por principio, probaremos que todas las series son I(1), lo cual es cierto (ver Scrip para mayores detalles). En las Figuras 5.13, 5.14 y 5.15 se muestran las series en niveles y en diferencias, con lo cual ilustramos como es viable que las series sean I(1).
library(ggplot2)
library(dplyr)
library(stats)
library(MASS)
library(strucchange)
library(zoo)
library(sandwich)
library(urca)
library(lmtest)
library(vars)
#
load("BD/Datos_Ad.RData")
#
## Conversion a series de tiempo:
Datos <- ts(Datos_Ad[7: 11],
start = c(2000, 1),
freq = 12)
LDatos <- log(Datos)
DLDatos <- diff(log(Datos, base = exp(1)),
lag = 1,
differences = 1)
plot(LDatos,
plot.type = "m", nc = 2,
col = c("darkgreen", "darkblue", "darkred", "orange", "purple"),
#main = "Series en Logaritmos",
xlab = "Tiempo")

Figure 5.13: Series en niveles (logaritmos) para la prueba de Cointegración
plot(DLDatos,
plot.type = "m", nc = 2,
col = c("darkgreen", "darkblue", "darkred", "orange", "purple"),
#main = "Series en Diferencias Logaritmicas",
xlab = "Tiempo")

Figure 5.14: Series en Diferencias Logarítmicas para la prueba de Cointegración
plot(cbind(LDatos, DLDatos),
plot.type = "m", nc = 2,
col = c("darkgreen", "darkblue", "darkred", "orange", "purple"),
#main = "Comparacion de Series en Diferencias",
xlab = "Tiempo")

Figure 5.15: Comparacion de Series en Diferencias para la prueba de Cointegración
Posteriormente, determinamos cuál es el orden adecuado de un VAR(p) en niveles. En el Cuadro 5.8 mostramos los resultados de los criterios de información para determinar el número de rezagos óptimos, el cual resultó en \(p = 3\) para los criterios AIC y FPE, \(p = 2\) para el criterio HQ y \(p = 1\) para el criterio SC. Por lo tanto, decidiremos utilizar un VAR(3) con tendencia y constante. Note que es posible elegir otros modelos de VAR que incluyan: solo tendencia, solo constante o ninguno de estos elementos.
Rezagos | AIC | HQ | SC | FPE |
---|---|---|---|---|
1 | -4.606707e+01 | -4.585260e+01 | -4.553568e+01 | 9.848467e-21 |
2 | -4.643287e+01 | -4.606521e+01 | -4.552191e+01 | 6.834064e-21 |
3 | -4.647783e+01 | -4.595697e+01 | -4.518730e+01 | 6.539757e-21 |
4 | -4.645834e+01 | -4.578428e+01 | -4.478824e+01 | 6.679778e-21 |
## VAR(p) Seleccion:
VARselect(LDatos, lag.max = 10, type = "both")
## $selection
## AIC(n) HQ(n) SC(n) FPE(n)
## 3 2 2 3
##
## $criteria
## 1 2
## AIC(n) -43.1308318646810135987834656 -43.5668661854371990216350241
## HQ(n) -42.9445592539269327403417265 -43.2475417098587726627556549
## SC(n) -42.6668499811502783813921269 -42.7714686708130784609238617
## FPE(n) 0.0000000000000000001855848 0.0000000000000000001200259
## 3 4
## AIC(n) -43.5797269785975984746073664 -43.5035550099222803055454278
## HQ(n) -43.1273506381948337207177246 -42.9181268046951771566455136
## SC(n) -42.4529138328800996760037378 -42.0453262331114032690493332
## FPE(n) 0.0000000000000000001185548 0.0000000000000000001280605
## 5 6
## AIC(n) -43.4665644031667497415583057 -43.3662074624718840709647338
## HQ(n) -42.7480843331153010922207613 -42.5146755275960970266169170
## SC(n) -41.6769199952624873617423873 -41.2451474234742434532563493
## FPE(n) 0.0000000000000000001330869 0.0000000000000000001474594
## 7 8
## AIC(n) -43.3576732552204475723556243 -43.4475783817780367712657608
## HQ(n) -42.3730894555203079221428197 -42.3299427172535587260426837
## SC(n) -40.9051975851294216113274160 -40.6636870805936325723450864
## FPE(n) 0.0000000000000000001491718 0.0000000000000000001368875
## 9 10
## AIC(n) -43.3742641642367701138027769 -43.3660356138277762738653109
## HQ(n) -42.1235766348879465681420697 -41.9822962196546143331943313
## SC(n) -40.2589572319589734661349212 -39.9193130504566013883049891
## FPE(n) 0.0000000000000000001480478 0.0000000000000000001502148
VARselect(LDatos, lag.max = 10, type = "trend")
## $selection
## AIC(n) HQ(n) SC(n) FPE(n)
## 3 2 2 3
##
## $criteria
## 1 2
## AIC(n) -43.0218334558386885646541486 -43.4733608627676417768270767
## HQ(n) -42.8621712180494753852144640 -43.1806467601540902023771196
## SC(n) -42.6241346985266318370122463 -42.7442464743621997058653506
## FPE(n) 0.0000000000000000002069525 0.0000000000000000001317817
## 3 4
## AIC(n) -43.4926570116813877575623337 -43.4403901004477006608794909
## HQ(n) -43.0668910442434906826747465 -42.8815722681854651909816312
## SC(n) -42.4321269921825603432807839 -42.0484444498554950087054749
## FPE(n) 0.0000000000000000001293226 0.0000000000000000001363788
## 5 6
## AIC(n) -43.4055918510038054591859691 -43.3210122680509144288407697
## HQ(n) -42.7137221539172173834231216 -42.4960907061399879580676497
## SC(n) -41.6822305693182144636921294 -41.2662353552719451954544638
## FPE(n) 0.0000000000000000001414042 0.0000000000000000001541996
## 7 8
## AIC(n) -43.3018930975745490741246613 -43.3631837990786621617189667
## HQ(n) -42.3439196708392771029139112 -42.2721585075190517954979441
## SC(n) -40.9157005537021944974185317 -40.6455756241129293471203709
## FPE(n) 0.0000000000000000001576227 0.0000000000000000001488111
## 9 10
## AIC(n) -43.3123078988938914335449226 -43.289311818269602838427090
## HQ(n) -42.0882307425099355668862700 -41.932182797061308576758165
## SC(n) -40.2632840928347732756265032 -39.908872381117106442616205
## FPE(n) 0.0000000000000000001573361 0.000000000000000000161972
VARselect(LDatos, lag.max = 10, type = "const")
## $selection
## AIC(n) HQ(n) SC(n) FPE(n)
## 3 2 2 3
##
## $criteria
## 1 2
## AIC(n) -43.0529318587713945021278050 -43.495191294123372927060700
## HQ(n) -42.8932696209821813226881204 -43.202477191509821352610743
## SC(n) -42.6552331014593377744859026 -42.766076905717930856098974
## FPE(n) 0.0000000000000000002006156 0.000000000000000000128936
## 3 4
## AIC(n) -43.5086218228659333817631705 -43.4510965812944505159975961
## HQ(n) -43.0828558554280363068755833 -42.8922787490322150460997364
## SC(n) -42.4480918033671059674816206 -42.0591509307022448638235801
## FPE(n) 0.0000000000000000001272744 0.0000000000000000001349265
## 5 6
## AIC(n) -43.4144752420798099024068506 -43.325553474358613925687678
## HQ(n) -42.7226055449932289320713608 -42.500631912447687454914558
## SC(n) -41.6911139603942189069130109 -41.270776561579644692301372
## FPE(n) 0.0000000000000000001401536 0.000000000000000000153501
## 7 8
## AIC(n) -43.3069657328556019137977273 -43.3724989978216228792007314
## HQ(n) -42.3489923061203299425869773 -42.2814737062620125129797088
## SC(n) -40.9207731889832473370915977 -40.6548908228558900646021357
## FPE(n) 0.0000000000000000001568252 0.0000000000000000001474313
## 9 10
## AIC(n) -43.316467649333738165751129 -43.2911053192979622394886974
## HQ(n) -42.092390492949782299092476 -41.9339762980896679778197722
## SC(n) -40.267443843274620007832709 -39.9106658821454658436778118
## FPE(n) 0.000000000000000000156683 0.0000000000000000001616817
VARselect(LDatos, lag.max = 10, type = "none")
## $selection
## AIC(n) HQ(n) SC(n) FPE(n)
## 3 2 2 3
##
## $criteria
## 1 2
## AIC(n) -43.009650989538556586921914 -43.4653473630038362784944184
## HQ(n) -42.876599124714218191911641 -43.1992436333551523830465158
## SC(n) -42.678235358445178349029447 -42.8025161008170726972821285
## FPE(n) 0.000000000000000000209486 0.0000000000000000001328347
## 3 4
## AIC(n) -43.4961615576300175689539174 -43.4416013221261536614292709
## HQ(n) -43.0970059631569952784957422 -42.9093938628287787651061080
## SC(n) -42.5019146643498757498491614 -42.1159387977526264990046911
## FPE(n) 0.0000000000000000001288547 0.0000000000000000001361851
## 5 6
## AIC(n) -43.3978234579566617412638152 -43.31937496312242075191534
## HQ(n) -42.7325641338349484499303799 -42.52106377417636196014428
## SC(n) -41.7407453024897563409467693 -41.33088117656213000827847
## FPE(n) 0.0000000000000000001424605 0.00000000000000000015438
## 7 8
## AIC(n) -43.2856068136311264993310033 -43.342694393587237300380366
## HQ(n) -42.3542437598607293125496653 -42.278279474992494613161398
## SC(n) -40.9656973959774575178016676 -40.691369344840175870103849
## FPE(n) 0.0000000000000000001601088 0.000000000000000000151765
## 9 10
## AIC(n) -43.2981268022445746623816376 -43.2689202279021429831118439
## HQ(n) -42.1006600188254935801523970 -41.9384015796587164004449733
## SC(n) -40.3153861224041349942126544 -39.9547639169683179716230370
## FPE(n) 0.0000000000000000001594144 0.0000000000000000001650919
El mismo número de rezagos los utilizaremos para probar la Cointegración, ya sea por una estadística de la Traza o por una del máximo valor propio. Dado que los resultados se sostienen, sólo mostraremos uno de los casos en que las series cointegran y únicamente para el caso de la prueba de la traza (el otro caso está disponible en el código de R disponible abajo). En el Cuadro 5.9 reportamos los resultados del Test de Cointegración para un modelo con 3 rezagos.
Cuadro: (#tab:TrazaTest) Prueba de la traza para cointegración considerando un VAR(p) con término constante y tendencia de las series \(LINPC_t\), \(LTC_t\), \(LCETE28_t\), \(LIGAE_t\) y \(LIPI_t\).
r \(\leq\) | Estadística | 10% | 5% | 1% |
---|---|---|---|---|
4 | 4.79 | 10.49 | 12.25 | 16.26 |
3 | 13.97 | 22.76 | 25.32 | 30.45 |
2 | 27.45 | 39.06 | 42.44 | 48.45 |
1 | 48.14 | 59.14 | 62.99 | 70.05 |
0 | 118.98 | 83.20 | 87.31 | 96.58 |
Los resultados del Cuadro 5.9 indican que aceptamos la hipótesis nula para el caso de \(r \leq 1\) al \(5\%\), por lo que podemos concluir que existe evidencia estadística para probar que existe al menos 1 vector de cointegración. Por lo que dicho vector normalizado a la primera entrada es: \[\begin{equation} \boldsymbol{\beta} = \left[ \begin{matrix} 1.00000000 \\ 0.2100057 \\ 0.4812626 \\ -2.8386112 \\ -1.2576912 \\ 14.2887887 \\ \end{matrix} \right] \end{equation}\]
Donde el vector esta normalizado para la serie \(LINPC_t\), por lo que concluímos que la relación de largo plazo que encontramos cointegra estará dada por: \[\begin{eqnarray*} LINPC_t & = & -0.2100057 LTC_t - 0.4812626 LCETE28_t \\ & & + 2.8386112 LIGAE_t + 1.2576912 LIPI_t \\ & & - 14.2887887 \end{eqnarray*}\]
## VAR Estimacion:
VAR_1 <- VAR(LDatos, p = 3, type = "both")
#summary(VAR_1)
#plot(VAR_1, names = "INPC_Ad")
#plot(VAR_1, names = "TC_Ad")
#plot(VAR_1, names = "CETE28_Ad")
#plot(VAR_1, names = "IGAE_Ad")
#plot(VAR_1, names = "IPI_Ad")
# Cointegration Test:
#ca.jo = function (x, type = c("eigen", "trace"), ecdet = c("none", "const",
#"trend"), K = 2, spec = c("longrun", "transitory"), season = NULL,
#dumvar = NULL)
#summary(ca.jo(LDatos, type = "trace", ecdet = "trend", K = 3, spec = "longrun"))
#summary(ca.jo(LDatos, type = "trace", ecdet = "const", K = 3, spec = "longrun"))
#summary(ca.jo(LDatos, type = "trace", ecdet = "none", K = 3, spec = "longrun"))
CA_1 <- ca.jo(LDatos, type = "trace", ecdet = "const", K = 3, spec = "longrun")
summary(CA_1)
##
## ######################
## # Johansen-Procedure #
## ######################
##
## Test type: trace statistic , without linear trend and constant in cointegration
##
## Eigenvalues (lambda):
## [1] 0.2242278157790942305638 0.0714829742929301154009 0.0471697381127354625763
## [4] 0.0323558252755368550013 0.0170373866386099859227 0.0000000000000001925707
##
## Values of teststatistic and critical values of test:
##
## test 10pct 5pct 1pct
## r <= 4 | 4.79 7.52 9.24 12.97
## r <= 3 | 13.97 17.85 19.96 24.60
## r <= 2 | 27.45 32.00 34.91 41.07
## r <= 1 | 48.14 49.65 53.12 60.16
## r = 0 | 118.98 71.86 76.07 84.45
##
## Eigenvectors, normalised to first column:
## (These are the cointegration relations)
##
## INPC_Ad.l3 TC_Ad.l3 CETE28_Ad.l3 IGAE_Ad.l3 IPI_Ad.l3
## INPC_Ad.l3 1.0000000 1.0000000 1.0000000 1.000000 1.00000000
## TC_Ad.l3 0.2100057 0.3958412 0.6038714 -3.946863 -0.66160415
## CETE28_Ad.l3 0.4812626 -0.3505729 0.2932620 1.025381 0.02134859
## IGAE_Ad.l3 -2.8386112 -4.9448228 -4.1431506 10.685831 -1.62038123
## IPI_Ad.l3 -1.2576912 0.8682351 2.2789480 -19.080015 1.60589077
## constant 14.2887887 13.2882018 1.6072247 43.673551 -2.75645487
## constant
## INPC_Ad.l3 1.00000000
## TC_Ad.l3 -0.84381863
## CETE28_Ad.l3 0.06866727
## IGAE_Ad.l3 1.32792512
## IPI_Ad.l3 -3.05544132
## constant 5.81151022
##
## Weights W:
## (This is the loading matrix)
##
## INPC_Ad.l3 TC_Ad.l3 CETE28_Ad.l3 IGAE_Ad.l3
## INPC_Ad.d 0.001551917 0.00004896886 0.0002254138 -0.0001685412
## TC_Ad.d 0.002200808 -0.00575637923 -0.0293306746 -0.0003866727
## CETE28_Ad.d -0.009399815 -0.02250446234 -0.0166361225 -0.0160384399
## IGAE_Ad.d 0.001105776 0.01441007456 0.0023574644 -0.0015712694
## IPI_Ad.d 0.001442047 0.01286401841 -0.0014986278 -0.0011379265
## IPI_Ad.l3 constant
## INPC_Ad.d -0.0002093347 0.000000000000001290255
## TC_Ad.d 0.0139760105 -0.000000000000017253317
## CETE28_Ad.d -0.0111636433 -0.000000000000295711342
## IGAE_Ad.d 0.0077903982 0.000000000000030602278
## IPI_Ad.d -0.0046051140 0.000000000000027991698
Considerando lo anterior, podemos determinar \(\hat{U}_t\) para esta ecuación de cointegración. En la Figura 5.16 mostramos los residuales estimados. Derivado de la inspección visual, parecería que estos no son estacionarios, condición que debería ser cierta. De esta forma, una prueba deseable es aplicar todas las pruebas de raíces unitarias a esta serie para mostrar que es I(0). En el Scrip llamado Clase 18 en la carpeta de GoogleDrive se muestran algunas pruebas sobre esta serie y se encuentra que es posible que no sea estacionaria.
TT <- ts(c(1:282),
start = c(2000, 1),
freq = 12)
U <- LDatos[ , 1] + 0.2100057 *LDatos[ , 2] + 0.4812626*LDatos[ , 3] - 2.8386112*LDatos[ , 4] - 1.2576912*LDatos[ , 5] + 14.2887887
#
plot(U,
main = "Residuales de la Ecuación de Cointegración",
type = "l",
col = "darkred")

Figure 5.16: Residuales estimados de la ecuación de cointegración
5.7 Modelos ADRL
5.7.1 Teoría
Una vez que hemos analizado diversas técnicas de series de tiempo, el problema consiste en seleccionar el modelo correcto. La Figura 5.17 muestra un esquema o diagrama de cómo podríamos proceder para seleccionar el modelo correcto.
knitr::include_graphics("Plots/TimeSeries_Models.png")

Figure 5.17: Method selection for time series data. OLS: Ordinary least squares; VAR: Vector autoregressive; ARDL: Autoregressive distributed lags; ECM: Error correction models, retomado de: Shrestha y Bhatta (2018)
En este caso incorporaremos a los modelos autogregressive distributed lag models (ARDL, por sus siglas en inglés). En estos casos el procedimiento de Johansen no podría aplicarse directamennte cuando las variables incluidas son de un orden mixto o cuando simplemente todas no son estacionarias. Un modelo ARDL está basado en procedimientos de MCO.
Este tipo de modelos toma suficientes rezagos para capturar el mecanismo generador de datos. También es posible llegar a una especificación del mecanismo corrector de errores a partir de una trasformación lineal del ARDL.
Consideremos la siguiente ecuación: \[\begin{equation} Y_t = \alpha + \delta X_t + \gamma Z_t + U_t \tag{5.10} \end{equation}\]
Dada la ecuación (5.10) podemos establecer su forma de mecanismo corrector de errores en forma ARDL dada por: \[\begin{eqnarray*} \Delta Y_t & = & \alpha + \sum_{i = 1}^p \beta_i \Delta Y_{t-i} + \sum_{i = 1}^p \delta_i \Delta X_{t-i} + \sum_{i = 1}^p \gamma_i \Delta Z_{t-i} \\ & & + \lambda_1 Y_{t-1} + \lambda_2 X_{t-1} + \lambda_3 Z_{t-1} + U_t \end{eqnarray*}\]
Donde los coeficientes \(\beta_i\), \(\delta_i\), \(\gamma_i\) representan la dinámica de corto plazo y las \(\lambda\)’s la dinámica de largo plazo.
La hipótesis nula (\(H_0\)) es que las \(\lambda_1 + \lambda_2 + \lambda_3 = 0\), es decir, que no existe relación de largo plazo.
En la práctica estimamos una especificación con rezafos distribuidos: \[\begin{equation} Y_t = \alpha + \sum_{i = 1}^p \beta_i Y_{t-i} + \sum_{i = 1}^p \delta_i X_{t-i} + \sum_{i = 1}^p \gamma_i Z_{t-i} + U_t \end{equation}\]
Además de verificar si las series involucradas son estacionarias y decidir el número de reagos \(p\) mediante criterios de información.
5.7.2 Ejemplo
5.7.2.1 DESCRIPCIÓN DEL PROBLEMA
Supongamos que queremos modelar el logaritmo de dinero (M2) como una función de LRY (logarithm of real income), IBO (bond rate) e IDE (bank deposit rate).
El problema es que la aplicación de una regresión de MCO en datos no estacionarios daría lugar a una regresión espúria.
Los parámetros estimados serían consistentes solo si las series estuvieran cointegradas.
5.7.2.2 Importamos Datos desde un dataset de R:
Utilizaremos un dataset integrado en la biblioteca ARDL de R. Se trata de un dataframe con 55 renglones y 5 variables en el período de 1974:Q1 a 1987:Q3 de las siguientes variables:
LRM: logarithm of real money, M2
LRY: logarithm of real income
LPY: logarithm of price deflator
IBO: bond rate
IDE: bank deposit rate
## [1] "LRM" "LRY" "LPY" "IBO" "IDE"
5.7.2.3 Procedimiento:
- Calculamos un auto ADRL para determinar la combinación óptima de rezagos.
## [1] "best_model" "best_order" "top_orders"
#
models$top_orders
## LRM LRY IBO IDE AIC
## 1 3 1 3 2 -251.0259
## 2 3 1 3 3 -250.1144
## 3 2 2 0 0 -249.6266
## 4 3 2 3 2 -249.1087
## 5 3 2 3 3 -248.1858
## 6 2 2 0 1 -247.7786
## 7 2 1 0 0 -247.5643
## 8 2 2 1 1 -246.6885
## 9 3 3 3 3 -246.3061
## 10 2 2 1 2 -246.2709
## 11 2 1 1 1 -245.8736
## 12 2 2 2 2 -245.7722
## 13 1 1 0 0 -245.6620
## 14 2 1 2 2 -245.1712
## 15 3 1 2 2 -245.0996
## 16 1 0 0 0 -244.4317
## 17 1 1 0 1 -243.7702
## 18 5 5 5 5 -243.3120
## 19 4 1 3 2 -243.0728
## 20 4 1 3 3 -242.4378
#
models$best_order
## LRM LRY IBO IDE
## 3 1 3 2
#
models$best_model
##
## Time series regression with "zooreg" data:
## Start = 1974 Q4, End = 1987 Q3
##
## Call:
## dynlm::dynlm(formula = full_formula, data = data, start = start,
## end = end)
##
## Coefficients:
## (Intercept) L(LRM, 1) L(LRM, 2) L(LRM, 3) LRY L(LRY, 1)
## 2.6202 0.3192 0.5326 -0.2687 0.6728 -0.2574
## IBO L(IBO, 1) L(IBO, 2) L(IBO, 3) IDE L(IDE, 1)
## -1.0785 -0.1062 0.2877 -0.9947 0.1255 -0.3280
## L(IDE, 2)
## 1.4079
#
BestMod <- models$best_model
summary(BestMod)
##
## Time series regression with "zooreg" data:
## Start = 1974 Q4, End = 1987 Q3
##
## Call:
## dynlm::dynlm(formula = full_formula, data = data, start = start,
## end = end)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.029939 -0.008856 -0.002562 0.008190 0.072577
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2.6202 0.5678 4.615 0.00004187 ***
## L(LRM, 1) 0.3192 0.1367 2.336 0.024735 *
## L(LRM, 2) 0.5326 0.1324 4.024 0.000255 ***
## L(LRM, 3) -0.2687 0.1021 -2.631 0.012143 *
## LRY 0.6728 0.1312 5.129 0.00000832 ***
## L(LRY, 1) -0.2574 0.1472 -1.749 0.088146 .
## IBO -1.0785 0.3217 -3.353 0.001790 **
## L(IBO, 1) -0.1062 0.5858 -0.181 0.857081
## L(IBO, 2) 0.2877 0.5691 0.505 0.616067
## L(IBO, 3) -0.9947 0.3925 -2.534 0.015401 *
## IDE 0.1255 0.5545 0.226 0.822161
## L(IDE, 1) -0.3280 0.7213 -0.455 0.651847
## L(IDE, 2) 1.4079 0.5520 2.550 0.014803 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.0191 on 39 degrees of freedom
## Multiple R-squared: 0.988, Adjusted R-squared: 0.9843
## F-statistic: 266.8 on 12 and 39 DF, p-value: < 0.00000000000000022
- UECM (Unrestricted Error Correction Model) of the underlying ARDL.
##
## Time series regression with "zooreg" data:
## Start = 1974 Q4, End = 1987 Q3
##
## Call:
## dynlm::dynlm(formula = full_formula, data = data, start = start,
## end = end)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.029939 -0.008856 -0.002562 0.008190 0.072577
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2.62019 0.56777 4.615 0.00004187 ***
## L(LRM, 1) -0.41685 0.09166 -4.548 0.00005154 ***
## L(LRY, 1) 0.41538 0.11761 3.532 0.00108 **
## L(IBO, 1) -1.89172 0.39111 -4.837 0.00002093 ***
## L(IDE, 1) 1.20534 0.44690 2.697 0.01028 *
## d(L(LRM, 1)) -0.26394 0.10192 -2.590 0.01343 *
## d(L(LRM, 2)) 0.26867 0.10213 2.631 0.01214 *
## d(LRY) 0.67280 0.13116 5.129 0.00000832 ***
## d(IBO) -1.07852 0.32170 -3.353 0.00179 **
## d(L(IBO, 1)) 0.70701 0.46874 1.508 0.13953
## d(L(IBO, 2)) 0.99468 0.39251 2.534 0.01540 *
## d(IDE) 0.12546 0.55445 0.226 0.82216
## d(L(IDE, 1)) -1.40786 0.55204 -2.550 0.01480 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.0191 on 39 degrees of freedom
## Multiple R-squared: 0.7458, Adjusted R-squared: 0.6676
## F-statistic: 9.537 on 12 and 39 DF, p-value: 0.00000003001
- RECM (Restricted Error Correction Model) of the underlying ARDL Obs: allowing the constant to join the short-run relationship (case 2), instead of the long-run (case 3)
##
## Time series regression with "zooreg" data:
## Start = 1974 Q4, End = 1987 Q3
##
## Call:
## dynlm::dynlm(formula = full_formula, data = data, start = start,
## end = end)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.029939 -0.008856 -0.002562 0.008190 0.072577
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## d(L(LRM, 1)) -0.26394 0.09008 -2.930 0.005405 **
## d(L(LRM, 2)) 0.26867 0.09127 2.944 0.005214 **
## d(LRY) 0.67280 0.11591 5.805 0.000000703 ***
## d(IBO) -1.07852 0.30025 -3.592 0.000837 ***
## d(L(IBO, 1)) 0.70701 0.44359 1.594 0.118300
## d(L(IBO, 2)) 0.99468 0.36491 2.726 0.009242 **
## d(IDE) 0.12546 0.48290 0.260 0.796248
## d(L(IDE, 1)) -1.40786 0.48867 -2.881 0.006160 **
## ect -0.41685 0.07849 -5.311 0.000003633 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.01819 on 43 degrees of freedom
## (0 observations deleted due to missingness)
## Multiple R-squared: 0.7613, Adjusted R-squared: 0.7113
## F-statistic: 15.24 on 9 and 43 DF, p-value: 0.00000000009545
- long-run levels relationship (cointegration)
bounds_f_test(BestMod, case = 2)
##
## Bounds F-test (Wald) for no cointegration
##
## data: d(LRM) ~ L(LRM, 1) + L(LRY, 1) + L(IBO, 1) + L(IDE, 1) + d(L(LRM, 1)) + d(L(LRM, 2)) + d(LRY) + d(IBO) + d(L(IBO, 1)) + d(L(IBO, 2)) + d(IDE) + d(L(IDE, 1))
## F = 5.1168, p-value = 0.004418
## alternative hypothesis: Possible cointegration
## null values:
## k T
## 3 1000
- Long-run multipliers (with standard errors, t-statistics and p-values)
multipliers(BestMod)
## Term Estimate Std. Error t value Pr(>|t|)
## 1 (Intercept) 6.2856579 0.7719160 8.142930 0.0000000006107445
## 2 LRY 0.9964676 0.1239310 8.040503 0.0000000008358472
## 3 IBO -4.5381160 0.5202961 -8.722180 0.0000000001058619
## 4 IDE 2.8915201 0.9950853 2.905801 0.0060092393605960
#
Result <- coint_eq(BestMod, case = 2)