1. Introducción

En series de tiempo multivariadas, los modelos más utilizados para describir la dinámica conjunta de varias variables son:

Estos modelos permiten analizar interdependencias dinámicas entre múltiples variables económicas o financieras.


2. Modelo VAR(p)

Sea \(y_t\) un vector de dimensión \(k \times 1\) de variables de series de tiempo.

Un modelo VAR de orden \(p\) se define como

\[ y_t = c + A_1 y_{t-1} + A_2 y_{t-2} + \cdots + A_p y_{t-p} + \varepsilon_t \]

donde:

\[ \varepsilon_t \sim N(0,\Sigma) \]


3. Representación matricial

El modelo puede escribirse como

\[ y_t = c + \sum_{i=1}^{p} A_i y_{t-i} + \varepsilon_t \]

donde

\[ A_i = \begin{pmatrix} a_{11}^{(i)} & \dots & a_{1k}^{(i)} \\ \vdots & \ddots & \vdots \\ a_{k1}^{(i)} & \dots & a_{kk}^{(i)} \end{pmatrix} \]

Cada ecuación es una regresión lineal de una variable sobre rezagos de todas las variables.


4. Condición de estacionariedad del VAR

El proceso VAR(p) es estacionario si las raíces del polinomio característico

\[ \det(I_k - A_1 z - A_2 z^2 - \cdots - A_p z^p) = 0 \]

están fuera del círculo unitario, es decir:

\[ |z| > 1 \]


5. Teorema de Representación de Wold Multivariado

Teorema (Wold):

Todo proceso estacionario multivariado puede representarse como un promedio móvil infinito:

\[ y_t = \mu + \sum_{i=0}^{\infty} \Psi_i \varepsilon_{t-i} \]

donde:

Esto implica que un VAR(p) es una aproximación finita de esta representación.


6. Cointegración

Sea \(y_t\) un vector de variables I(1).

Las variables están cointegradas si existe un vector \(\beta\) tal que

\[ \beta' y_t \]

es estacionario.


7. Modelo VEC (Vector Error Correction)

Si las variables están cointegradas, el VAR puede escribirse como un modelo VEC:

\[ \Delta y_t = \Pi y_{t-1} + \sum_{i=1}^{p-1} \Gamma_i \Delta y_{t-i} + \varepsilon_t \]

donde:

\[ \Pi = \alpha \beta' \]


8. Teorema de Representación de Granger

Teorema (Granger Representation Theorem)

Si un vector \(y_t\) de variables I(1) está cointegrado con rango \(r\), entonces existe una representación VECM:

\[ \Delta y_t = \alpha \beta' y_{t-1} + \sum_{i=1}^{p-1} \Gamma_i \Delta y_{t-i} + \varepsilon_t \]

donde


9. Interpretación económica

El término

\[ \beta' y_{t-1} \]

representa el error de equilibrio de largo plazo.

El parámetro

\[ \alpha \]

mide qué tan rápido las variables regresan al equilibrio.


10. Ejemplo en R

Simulación de un VAR(1)

library(vars)
## Cargando paquete requerido: MASS
## Cargando paquete requerido: strucchange
## Cargando paquete requerido: zoo
## 
## Adjuntando el paquete: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
## Cargando paquete requerido: sandwich
## Cargando paquete requerido: urca
## Cargando paquete requerido: lmtest
set.seed(123)

y1 <- arima.sim(n=200,list(ar=0.5))
y2 <- arima.sim(n=200,list(ar=0.3))

data <- cbind(y1,y2)

var_model <- VAR(data,p=1,type="const")

summary(var_model)
## 
## VAR Estimation Results:
## ========================= 
## Endogenous variables: y1, y2 
## Deterministic variables: const 
## Sample size: 199 
## Log Likelihood: -549.785 
## Roots of the characteristic polynomial:
## 0.4151 0.2793
## Call:
## VAR(y = data, p = 1, type = "const")
## 
## 
## Estimation results for equation y1: 
## =================================== 
## y1 = y1.l1 + y2.l1 + const 
## 
##        Estimate Std. Error t value Pr(>|t|)    
## y1.l1  0.416735   0.065193   6.392 1.17e-09 ***
## y2.l1  0.013204   0.066976   0.197    0.844    
## const -0.003336   0.067326  -0.050    0.961    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## 
## Residual standard error: 0.9496 on 196 degrees of freedom
## Multiple R-Squared: 0.1731,  Adjusted R-squared: 0.1647 
## F-statistic: 20.51 on 2 and 196 DF,  p-value: 8.142e-09 
## 
## 
## Estimation results for equation y2: 
## =================================== 
## y2 = y1.l1 + y2.l1 + const 
## 
##        Estimate Std. Error t value Pr(>|t|)    
## y1.l1 -0.017292   0.068407  -0.253 0.800701    
## y2.l1  0.277592   0.070278   3.950 0.000109 ***
## const -0.002551   0.070645  -0.036 0.971230    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## 
## Residual standard error: 0.9964 on 196 degrees of freedom
## Multiple R-Squared: 0.07546, Adjusted R-squared: 0.06603 
## F-statistic: 7.999 on 2 and 196 DF,  p-value: 0.0004579 
## 
## 
## 
## Covariance matrix of residuals:
##          y1       y2
## y1  0.90181 -0.09162
## y2 -0.09162  0.99291
## 
## Correlation matrix of residuals:
##          y1       y2
## y1  1.00000 -0.09682
## y2 -0.09682  1.00000

1. Introducción

Las ecuaciones de Yule–Walker multivariadas extienden las ecuaciones del modelo AR al caso de series de tiempo multivariadas, particularmente para procesos VAR(p).

Estas ecuaciones relacionan las matrices de autocovarianza con los parámetros del modelo VAR.


2. Modelo VAR(p)

Sea \(y_t\) un vector aleatorio de dimensión \(k \times 1\).

Un modelo VAR(p) se define como

\[ y_t = A_1 y_{t-1} + A_2 y_{t-2} + \cdots + A_p y_{t-p} + \varepsilon_t \]

donde


3. Función de autocovarianza

Definimos la matriz de autocovarianza

\[ \Gamma(h) = E(y_t y_{t-h}') \]

para \(h = 0,1,2,...\)

donde

\[ \Gamma(0) = Var(y_t) \]


4. Derivación de las ecuaciones de Yule–Walker

Partimos del modelo VAR(p):

\[ y_t = \sum_{i=1}^p A_i y_{t-i} + \varepsilon_t \]

Multiplicamos por \(y_{t-h}'\) y tomamos esperanza:

\[ E(y_t y_{t-h}') = E\left(\sum_{i=1}^p A_i y_{t-i} y_{t-h}'\right) + E(\varepsilon_t y_{t-h}') \]

Para \(h>0\)

\[ E(\varepsilon_t y_{t-h}') = 0 \]

Entonces

\[ \Gamma(h) = \sum_{i=1}^p A_i \Gamma(h-i) \]

Estas son las ecuaciones de Yule–Walker multivariadas.


5. Caso h = 0

Para \(h=0\):

\[ y_t y_t' = \left(\sum_{i=1}^p A_i y_{t-i} + \varepsilon_t \right) \left(\sum_{i=1}^p A_i y_{t-i} + \varepsilon_t \right)' \]

Tomando esperanza:

\[ \Gamma(0) = \sum_{i=1}^p A_i \Gamma(i)' + \Sigma \]

donde


6. Sistema matricial

Las ecuaciones pueden escribirse como

\[ \Gamma(1) = A_1 \Gamma(0) + A_2 \Gamma(1) + \cdots + A_p \Gamma(p-1) \]

\[ \Gamma(2) = A_1 \Gamma(1) + A_2 \Gamma(0) + \cdots \]

Esto forma un sistema lineal matricial que permite estimar los parámetros del VAR.


7. Ejemplo en R

Simulación de un VAR(1)

library(vars)
library(MASS)

set.seed(123)

n <- 200

A <- matrix(c(0.5,0.2,
              0.1,0.4),2,2)

Sigma <- matrix(c(1,0.3,
                  0.3,1),2,2)

y <- matrix(0,n,2)

for(t in 2:n){

  e <- mvrnorm(1,c(0,0),Sigma)

  y[t,] <- A %*% y[t-1,] + e

}

data <- as.data.frame(y)
colnames(data) <- c("y1","y2")

par(mfrow=c(2,1))

plot(data$y1,type="l",col="blue",
     main="Serie y1")

plot(data$y2,type="l",col="red",
     main="Serie y2")

par(mfrow=c(2,1))

acf(data$y1,main="ACF y1")

acf(data$y2,main="ACF y2")

irf_model <- irf(var_model)

plot(irf_model)

La causalidad de Granger es un concepto introducido por Clive Granger (1969) para evaluar si una serie de tiempo ayuda a predecir otra.

La idea es:

Una variable \(X_t\) causa en el sentido de Granger a \(Y_t\) si el pasado de \(X_t\) mejora la predicción de \(Y_t\) más allá del pasado de \(Y_t\).


2. Modelo VAR para dos variables

Consideremos dos series:

\[ X_t , Y_t \]

Se plantea el siguiente modelo VAR(p)

\[ Y_t = \alpha_0 + \sum_{i=1}^{p} \alpha_i Y_{t-i} + \sum_{i=1}^{p} \beta_i X_{t-i} + \varepsilon_{1t} \]

\[ X_t = \gamma_0 + \sum_{i=1}^{p} \gamma_i X_{t-i} + \sum_{i=1}^{p} \delta_i Y_{t-i} + \varepsilon_{2t} \]


3. Hipótesis de causalidad de Granger

Para verificar si X causa a Y, se plantea:

Hipótesis nula

\[ H_0: \beta_1 = \beta_2 = \cdots = \beta_p = 0 \]

Hipótesis alternativa

\[ H_1: \exists i \text{ tal que } \beta_i \neq 0 \]

Interpretación:

  • Si no se rechaza \(H_0\), \(X\) no causa a \(Y\) en el sentido de Granger.
  • Si se rechaza \(H_0\), \(X\) causa a \(Y\).

4. Estadístico de prueba

La prueba usa un estadístico F comparando dos modelos.

Modelo restringido

\[ Y_t = \alpha_0 + \sum_{i=1}^{p} \alpha_i Y_{t-i} + u_t \]

Modelo no restringido

\[ Y_t = \alpha_0 + \sum_{i=1}^{p} \alpha_i Y_{t-i} + \sum_{i=1}^{p} \beta_i X_{t-i} + \varepsilon_t \]

El estadístico es

\[ F = \frac{(RSS_R - RSS_U)/p}{RSS_U/(T-2p-1)} \]

donde

  • \(RSS_R\) : suma de residuos restringida
  • \(RSS_U\) : suma de residuos no restringida
  • \(T\) : tamaño de muestra

5. Interpretación

Existen cuatro posibles casos:

  1. X causa a Y
  2. Y causa a X
  3. Causalidad bidireccional
  4. No hay causalidad

6. Ejemplo en R

Simulación de dos series donde X causa Y.

library(vars)

set.seed(123)

n <- 200

x <- arima.sim(n=n,list(ar=0.6))

y <- numeric(n)

for(t in 2:n){
  y[t] <- 0.5*y[t-1] + 0.8*x[t-1] + rnorm(1)
}

data <- data.frame(x,y)

par(mfrow=c(2,1))

plot(data$x,type="l",col="blue",
main="Serie X")

plot(data$y,type="l",col="red",
main="Serie Y")

var_model <- VAR(data,p=2,type="const")

summary(var_model)
## 
## VAR Estimation Results:
## ========================= 
## Endogenous variables: x, y 
## Deterministic variables: const 
## Sample size: 198 
## Log Likelihood: -545.345 
## Roots of the characteristic polynomial:
## 0.7287 0.3553 0.3553 0.09254
## Call:
## VAR(y = data, p = 2, type = "const")
## 
## 
## Estimation results for equation x: 
## ================================== 
## x = x.l1 + y.l1 + x.l2 + y.l2 + const 
## 
##        Estimate Std. Error t value Pr(>|t|)    
## x.l1   0.528566   0.071783   7.363 5.06e-12 ***
## y.l1  -0.087819   0.068936  -1.274   0.2042    
## x.l2   0.035526   0.092961   0.382   0.7028    
## y.l2   0.096231   0.053848   1.787   0.0755 .  
## const  0.003704   0.067665   0.055   0.9564    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## 
## Residual standard error: 0.952 on 193 degrees of freedom
## Multiple R-Squared: 0.2821,  Adjusted R-squared: 0.2672 
## F-statistic: 18.96 on 4 and 193 DF,  p-value: 3.656e-13 
## 
## 
## Estimation results for equation y: 
## ================================== 
## y = x.l1 + y.l1 + x.l2 + y.l2 + const 
## 
##        Estimate Std. Error t value Pr(>|t|)    
## x.l1   0.781103   0.074863  10.434  < 2e-16 ***
## y.l1   0.478216   0.071894   6.652 2.91e-10 ***
## x.l2   0.085236   0.096950   0.879    0.380    
## y.l2  -0.008736   0.056158  -0.156    0.877    
## const  0.011546   0.070568   0.164    0.870    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## 
## Residual standard error: 0.9929 on 193 degrees of freedom
## Multiple R-Squared: 0.6962,  Adjusted R-squared: 0.6899 
## F-statistic: 110.5 on 4 and 193 DF,  p-value: < 2.2e-16 
## 
## 
## 
## Covariance matrix of residuals:
##         x       y
## x 0.90632 0.05466
## y 0.05466 0.98576
## 
## Correlation matrix of residuals:
##         x       y
## x 1.00000 0.05783
## y 0.05783 1.00000
causality(var_model,cause="x")
## $Granger
## 
##  Granger causality H0: x do not Granger-cause y
## 
## data:  VAR object var_model
## F-Test = 67.43, df1 = 2, df2 = 386, p-value < 2.2e-16
## 
## 
## $Instant
## 
##  H0: No instantaneous causality between: x and y
## 
## data:  VAR object var_model
## Chi-squared = 0.65995, df = 1, p-value = 0.4166
irf_model <- irf(var_model)

plot(irf_model)


Fórmula clave

La ecuación principal es

\[ Y_t = \alpha_0 + \sum_{i=1}^{p}\alpha_i Y_{t-i} + \sum_{i=1}^{p}\beta_i X_{t-i} + \varepsilon_t \]

y la prueba consiste en verificar

\[ H_0: \beta_1=\beta_2=\dots=\beta_p=0 \]


✅ Si quieres, también puedo darte la demostración matemática completa de la causalidad de Granger desde el VAR, incluyendo:

  • forma matricial del test de restricciones
  • test Wald
  • test LR
  • test LM
  • versión para VECM con cointegración

(esto normalmente lo piden en econometría de maestría o doctorado).