Desde que entré al Doctorado en 2014 empecé a poner atención en los ganadores del premio Nobel. Parte del interés entre mis compañeros era ver quien ya conocía lo que había escrito el galardonado del año. Otra parte es que da la sensación de ser algo parecido a los Óscares o algún otro premio de alfombra roja con el que me podía sentir un poco más identificado.
Cuando empecé a dar clases empecé a dar una sesión especial en la semana en la que se nombraba al Nobel de Economía. Ahí aclaraba algunas dudas sobre cómo funcionaba el Nobel y además preparaba una clase para enseñar sobre el trabajo de los ganadores.
Igual que con los Óscar, me gusta especular sobre quienes ganarán esta prestigiosa presea, así que te voy a dejar mis predicciones para los ganadores de este año.
En primer lugar postulo a Claudia Goldin, por su monumental trabajo en témas de género. Creo que este Nobel tendrá que pasar algún día y espero que este sea el año que tengamos a la tercera mujer en ganar el Nobel de Economía: sería apropiado con la discusión actual y daría una buena señal a las mujeres economistas para que vean en esta profesión una opción viable.
En segundo lugar tengo a Angrist y Card. Hay quienes mencionan en el stack a Pischke, pero me gustó lo que sugirió Scott Cunninghamm sobre dejar el espacio libre para Alan Krueger, como una especie de silla vacía en su honor. Esto, o que cambien las reglas y le den de una vez un premio póstumo.
Hasta 2016, había una broma de que Leonardo DiCaprio siempre estaba nominado, pero nunca ganaba un Óscar. En ese año, ganó premio por su actuación en The Revenant y el chiste se terminó, pero yo sigo llamándole DiCaprio a las situaciones similares.
El DiCaprio de Los economistas a mi parecer es Daron Acemoglu. Probablemente su trabajo más influyente es el relacionado a la influencia de las instituciones en el crecimiento económico. Muchos lo conocen únicamente por eso, pues se ve reflejado en su libro Why nations fail, pero Acemoglu tiene muchísimo trabajo en otras áreas, como la influencia de la inteligencia Artificial en el mercado laboral.
El año pasado, siendo un año tan fuerte y controversial en muchos aspectos, le dieron el Nobel a un área que no generó mayores controversias, como es el diseño de subastas. Pero este año si tiene espacio para un poco más de controversia, me parece.
Otro posible candidato podría ser Susan Athey. Creo que su uso de Machine Learning es suficientemente innovador y está para quedarse.
¿Quién me falta incluir en la quiniela? ¿A quién incluirían en esta lista? También me llama la atención saber si tal vez hay autores hispanohablantes que valga la pena mencionar.
Sistemas Complejos
Por lo pronto, el premio de Física ya se otorgó a los sistemas complejos. Algo interesante es que Giorgio Parisi es también muy conocido por su trabajo en mecánica cuántica. En particular el modelo DGLAP (la P es por Parisi. De verdad).
Los sistemas complejos son súper útiles y extremadamente interesante. Por lo que he visto de conversación entre físicos, había algunos que no consideraban al área como física de verdad. Es buena noticia que este Nobel le de validez dentro del área a estos modelos.
Otro aspecto positivo es que también pone en la agenda al estudio de los efectos a largo plazo en el clima, algo que sin duda vale la pena mantener en la mente.
La próxima semana hablaremos sobre la/las ganadoras(es). Así que no olvides suscribirte, si no lo has hecho aún.
Otra vez toca un post técnico. En esta ocasión veremos uno de los modelos más utilizados en los trabajos de series de tiempo. Desde que Sims (1990) presentó su trabajo seminal, su uso se ha popularizado por ser una forma intuitiva de pensar en las relaciones causales entre variables. Sólo ese artículo de Sims tiene más de 16 mil citas en Google Académico. Sin embargo, su uso ha caído considerablemente en los últimos años. En la siguiente imagen podemos ver que la técnica tuvo dos auges: uno pocos años después de su lanzamiento por Sims y otro algunos años más adelante en los años 2000.
No obstante, es innegable que sigue siendo una técnica extremadamente popular, con mayor número de menciones en Ngram incluso de Diferencias en Diferencias, una técnica relativamente nueva de modelos en Panel que s motivo de discusión común hoy en día entre los expertos en econometría.
Este post tiene un poco más de técnica que los de las semanas pasadas. Así que, si quieres seguir el tutorial, te recomiendo que guardes este correo, lo pongas en favoritos o que compartas el link del post en Twitter (así le hago a veces para poder encontrar mas fácil mis tutoriales).
Intuición del modelo
El modelo VAR se llama así porque en inglés significa Vector Autorregression Models. La traducción literal sería autorregresión de vectores, pero se elige llamarle vectores autorregresivos porque mantiene las siglas sin perder mucho el significado. Vale la pena rescatar que el VAR de los econometristas vino muchísimo primero que el videoarbitraje que se usa en los partidos de futbol. Tenemos preferencia.
Pero, ¿que significa que un modelo sea autoregresivo? el nombre implica que cada variable se modela como una función de valores pasados. Es decir, los predictores son rezagos de la serie.
Esto debe de hacerte pensar en los modelos ARIMA. En este caso la serie de tiempo se modela como una combinación lineal de sus propios rezagos. Los valores pasados de la serie se usan para proyectar al futuro los valores. Un modelo típico de tipo AR(p) se ve algo así
En comparación, un modelo VAR hace que cada variable sea la combinación lineal de los valores pasados de sí misma y de los valores pasados de otras variables en el sistema. Un modelo de tipo VAR(2) que tiene tres variable se ve como un sistema de ecuaciones así
El proceso que usaremos en este tutorial es que haremos un análisis de la serie de tiempo, y encontraremos el orden óptimo del modelo. Usaremos este modelo para crear predicciones y probaremos las predicciones en un subconjunto de la serie.
Importando la base de datos
Para estos ejemplos usaremos las siguientes librerías. Recuerda que si no las tienes es necesario descargarlas usando install.packages().
Esta base de datos se basa en este artículo de Mehra (1994) sobre el proceso de la inflación y el crecimiento de salarios. Se compone por 8 series de tiempo: el Producto Nacional Bruto (GNP) en términos reales rgnp. También tiene el GNP potencial en términos reales pgnp, el costo unitario por el trabajo ulc, el deflactor de los gastos de consumo personal excluyendo alimentación y energía gdfco, el deflactor del GNP gdf, el deflactor de importaciones gdfim, el deflactor de alimentación en los gastos de consumo personal gdfcf y el de energía, también dentro de los gastos de consumo personal gdfce. Todos los deflactores son de ponderación fija.
Hagamos primero un análisis visual de los datos generando una gráfica de líneas para cada una de las variables. Usaremos ggplot para esto
df %>%
reshape2::melt(id = "date") %>% ggplot(aes(x = as.Date(date), y = value, group = variable))+ geom_line()+ facet_wrap(~variable, scales = 'free_y')+
labs(x = 'Date', y = 'Value')
Hagamos un objeto de tipo xts con la base de datos. En la sintaxis que uso estoy asumiendo que tal vez olvidaste cargar la librería xts. Es también una buena práctica en ocasiones para liberar espacio RAM en la computadora y para ser muy claro si alguien más está viendo el código.
La base detrás del modelo VAR es que cada una de las series de tiempo en el sistema tienen influencia en las demás. Es decir, podemos predecir la serie de tiempo para una serie utilizando los rezagos de la otra. Podemos probar esta primera hipótesis usando el test de causalidad de Granger incluso antes de comenzar a construir nuestro modelos.
En el test de causalidad de Granger, la hipótesis nula es que los coeficientes de los valores pasados en la ecuación de regresión es cero. Por lo tanto, si el valor p que nos arroje la prueba es menor al nivel de significancia de 0.5, entonces podremos rechazar la hipótesis nula.
En el siguiente código, hacemos un ciclo en el que probamos el modelo para todas las variables. Al final de cada iteración, R nos muestra únicamente los resultados del valor p para cada prueba que hacemos.
Podemos hacer pruebas con diferentes niveles de rezago. En este caso, encontramos que dos rezagos nos dan un nivel bastante bueno de causalidad en el sentido de Granger. Esto nos indica que es posible hacer un modelo con este sistema, pues todas las variables en la misma parecen tener causalidad en las demás. El siguiente paso es hacer una prueba de cointegración.
Cointegración
La prueba de cointegración ayuda a establecer la presencia de una conexión estadísticamente significativa entre dos o más series de tiempo. Cuando se tienen dos o más series de tiempo y existe una combinación lineal de ellas que tiene un orden de integración (d) menor al de la serie individual, se dice que la serie está cointegrada.
¿Y esto que significa? Cuando dos o más series de tiempo están cointegradas, significa que tienen una relación estadística significativa en el largo plazo. Esta condición es necesaria para cumplir con la premisa de los modelos VAR. Por eso es una buena idea implementar la prueba de cointegración antes de empezar a construir los modelos VAR.
Afortunadamente, Johansen (1991) nos muestra un método para implementar esta prueba. En la prueba de cointegración de Johansen, la hipótesis alternativa para el eigenvalor de la prueba es que hay $r + 1$ relaciones de cointegración. Por lo tanto es una prueba secuencial: primero pruebas para $r= 0$, después para $r = 1$, y así hasta encontrar la prueba en la que $H_0$ se rechaza por primera vez.
Podemos implementar esta prueba con el uso de la siguiente función dentro de la librería urca.
¡Este método nos muestra cointegración en nuestro sistema!
Alternativamente, también se puede usar la prueba Dickey Fuller para obtener el mismo tipo de resultado.
for (var in names(df[,-1])) { df_test <- ur.df(df_ts[,var], lags = 6, selectlags = "AIC", type = "drift") print(var) print(df_test) }
Comencemos con el modelo
Una vez con luz verde de los diagnósticos, podemos enfocarnos al modelo. Para eso primero partiremos nuestra serie en una serie de prueba y otra de entrenamiento, que nos permita generar un modelo a partir del cual haremos predicciones sobre la prueba.
Usaremos el modelo para predecir las siguientes 4 observaciones de los datos:
train <- df_ts[-((n-4):n),] test <- df_ts[(n-4):n,]
El siguiente paso es verificar estacionariedad. Para eso haremos nuestra prueba de Dickey-Fuller aumentada para revisar la existencia de raíces unitarias.
La prueba de Dickey Fuller Aumentada permite los procesos autorregresivos de alto orden, incluyendo $\Delta_{x_{t-p}}$ en el modelo.
for (var in names(train)) { adf <- tseries::adf.test(train[,var], alternative = 'stationary', k = trunc((length(train)-1)^(1/3))) print(var) print(adf) }
El resultado de esta prueba nos muestra que ninguna serie es estacionaria. Haremos por lo tanto diferenciación de todas las variables al mismo tiempo. Afortunadamente, R hace muy fácil esto usando únicamente diff(train). Al correr el modelo encontramos que algunas de las variables aún no son estacionarias. Esto lo podemos también observar de manera gráfica usando plot de la variable diferenciada.
Por lo tanto, usaremos la segunda diferencia para llevar a cabo este modelo
diff_train <- diff(train, na.pad = F, lag = 2)
Y esto es todo por hoy en este proyecto. En la siguiente semana ya haremos el modelo y haremos pruebas con él para lograr hacer predicciones. También haremos algunos comentarios respecto a su implementación y algunos aspectos prácticos al respecto.
Referencias
Sims, C. (1980). Macroeconomics and Reality. Econometrica, 48(1), 1-48. doi:10.2307/1912017
Mehra Y.P. (1994) Wage Growth and the Inflation Process: An Empirical Approach. In: Rao B.B. (eds) Cointegration. Palgrave Macmillan, London. https://doi.org/10.1007/978-1-349-23529-2_5
Johansen, S. (1991). Estimation and Hypothesis Testing of Cointegration Vectors in Gaussian Vector Autoregressive Models. Econometrica, 59(6), 1551-1580. doi:10.2307/2938278
Los mercados
Hoy es un día muy importante para los mercados. Hoy es el anuncio de política monetaria de Jerome Powell. En este, Jerome nos dará la pauta de lo que vendrá para los próximos meses.
Este anuncio es particularmente importante porque la FED ha estado inyectando dinero a la economía de una manera nunca antes vista de manera contínua. Hasta el momento lo había hecho sin preocupaciones de la inflación, pero esta vez los indicadores de inflación sugieren que probablemente los estímulos paren y que la tasa de interés podría subir.
Es una situación muy estresante para un documento tan aburrido y críptico en su lectura (eso es por diseño). Particularmente porque ya ha pasado que el mercado haga un berrinche cuando los estímulos paran. Esperemos que el anuncio de Powell sea lo suficientemente sutil para que la reacción de los mercados sea favorable.