24 oct 2019

Breves notas sobre la inflación en la República Dominicana según la literatura


La inflación, entendida “como un aumento generalizado en el nivel de precios de una economía”, independientemente a la condición económica vigente, preocupa a los hacedores de políticas, estando sus repercusiones negativas ampliamente argumentadas en la literatura económica. La siguiente entrada pretende exponer algunos puntos identificados en la literatura reciente sobre inflación en la República Dominicana.

La evolución histórica de la inflación en la República Dominicana, según la literatura, hasta el año 2000-2002 estuvo determinada por el movimiento de los agregados monetarios, la inflación extranjera y el tipo de cambio, teniendo los desequilibrios monetarios una afluencia importante sobre el nivel inflación (Williams & Adedeji, 2004), cuestión que se vio reflejada en la crisis financiera que inició en 2003. No obstante, pese a que posterior a la crisis financiera de 2003 la inflación descendió dramáticamente (Ribando, 2005), los desequilibrios macroeconómicos de 2003 conllevaron a la inestabilidad de la demanda de dinero (AndúJar, 2014, pág. 108) (Pascual, 2016), lo que dificultaba el manejo de la inflación por medio de agregados monetarios, cuestión que impulsó la adopción del Esquema de Metas de Inflación (EMI) en 2012  (Pérez, 2014).

Posterior a la adopción del EMI, específicamente para el año 2014, la inflación se mantuvo por debajo del rango meta (Ramírez & Sánchez, 2019), asociada a políticas restrictivas y bajas presiones inflacionarias de origen externo (Mespyd, 2015). Mientras que la evolución reciente (2019) de la inflación en el país marca niveles de variación interanual por debajo del rango meta establecido (BCRD, 2019, p. 9), esto pese a la incertidumbre fiscal e internacional vigente, este panorama de inflación controlada ha llevado a la literatura a describir el escenario actual como un contexto macroeconómico con bajas presiones inflacionarias (Intec, 2017, pág. 2), que ha incidido sobre el bienestar de la población (Pascual, 2016). De forma conjunta, estos niveles de inflación se adhieren a una reducción verificada desde el segundo semestre de 2018, como resultado de bajas presiones inflacionarias en los grupos “transporte” y “alimentos y bebidas no alcohólicas”. Esto, posterior a que en julio de 2018 se verificara un aumento de la tasa de política monetaria, para intentar contrarrestar presiones inflacionarias derivada de la demanda interna y los precios del petróleo (Ministerio de Hacienda, 2019, pág. 13) y (CEPAL, 2019), dando al traste con la menor inflación anual de las últimas tres décadas (1.17%), con una caída de los precios de los bienes transables hacia finales de año (BCRD, 2019b).

Adicionalmente, posterior a la adopción del EMI se observa menor volatilidad en las variaciones del Índice de Precios al Consumidor (Peña & Rosario, 2018, p. 49) (Checo & Camacho, 2019). Por lo que, la literatura apunta a una reducción de la volatilidad y el nivel de inflación a partir del EMI. Esta volatilidad esta relacionada positivamente con el nivel de inflación e incidida a su vez por las fluctuaciones observadas en los precios del petróleo (Ramírez, 2011, pág. 31), siendo coherente con la evidencia empírica que identifica causalidad de la volatilidad de los precios de los commodities sobre la inflación (Casanova & Ramírez, 2013, pág. 50).

Respecto a los componentes que guían la inflación, la literatura ha identificado que el componente volátil guía la inflación en el corto plazo, siendo los choques asociados con los bienes regulados los de mayor transitividad. Aunque en términos generales, la influencia de estos factores volátiles se diluye previo al horizonte en el cual la política monetaria es efectiva, lo que llevaría asumir que las políticas monetarias no deberían responder a presiones inflacionarias asociadas a este componente (BCRD, 2018, pp. 23-24) (Checo & Ramírez, 2018).

Adicionalmente, la inflación salarial incide sobre la inflación de precios con un rezago de dos trimestre, mientras que el tipo de cambio tiene un efecto contemporáneo y con rezago de un trimestre (Michel, 2014). Aunque en el caso de la respuesta contemporánea de la inflación al tipo de cambio, los autores Ramírez y Sánchez (2019) determinan que este efecto se ha reducido de 33% en 2012 a 23% en 2018, explicado tanto por el componente transable, como por el no transables. Es decir, que luego de asumir un esquema de meta de inflación ha disminuido el efecto traspaso sobre la inflación derivado del tipo de cambio (Peña & Rosario, 2018) (Checo & Camacho, Impacto macroeconómico de una política monetaria con metas de inflación, 2019).  Según estos autores, el efecto de largo plazo pasó del 38% al 21%, posterior a la adopción del esquema de metas de inflación, aunque el coeficiente asociado a los bienes transables y el pass-through de corto plazo no registran cambios alrededor de la adopción del EMI. Según estudios recientes, se ha mantenido una tenencia a la baja  posterior al 2012, siendo esta especialmente explicada por el componente transable (Ramírez & Sánchez, 2019).

También, Ramírez (2011) estudió los mecanismos de trasmisión de los choques de los precios de petróleo, identificándose un efecto (pass-through) de estos precios sobre los combustibles, especialmente la gasolina regular, este efecto derivado de factores externos hace que la dinámica de la inflación este influenciada por factores domésticos y externos (Sánchez & Ramírez, 2018). Siendo lo anterior coherente con que la inflación internacional ha mostrado incidencia histórica sobre los precios domésticos (Williams & Adedeji, 2004).

En términos de expectativas, en el EMI la meta intermedia es el esquema de meta de inflación, siendo los desvíos alrededor de la meta, lo que provoca reacciones de los hacedores de política (Andújar, 2014). En tal sentido, pese a que se verifica en el país un proceso de aprendizaje respecto a las expectativas, resalta que sean los académicos el grupo que muestra mayores errores de pronósticos (Jiménez & López, 2013). Existiendo, según estos autores, una importante heterogeneidad en las expectativas entre los diversos agentes económicos.

Mientras que, referidos al tipo de modelo para obtener pronósticos sobre la inflación, Michel (2014, pág. 86) encuentra evidencia de que los modelos de series de tiempo producen pronósticos más precisos que los modelos que expresan relaciones causales. Además, al hacer combinaciones de modelos, el autor identifica se mejora la precisión de los modelos. Al comparar modelos de Vectores Autoregresivos (VAR) tradicionales con modelos aumentados con factores (FAVAR), los autores Caffaro y Pérez (2018) identifican que el modelo aumentado por factores reduce el error de pronóstico un 7.2% respecto al modelo VAR.

Referencias

AndúJar, J. (2014). La transición de República Dominicana a metas de inflación. Revista Dominicana de Economía, 199-120.
BCRD. (2018). Banco Central de la República Dominicana (mayo 2018). Departamento de Programación Monetaria y Estudios Económicos. Banco Central de la República Dominicana.
BCRD. (2019). Informe de Política Monetaria. Banco Central de la República Dominicana, Departamento de Programación Monetaria y Estudios Económicos. Santo Domingo.
BCRD. (2019b). BCRD informa que la inflación cerró el año 2018 en 1.17%. Banco Central de la República Dominicana. Recuperado el 2019 de 10 de 24, de https://www.bancentral.gov.do/a/d/4194-bcrd-informa-que-la-inflacion-cerro-el-ano-2018-en-117
Caffaro, G., & Pérez, J. (2018). Modelo FAVAR ´Optimo para Proyecciones de Corto Plazo: Aplicación a la República Dominicana. Ministerio de Hacienda.
Casanova, F., & Ramírez, F. (2013). Análisis de la Volatilidad de la Inflación en la República Dominicana. En B. C. Dominicana, Oeconomia.
CEPAL. (2019). Balance Preliminar de las Economías de América Latina y el Caribe 2018 . Comisión Económica para América Latina y el Caribe (CEPAL) .
Checo, A., & Camacho, F. (2019). Impacto macroeconómico de una política monetaria con metas de inflación. (B. C. Dominicana, Ed.) Nueva Literatua Económica.
Checo, A., & Ramírez, F. (2018). Análisis de los choques relevantes sobre la infl ación en la República Dominicana. Santo Domingo.
Intec. (2017). Análisis de la economía dominicana. Área de Economía y Negocios.
Jiménez, M., & López, N. (2013). Expectativas de Inflación en República Dominicana: Un Análisis Desagregado. En B. C. Dominicana, Oeconomia (págs. 55-67). Santo Domingo.
Mespyd. (2015). Marco Macroeconómico 2015-2019 . Ministerio de Economía Planificación y Desarrolo .
Michel, J. (2014). Determinantes Internos y Externos de la Inflación en una Economía Pequeña y Abierta: El Caso de la República Dominicana. En B. C. Dominicana, Oeconomia (págs. 69-81). Santo Domingo.
Michel, J. (2014). Modelo de Inflación: Estabilidad y Capacidad de Pronóstico. En B. C. Dominicana, Oeconomia (pág. 83). Santo Domingo.
Ministerio de Hacienda. (2019). Informe de avance de las proyecciones macroecónomicas y fiscales 2020. Digipres.
Pascual, O. (2016). Una estimación del costo en bienestar de la inflación para República Dominicana. (B. C. Dominicana, Ed.) Nueva Literatura Económica.
Peña, P., & Rosario, P. (2018). Adopción de Esquemas de Metas de Inflación y el Traspaso de Tipo de Cambio: Evidencia para República Dominicana. Ciencia, Economía & Negocios.
Pérez, E. (2014). Inflation Targeting y el Dr. J.L. Alemán. Revista Dominicana de Economía , 121-139 .
Ramírez, F. (2011). Precios del Petróleo e Inflación en la República Dominicana: Análisis Empírico para el periodo 2000 – 2010. En B. C. Dominicana, Oeconomia (págs. 21-33). Santo Domingo.
Ramírez, F., & Sánchez, J. (2019). Dinámica del traspaso del tipo de cambio depués de la implementación de un esquema de meta de inflación: el caso de la República Dominicana. En B. C. Dominicana, Oeconomia. Santo Domingo.
Ribando, C. (2005). Dominican Republic: Political and Economic Conditions and Relations with the United States. CRS Report for Congress.
Sánchez, J., & Ramírez, F. (2018). Dinámica de la inflación subyacente en economías pequeñas y abiertas: el caso de las economías de Centroamérica y República Dominicana. En B. C. Dominicana, Oeconomia. Santo Domigno.
Williams, O., & Adedeji, O. (2004). Inflation Dynamics in the Dominican Republic. IMF Working Paper.

1 oct 2019

Procedimientos recursivos y de ventana móvil para evaluar el rendimiento del pronóstico ARIMA (auto.arima en R)

En la siguiente entrada se muestra cómo utilizar bucles en R para rotar una ventana de estimaciones de distintas formas, con el fin de realizar un pronóstico y evaluar dicho pronóstico a un horizonte determinado utilizando el promedio de los errores de pronóstico obtenidos y la representación histórica de los errores de pronósticos. Las siguientes líneas generan una serie aleatoriamente (export) con la que ilustraremos el ejemplo, de la que posteriormente se crea una tasa de crecimiento discreta (tcexport) y se verifica su evolución gráfica.

library(forecast)
export <- cumsum(rnorm(100))
plot(export, type="l")
tcexport <- diff(export)/export[-length(export)]
plot(tcexport, type="l")
Ventana recursiva

Cargados los datos, la idea del procedimiento recursivo es sencilla, se parte de una muestra de tamaño determinado, elegimos una proporción de los datos totales para iniciar nuestras estimación, sobre esta proporción se estima un modelo ARIMA, usando la función auto.arima (aunque note que pudiese cambiar la metodología de estimación por alternativas como holt, ets u otras disponibles en el paquete forecast), se realiza el pronóstico a los próximo h pasos (6 en este ejemplo) y se comparan los valores que se proyectan con los valores observados durante dicho horizonte, de esta comparación se obtienen las medidas de rendimiento del pronóstico (se usa la función accuracy). Luego, se agrega una observación a la muestra usada para la estimación, es decir, si en la primera estimación la muestra iba de la observación 1 a la 50, en esta segunda ira de la 1 a la 51, y así sucesivamente se va agregando una observación en cada paso hasta n-h (n-h porque se debe contar siempre con h valores observados para poder comparar nuestros resultados).   

Para realizar el procedimiento anterior, primero se crean tres elementos: t es el total de observaciones; ventana es el intervalo de la ventana de entrenamiento, es decir, la que se usara para estimar el modelo con el cual se hará el pronóstico (en el ejemplo se usara el 70% de la muestra para realizar la primar estimación, posteriormente se agregará 1 observación en cada corrida); finalmente, n.valid representa el horizonte relevante.

t<-length(tcexport)
ventana<-round(t*0.7)
n.valid <- 6

El siguiente bucle utiliza un procedimiento recursivo donde obs es un contador que va desde ventana hasta t-n.valid (de 69 a 93 en este ejemplo), para luego indexado en el vector que se desea estimar tcexport [1:obs], ir agregando una observación (en el vector usado para estimar el modleo) en cada iteración del bucle. Posteriormente, a la serie elegida (tcexport [1:obs]) se le realiza un autoarima (del paquete forecast) y se realiza el pronóstico (xh). Finalmente se evalúa la precisión de este (xh) al comparar con los valores observados en ese periodo (xhobs). Nótese que esta comparación se realiza utilizando la función accuracy, también del paquete forecast. La matriz matrixRend la usaremos para guardar las series de rendimientos de los modelos, agregando los errores de medidas estimados como una fila adicional en cada estimación.

for (obs in ventana:(t-n.valid)){
  x<-tcexport[1:obs]
  model <- auto.arima(x)
  xh<-forecast::forecast(model, h=n.valid)$mean
 
  xhobs <- tcexport[(obs+1):(obs+n.valid)]
  matrixRend <- rbind(matrixRend, accuracy(xh,xhobs))
}

Ahora, la matrixRend muestra donde se han guardado los errores de pronósticos a 6 pasos, obtenido en cada una de las iteraciones. Una descripción del significado de cada una de las medidas de error, puede encontrarse fácilmente en la red.

head(matrixRend)

                   ME       RMSE        MAE MPE MAPE
Test set -0.007480647 0.11702889 0.10167476 100  100
Test set  0.035803108 0.10833884 0.09413361 100  100
Test set  0.012349578 0.09964723 0.08128739 100  100
Test set  0.036271693 0.11525404 0.10465435 100  100
Test set  0.019662793 0.09575623 0.08804545 100  100
Test set  0.024933024 0.09351676 0.08277522 100  100

Usando la función vectorizada apply podemos obtener el promedio global de cada medida de error:

apply(matrixRend, 2, mean)
          ME         RMSE          MAE          MPE         MAPE
  0.02475966   0.09155146   0.07858338 100.00000000 100.00000000

O la evolución histórica del error de pronóstico:

plot(matrixRend[,"RMSE"], type="l")
Ventana móvil

El procedimiento es el mismo del anterior, la única diferencia es que la ventana de estimación de los modelos mantiene fijo el punto de inicio, siempre agregándose una observación en cada paso. Es decir, ahora la ventana de estimación mantiene el mismo tamaño (en nuestro ejemplo 70 observaciones). Por ejemplo, en la primera estimación se usa una muestra que va desde 1:70, en la segunda 2:71, 3:72, y así sucesivamente hasta recorrer todo el rango.

Metodología
Paso 1
Paso 2
Paso 3
Recursiva
1:x
1:x+1
1:x+2
Móvil
1:x
2:x+1
3:x+2

Para realizar la estimación mediante ventana móvil solo se modifica la forma de recorrer el bucle. En tal sentido, i es ahora el contador que indica en cual observación inicia la muestra, que, al ser siempre del mismo tamaño, solo necesitamos sumar las siguientes 70 observaciones (ventana) observaciones posteriores [i:(i+ventana-1)].

matrixRend1 <- c()

for (i in 1:(t-ventana-n.valid+1)){
     x<-tcexport[i:(i+ventana-1)]
     model <- auto.arima(x)
     xh1<-forecast::forecast(model, h=n.valid)$mean
 
    xhobs <- tcexport[(obs+1):(obs+n.valid)]
     matrixRend1 <- rbind(matrixRend1, accuracy(xh1,xhobs))
  }

Una vez obtenido los resultados, podemos comparar el error promedio usando ambas estimaciones, notándose menor RMSE derivado de la segunda estimación:

rbind(recursivo = apply(matrixRend, 2, mean),
      movil = apply(matrixRend1, 2, mean))

                   ME       RMSE        MAE      MPE     MAPE
recursivo  0.024759664 0.09155146 0.07858338 100.0000 100.0000
movil     -0.005826735 0.08222809 0.06966551 124.4853 138.9471

También podemos comparar la evolución histórica de ambos error de pronóstico:

plot(matrixRend[,"RMSE"], type="b", pch=19, col = "blue")
lines(matrixRend1[,"RMSE"], col="red", type="b")
legend("topright", legend=c("Recursiva", "Móvil"),
       col=c("blue", "red"), lty=1:2, cex=0.8)

Creando variables por grupos en dplyr (group_by + mutate)

  Simulemos una base de hogares, donde se identifica el hogar, el sexo (1 mujer) y provincia y edad para cada miembro.   # Definir la lista ...