Econometría de Series de Tiempo

Volatilidad de Tasas de Interés en República Dominicana
José Antonio Burgos

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.

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)

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 %"))
Figura 1: Evolución de las Tasas Pasivas en Niveles

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")
Figura 2: Evolución de las Tasas Pasivas en diferencias logarítmicas

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")
Figura 3: En diferencias logarítmicas al cuadrado

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")
Figura 4: En diferencias logarítmicas pre EMI
Figura 5: En diferencias logarítmicas post EMI

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)
Figura 6: Residuos del modelo estimado

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))
Figura 7: Volatilidad Condicional Pre 2012
Figura 8: Volatilidad Condicional Post 2012

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