4 votos

Residuos del modelo VAR con correlación significativa en el lag 12

He intentado ajustar un modelo VAR para dos estacionario series temporales dlogsl_ts y dlogllc_ts (comprobado mediante la prueba PP y la prueba ADF), los datos mensuales del caudal del río. De:

VARselect(dlogdata, lag.max=10) # SC(3)

Parece que podría intentar ajustar el modelo con un desfase de 3. En general, mi modelo parece bueno:

dlogllc_ts = dlogsl_ts.l1 + dlogllc_ts.l1 + dlogsl_ts.l2 + dlogllc_ts.l2 + dlogsl_ts.l3 + 
             dlogllc_ts.l3 

               Estimate Std. Error t value Pr(>|t|)    
dlogsl_ts.l1  -0.21404    0.06660  -3.214 0.001387 ** 
dlogllc_ts.l1  1.27827    0.05459  23.417  < 2e-16 ***
dlogsl_ts.l2   0.32462    0.09590   3.385 0.000762 ***
dlogllc_ts.l2 -0.61543    0.07962  -7.729 5.11e-14 ***
dlogsl_ts.l3  -0.19386    0.06617  -2.930 0.003529 ** 
dlogllc_ts.l3  0.20707    0.05516   3.754 0.000193 ***

Residual standard error: 0.3493 on 555 degrees of freedom
Multiple R-Squared: 0.7601, Adjusted R-squared: 0.7575 
F-statistic: 293.1 on 6 and 555 DF,  p-value: < 2.2e-16 

Covariance matrix of residuals:
           dlogsl_ts dlogllc_ts
dlogsl_ts    0.08150    0.06342
dlogllc_ts   0.06342    0.12197

Correlation matrix of residuals:
           dlogsl_ts dlogllc_ts
dlogsl_ts     1.0000     0.6361
dlogllc_ts    0.6361     1.0000

Sin embargo, al observar los residuos también parece que el modelo no está validado:

Residuals

Mi código:

fit_var1 <- VAR(dlogdata,type="none",p=3)
var1_residuals <- resid(fit_var1)
var1_residuals
acf(var1_residuals)
par(mfrow=c(2,2))
acf(var1_residuals[,1])
acf(var1_residuals[,2])
ccf(var1_residuals[,1],var1_residuals[,2])

¿Puede alguien decirme por qué tengo esta correlación residual significativa en el lag 12? También ocurre con otros modelos que he intentado ajustar. Ya he intentado eliminar la estacionalidad al principio:

dlogsl_ts  <- diff(log(sl_ts),  lag = 12)
dlogllc_ts <- diff(log(llc_ts), lag = 12)

Si simplemente utilizo un VAR(12), la estructura residual no cambiaría mucho: enter image description here

Ahora ve con VAR(24): enter image description here

Y VAR(48): enter image description here

Apenas cambia la estructura residual. Por supuesto, es inútil modelar un VAR de tan alto orden, pero sólo para demostrar aquí la "terquedad" de la correlación residual.

1voto

Richard Hardy Puntos 6099

En primer lugar, tienes datos mensuales, y el caudal del río es un candidato muy natural a ser estacional. Evoluciona en ciclos de 12 meses, creando así una correlación serial en el retardo 12. Lo que podría hacer es ajustar los datos estacionalmente antes de ajustar el modelo VAR o incluir variables ficticias mensuales en el modelo VAR. Usted menciona que ha probado el primer enfoque pero no funcionó, lo cual es sorprendente; tal vez podría probar un procedimiento alternativo de ajuste estacional en su lugar.

En segundo lugar, la función VARselect considera sólo los modelos no restringidos. Con esto quiero decir que si el lag $k$ se incluye, lag $k-1$ también se incluirá; la función no considera, por ejemplo, el VAR(12) en el que todos los coeficientes de los rezagos 1 a 11 están restringidos a cero. Mientras tanto, un modelo pertinente para sus datos podría ser VAR(3) más el 12º retardo. Eso hace un modelo VAR(12) con muchos rezagos vacíos (del 4 al 11). Podría construir el modelo manualmente y ver cómo se comparan sus valores de AIC o BIC con los que resultan óptimos mediante VARselect .

Editar: He comprobado sus datos. Me parece que el problema está en la asimetría. Los niveles de agua tienen algunos picos positivos pero no negativos; los choques son asimétricos. El uso de un modelo VAR simple no tiene en cuenta eso, lo que resulta en residuos asimétricos y autocorrelacionados (aparentemente los picos son estacionales). Teóricamente, tal vez un modelo con errores asimétricos podría funcionar; sin embargo, dudo que haya alguna implementación de software relevante.

0voto

Dave Puntos 11

Aparte de los gráficos, he probado la prueba de Ljung-Box multivariante para los errores del modelo VAR(3), y se corresponde bien con lo que se ve en el gráfico.

 Lags  Statistic df    pvalue
    4   6.363911  4 0.1735696
    6  16.121955 12 0.1857140
    8  23.377069 20 0.2706611
   10  35.631486 28 0.1522238
   12 297.827866 36 0.0000000
   14 305.924463 44 0.0000000
   16 311.151630 52 0.0000000

Los primeros 11 rezagos pueden considerarse ruido blanco, pero a partir del duodécimo las cosas empiezan a complicarse.

Resultado similar también de un modelo GARCH arma(1,1)+garch(1,0)

 Ljung-Box Test     R    Q(10)  4.894078  0.8981404   
 Ljung-Box Test     R    Q(15)  142.1295  0           
 Ljung-Box Test     R    Q(20)  146.469   0           
 Ljung-Box Test     R^2  Q(10)  13.61885  0.1910976   
 Ljung-Box Test     R^2  Q(15)  76.52969  2.993006e-10

¿Sería un SARIMA multivariante una buena opción en este momento?

Gracias.

0voto

Dave Puntos 11

En estos datos de la serie temporal, la aplicación del operador de diferencia de lag 12 no es suficiente para eliminar completamente el patrón de estacionalidad. Por eso aparecen chispas en los residuos del modelo VAR en los lag 12, 24 y 36, etc.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X