tasas_pasivas <- readxl::read_excel("tasas_pasivas_semanal.xlsx")
data <- tasas_pasivas |>
mutate(fecha = as.Date(week_inicio)) |>
arrange(fecha)
ts_data <- xts(tasas_pasivas[,-c(1,2)], order.by = data$fecha)Preparación de datos y tranformaciones
Se procedió a la carga de las tasas de interés pasivas con frecuencia semanal, las cuales fueron posteriormente transformadas a objetos de series de tiempo utilizando la clase xts. El conjunto de datos incluye las tasas correspondientes a depósitos a 30 días, depósitos a más de 360 días, así como la tasa promedio ponderada del sistema. Estas series son publicadas por el Banco Central de la República Dominicana.
Exploración de las Series
En niveles
autoplot(ts_data) +
labs(x = "Periodo", y = "Tasas") +
ggplot2::scale_y_continuous(labels = \(x) scales::comma(x, suffix = ".0 %"))Como se observa Figura 1 exites un nivel de volatilidad en las tres tasas presentadas, pero como es de esperar, se registra un nivel más alto de volatilidad a medida que nos movemos de una tasa de mayor plazo a menor subsesivamente.
Existen episodiso de alta volatilidad, principalmente en coyunturas asociadas a eventos de crisis internacionales.
En diferencias logarítmicas
ts_ld <- diff(log(ts_data))*100
autoplot(ts_ld) + labs(x = "Periodo", y = "Tasas")Las series en diferencias logarítmicas presentan un comportamiento consistente con estacionariedad en media, dado que oscilan alrededor de un valor cercano a cero y no evidencian tendencias persistentes a lo largo del tiempo. Este resultado es coherente con la transformación aplicada, la cual suele eliminar la no estacionariedad presente en los niveles de las series.
No obstante, aunque la media parece estable, la varianza no es constante. Se identifican claramente períodos de baja variabilidad seguidos de episodios de alta volatilidad, especialmente en años recientes, donde las fluctuaciones son más pronunciadas. Este patrón refleja la presencia de clusters de volatilidad, es decir, agrupamientos de alta y baja variabilidad en el tiempo.
En diferencias logarítmicas al cuadrado
autoplot(ts_ld^2) + labs(x = "Periodo", y = "Tasas")En las tres series de la Figura 3, los picos de volatilidad no aparecen de forma aislada y aleatoria, sino que se agrupan en el tiempo; cuando hay un valor elevado del cuadrado de la diferencia logarítmica, es muy probable que los períodos adyacentes también presenten valores elevados. Esto es precisamente la firma estadística de autocorrelación en la varianza (también llamada autocorrelación en los cuadrados de los residuos). Hay períodos largos de baja volatilidad interrumpidos por episodios de alta volatilidad persistente, eso es clustering, e implica autocorrelación significativa en la varianza.
División por Régimen
autoplot(r_pre) + labs(x = "Periodo", y = "Tasas")
autoplot(r_post) + labs(x = "Periodo", y = "Tasas")Las Figura 4 y Figura 5 presentan las diferencias logarítmicas de las tasas pasivas en los subperíodos pre y post adopción del Esquema de Metas de Inflación (EMI). En el período pre-EMI (2008–2012), las tres series muestran fluctuaciones de amplitud moderada y sin episodios de volatilidad extrema sostenida. Por el contrario, en el período post-EMI (2013–2025) se observa un marcado clustering de volatilidad, especialmente durante 2019–2022, donde tp_30d y tp_m360 registran excursiones que superan los ±75 puntos, reflejando el impacto de los choques macroeconómicos asociados a la pandemia del COVID-19.
Modelo de la Media
Vamos a seleccionar la tasa pasiva de corto plazo, las de un periodo de de 30 días, ya que esta es la que muestra la mayor variabilidad en los dos subperiodos de la adopción del EMI.
(fit_mean <- auto.arima(r_pre[,1])) |> modelsummary()| (1) | |
|---|---|
| ar1 | -0.839 |
| (0.102) | |
| ma1 | 0.260 |
| (0.128) | |
| ma2 | -0.311 |
| (0.098) | |
| Num.Obs. | 208 |
| AIC | 1653.1 |
| BIC | 1666.5 |
| RMSE | 12.61 |
| x | 0.29871520651479 |
El modelo seleccionado es un ARMA(1,2), lo que indica que la serie presenta dependencia tanto en sus valores pasados como en choques anteriores. No obstante, para validar completamente la idoneidad del modelo, es imprescindible analizar los residuos; en particular, verificar que no presenten autocorrelación, condición necesaria para considerarlos como ruido blanco.
(resid_pre <- residuals(fit_mean)) |> plot(xlab = "Periodo", ylab = "Residuos", col = "darkblue", lwd = 2)Los residuos presentados en Figura 6 cumplen parcialmente con las condiciones de ruido blanco (media cero y sin autocorrelación evidente en media), pero muestran indicios de heterocedasticidad condicional. Por tanto, sería apropiado avanzar hacia la estimación de un modelo GARCH, que permita modelar explícitamente la dinámica de la volatilidad observada.
Test ARCH
ArchTest(resid_pre, lags =12)
ARCH LM-test; Null hypothesis: no ARCH effects
data: resid_pre
Chi-squared = 13.518, df = 12, p-value = 0.3326
El contraste tiene como hipótesis nula la ausencia de efectos ARCH (es decir, varianza condicional constante). En este caso, el valor p obtenido (p-value = 0.3326) es considerablemente mayor que niveles de significancia habituales (1%, 5% o incluso 10%). Por tanto, no se rechaza la hipótesis nula.
En consecuencia, no hay evidencia estadísticamente significativa de heterocedasticidad condicional en los residuos del modelo ARMA(1,2). Esto sugiere que la varianza de los errores puede considerarse aproximadamente constante en el tiempo, y que la especificación en media parece adecuada sin necesidad de modelar la volatilidad mediante un modelo GARCH.
Modelo GARCH(1,1)
Estimar el siguiente modelo GARCH(1,1):
\[\sigma^2_t = \alpha_0 + \alpha_1\epsilon^2_{t-1} + \beta_1\sigma^2_{t-1}\]
spec <- ugarchspec(variance.model = list(model ="sGARCH"), mean.model = list(armaOrder =c(1 ,1)))
fit <- ugarchfit(spec , data = r_pre[,1])Calcular:
\[\alpha + \beta = 0.14910+0.79396=0.94306\]
Sí, existe alta persistencia en la volatilidad, ver Sección 9.1.
El valor de \(\alpha + \beta =0.94306\) es muy cercano a 1, lo que indica que los choques a la volatilidad tienden a disiparse lentamente en el tiempo. En modelos GARCH(1,1), cuando esta suma es elevada (especialmente mayor a 0.9), se interpreta como evidencia de que la volatilidad es altamente persistente.
Modelos Extendidos
EGARCH
spec_egarch <- ugarchspec(variance.model = list(model = "eGARCH"), mean.model = list(armaOrder = c(0,0)))
(fit_egarch <- fit_egarch <- ugarchfit(spec_egarch, r_pre[,1]))
*---------------------------------*
* GARCH Model Fit *
*---------------------------------*
Conditional Variance Dynamics
-----------------------------------
GARCH Model : eGARCH(1,1)
Mean Model : ARFIMA(0,0,0)
Distribution : norm
Convergence Problem:
Solver Message:
GJR GARCH
spec_gjr <- ugarchspec(
variance.model = list(model = "gjrGARCH"),
mean.model = list(armaOrder = c(0,0))
)
fit_gjr <- ugarchfit(spec_gjr, r_pre[,1])IGARCH
spec_igarch <- ugarchspec(
variance.model = list(model = "iGARCH"),
mean.model = list(armaOrder = c(0,0))
)
fit_igarch <- ugarchfit(spec_igarch, r_pre[,1])Asimetría en la volatilidad
No se encuentra evidencia de asimetría en la volatilidad. En el modelo GJR-GARCH (ver Sección 9.2), el parámetro asociado al efecto asimétrico (\(\lambda_1\)) no resulta estadísticamente significativo (p-value elevado), lo que indica que no existen diferencias relevantes en la respuesta de la volatilidad ante choques positivos y negativos.
Adicionalmente, los resultados del Sign Bias Test refuerzan esta conclusión, ya que no se detectan efectos significativos asociados al signo de los shocks.
Impacto de shocks negativos
En línea con lo anterior, no hay evidencia de que los shocks negativos tengan un mayor impacto sobre la volatilidad en comparación con los positivos. La falta de significancia del término asimétrico implica que el modelo no captura efectos tipo leverage, es decir, no se observa que las caídas en las tasas generen incrementos desproporcionados en la volatilidad.
Persistencia de la volatilidad
Sí se observa una alta persistencia en la volatilidad, ir al Sección 9.3. En el modelo GJR-GARCH, la suma de los parámetros \(\alpha_1 + \beta_1\) es elevada (aproximadamente 0.90), lo que sugiere que los efectos de los shocks sobre la volatilidad se disipan lentamente.
Por su parte, el modelo iGARCH impone explícitamente una estructura de persistencia extrema, donde los choques tienen efectos permanentes sobre la varianza condicional. Sin embargo, este resultado debe interpretarse con cautela, ya que puede reflejar una sobreparametrización más que una verdadera dinámica de largo plazo.
Comparación Pre vs Post 2012
Estimación pre y post EMI
fit_pre <- ugarchfit(spec, data = r_pre[,1])
fit_post <- ugarchfit(spec, data = r_post[,1])Persistencia
\[(\alpha+\beta)\]
# Extraer coeficientes
coef_pre <- coef(fit_pre)
coef_post <- coef(fit_post)
(persist_pre <- coef_pre["alpha1"] + coef_pre["beta1"]) alpha1
0.9430608
(persist_post <- coef_post["alpha1"] + coef_post["beta1"]) alpha1
0.9936932
Nivel de volatilidad
Mean:
vol_pre <- sigma(fit_pre)^2
vol_post <- sigma(fit_post)^2
mean(vol_pre)[1] 174.419
mean(vol_post)[1] 274.5078
Gráficos
plot(sigma(fit_pre))
plot(sigma(fit_post))Consideraciones y comentarios
Con base en los resultados estimados, la volatilidad sí aumentó tras la adopción del esquema de metas de inflación. La varianza condicional promedio pasó de 174.42 en el período pre a 274.51 en el período post, lo que indica un entorno monetario más volátil después del cambio de régimen.
En términos de persistencia, también se observa un incremento claro: \((\alpha+\beta)\) pasó de 0.9431 en el período pre a 0.9937 en el período post. Esto sugiere que, luego de la adopción de metas de inflación, los choques sobre la volatilidad tardaron más en disiparse y dejaron una huella más prolongada en el tiempo. En consecuencia, sí se evidencia una persistencia del riesgo muy alta, especialmente en el período posterior.
Desde la perspectiva de política monetaria, estos resultados implican que el mercado monetario se volvió más sensible a perturbaciones y que la autoridad monetaria pudo haber enfrentado un entorno en el que los shocks sobre las tasas de interés tuvieron efectos más duraderos. Esto exige una respuesta de política más cuidadosa, con mayor énfasis en la comunicación, la credibilidad del régimen y el monitoreo permanente de las condiciones financieras, ya que pequeñas perturbaciones pueden traducirse en episodios de volatilidad prolongada.
En síntesis, tras la adopción de metas de inflación, la volatilidad aumentó, el riesgo se volvió más persistente y el mercado monetario mostró una dinámica más sensible a los shocks, lo que refuerza la importancia de una política monetaria bien anclada y preventiva.
Apéndices
Apéndice A: Estimación del modelo GARCH(1,1)
fit
*---------------------------------*
* GARCH Model Fit *
*---------------------------------*
Conditional Variance Dynamics
-----------------------------------
GARCH Model : sGARCH(1,1)
Mean Model : ARFIMA(1,0,1)
Distribution : norm
Optimal Parameters
------------------------------------
Estimate Std. Error t value Pr(>|t|)
mu -0.27821 0.473241 -0.58788 0.556611
ar1 -0.34519 0.197057 -1.75172 0.079822
ma1 -0.22134 0.217240 -1.01887 0.308265
omega 11.33151 7.231495 1.56697 0.117122
alpha1 0.14910 0.072464 2.05759 0.039630
beta1 0.79396 0.080398 9.87534 0.000000
Robust Standard Errors:
Estimate Std. Error t value Pr(>|t|)
mu -0.27821 0.521466 -0.53351 0.593677
ar1 -0.34519 0.312904 -1.10318 0.269950
ma1 -0.22134 0.376084 -0.58854 0.556172
omega 11.33151 6.788181 1.66930 0.095058
alpha1 0.14910 0.081813 1.82246 0.068385
beta1 0.79396 0.091567 8.67080 0.000000
LogLikelihood : -819.0942
Information Criteria
------------------------------------
Akaike 7.9336
Bayes 8.0299
Shibata 7.9320
Hannan-Quinn 7.9725
Weighted Ljung-Box Test on Standardized Residuals
------------------------------------
statistic p-value
Lag[1] 0.02729 8.688e-01
Lag[2*(p+q)+(p+q)-1][5] 6.04868 6.389e-05
Lag[4*(p+q)+(p+q)-1][9] 10.16317 7.848e-03
d.o.f=2
H0 : No serial correlation
Weighted Ljung-Box Test on Standardized Squared Residuals
------------------------------------
statistic p-value
Lag[1] 0.1052 0.7456
Lag[2*(p+q)+(p+q)-1][5] 1.6856 0.6943
Lag[4*(p+q)+(p+q)-1][9] 2.4124 0.8505
d.o.f=2
Weighted ARCH LM Tests
------------------------------------
Statistic Shape Scale P-Value
ARCH Lag[3] 1.466 0.500 2.000 0.2260
ARCH Lag[5] 1.804 1.440 1.667 0.5162
ARCH Lag[7] 2.004 2.315 1.543 0.7165
Nyblom stability test
------------------------------------
Joint Statistic: 1.3556
Individual Statistics:
mu 0.1674
ar1 0.1305
ma1 0.2824
omega 0.3115
alpha1 0.1610
beta1 0.3069
Asymptotic Critical Values (10% 5% 1%)
Joint Statistic: 1.49 1.68 2.12
Individual Statistic: 0.35 0.47 0.75
Sign Bias Test
------------------------------------
t-value prob sig
Sign Bias 1.2726 0.2046
Negative Sign Bias 0.7897 0.4306
Positive Sign Bias 0.2452 0.8066
Joint Effect 2.0579 0.5605
Adjusted Pearson Goodness-of-Fit Test:
------------------------------------
group statistic p-value(g-1)
1 20 14.31 0.7655
2 30 29.12 0.4591
3 40 27.77 0.9102
4 50 44.88 0.6406
Elapsed time : 0.07757807
Apéndice B: Estimación del modelo GJR GARCH
fit_gjr
*---------------------------------*
* GARCH Model Fit *
*---------------------------------*
Conditional Variance Dynamics
-----------------------------------
GARCH Model : gjrGARCH(1,1)
Mean Model : ARFIMA(0,0,0)
Distribution : norm
Optimal Parameters
------------------------------------
Estimate Std. Error t value Pr(>|t|)
mu -0.691101 0.930176 -0.74298 0.457495
omega 15.603654 10.723444 1.45510 0.145642
alpha1 0.150737 0.089879 1.67712 0.093519
beta1 0.752120 0.097329 7.72757 0.000000
gamma1 0.094272 0.164753 0.57220 0.567184
Robust Standard Errors:
Estimate Std. Error t value Pr(>|t|)
mu -0.691101 0.610998 -1.1311 0.258012
omega 15.603654 9.137554 1.7076 0.087703
alpha1 0.150737 0.098313 1.5332 0.125216
beta1 0.752120 0.094134 7.9899 0.000000
gamma1 0.094272 0.177237 0.5319 0.594796
LogLikelihood : -844.9818
Information Criteria
------------------------------------
Akaike 8.1729
Bayes 8.2531
Shibata 8.1718
Hannan-Quinn 8.2053
Weighted Ljung-Box Test on Standardized Residuals
------------------------------------
statistic p-value
Lag[1] 40.11 2.396e-10
Lag[2*(p+q)+(p+q)-1][2] 43.36 3.394e-12
Lag[4*(p+q)+(p+q)-1][5] 56.18 9.992e-16
d.o.f=0
H0 : No serial correlation
Weighted Ljung-Box Test on Standardized Squared Residuals
------------------------------------
statistic p-value
Lag[1] 0.04293 0.8359
Lag[2*(p+q)+(p+q)-1][5] 0.38185 0.9743
Lag[4*(p+q)+(p+q)-1][9] 0.57578 0.9976
d.o.f=2
Weighted ARCH LM Tests
------------------------------------
Statistic Shape Scale P-Value
ARCH Lag[3] 0.2235 0.500 2.000 0.6364
ARCH Lag[5] 0.2707 1.440 1.667 0.9480
ARCH Lag[7] 0.3418 2.315 1.543 0.9904
Nyblom stability test
------------------------------------
Joint Statistic: 0.7101
Individual Statistics:
mu 0.08102
omega 0.31340
alpha1 0.16376
beta1 0.27201
gamma1 0.11817
Asymptotic Critical Values (10% 5% 1%)
Joint Statistic: 1.28 1.47 1.88
Individual Statistic: 0.35 0.47 0.75
Sign Bias Test
------------------------------------
t-value prob sig
Sign Bias 0.53181 0.5954
Negative Sign Bias 0.27408 0.7843
Positive Sign Bias 0.01391 0.9889
Joint Effect 1.21125 0.7503
Adjusted Pearson Goodness-of-Fit Test:
------------------------------------
group statistic p-value(g-1)
1 20 14.31 0.7655
2 30 36.04 0.1724
3 40 32.38 0.7641
4 50 43.44 0.6971
Elapsed time : 0.184113
Apéndice C: Estimación del modelo IGARCH
fit_igarch
*---------------------------------*
* GARCH Model Fit *
*---------------------------------*
Conditional Variance Dynamics
-----------------------------------
GARCH Model : iGARCH(1,1)
Mean Model : ARFIMA(0,0,0)
Distribution : norm
Optimal Parameters
------------------------------------
Estimate Std. Error t value Pr(>|t|)
mu -0.42994 0.810816 -0.53025 0.595937
omega 8.82055 6.312439 1.39733 0.162315
alpha1 0.22251 0.091091 2.44269 0.014578
beta1 0.77749 NA NA NA
Robust Standard Errors:
Estimate Std. Error t value Pr(>|t|)
mu -0.42994 0.795010 -0.54079 0.588650
omega 8.82055 6.429122 1.37197 0.170073
alpha1 0.22251 0.097819 2.27468 0.022925
beta1 0.77749 NA NA NA
LogLikelihood : -845.749
Information Criteria
------------------------------------
Akaike 8.1610
Bayes 8.2092
Shibata 8.1606
Hannan-Quinn 8.1805
Weighted Ljung-Box Test on Standardized Residuals
------------------------------------
statistic p-value
Lag[1] 37.47 9.279e-10
Lag[2*(p+q)+(p+q)-1][2] 40.55 1.839e-11
Lag[4*(p+q)+(p+q)-1][5] 51.66 2.109e-14
d.o.f=0
H0 : No serial correlation
Weighted Ljung-Box Test on Standardized Squared Residuals
------------------------------------
statistic p-value
Lag[1] 0.0008577 0.9766
Lag[2*(p+q)+(p+q)-1][5] 0.4988101 0.9579
Lag[4*(p+q)+(p+q)-1][9] 0.9646227 0.9877
d.o.f=2
Weighted ARCH LM Tests
------------------------------------
Statistic Shape Scale P-Value
ARCH Lag[3] 0.5322 0.500 2.000 0.4657
ARCH Lag[5] 0.7160 1.440 1.667 0.8186
ARCH Lag[7] 0.9917 2.315 1.543 0.9149
Nyblom stability test
------------------------------------
Joint Statistic: 0.4238
Individual Statistics:
mu 0.09189
omega 0.14010
alpha1 0.23239
Asymptotic Critical Values (10% 5% 1%)
Joint Statistic: 0.846 1.01 1.35
Individual Statistic: 0.35 0.47 0.75
Sign Bias Test
------------------------------------
t-value prob sig
Sign Bias 0.5626 0.5743
Negative Sign Bias 0.1344 0.8932
Positive Sign Bias 0.2645 0.7917
Joint Effect 1.5966 0.6602
Adjusted Pearson Goodness-of-Fit Test:
------------------------------------
group statistic p-value(g-1)
1 20 11.04 0.9225
2 30 36.62 0.1563
3 40 28.15 0.9010
4 50 45.85 0.6018
Elapsed time : 0.02022719