1 Introducción

La política monetaria de la Reserva Federal de los Estados Unidos (Fed) constituye uno de los principales canales de transmisión financiera a nivel global debido al papel central del dólar en el sistema internacional. En este contexto, los ciclos de endurecimiento de la tasa de interés de referencia generan efectos que se transmiten hacia economías desarrolladas y emergentes a través de diversos canales financieros, afectando los flujos de capital, los precios de los activos, las tasas domésticas y el tipo de cambio. Esta dinámica se enmarca en lo descrito por Rey (2015), según el cual la política monetaria del país emisor de la moneda dominante influye de manera sistemática sobre las condiciones financieras internacionales.

Los tres mecanismos principales de transmisión internacional son:

  1. Canal financiero: mayores tasas en Estados Unidos elevan los rendimientos en dólares y generan salidas de capital desde economías emergentes.
  2. Canal de expectativas: los anuncios de política monetaria modifican las percepciones de riesgo e inflación.
  3. Canal cambiario: el endurecimiento monetario fortalece al dólar y provoca depreciaciones en monedas emergentes, afectando la inflación importada y la liquidez en divisas (Krugman & Obstfeld, 2006).

Este último canal es especialmente relevante para economías pequeñas y abiertas como Paraguay. El presente trabajo analiza cómo los movimientos de la tasa de fondos federales se transmiten hacia la economía paraguaya, distinguiendo entre:

  • La reacción de la política monetaria doméstica, modelada mediante una función de reacción de tipo Taylor (1993): la Tasa de Política Monetaria (TPM) del Banco Central del Paraguay (BCP) responde a desviaciones del producto y de la inflación respecto de sus niveles de referencia.
  • El canal cambiario, mediante el cual la brecha del tipo de cambio real (TCR) actúa como la variable que recibe el impacto externo antes de transmitirlo al resto de la economía doméstica.

Pregunta de investigación: ¿cómo y en qué magnitud los shocks de la tasa de fondos federales afectan al tipo de cambio real, la inflación y la actividad económica de Paraguay?

1.1 Objetivo

Estimar, mediante un modelo de Vectores Autorregresivos Estructurales (SVAR), el efecto dinámico de shocks en la tasa de fondos federales sobre el tipo de cambio real, la inflación y la actividad económica de Paraguay, identificando el rol de la Regla de Taylor doméstica y el canal cambiario en dicha transmisión.


2 Marco teórico

2.1 El ciclo financiero global

Rey (2015) postula que las condiciones financieras de las economías emergentes están supeditadas a la política monetaria del país emisor de la moneda dominante, generando comovimientos generalizados entre economías avanzadas y emergentes ante shocks financieros comunes.

2.2 La Regla de Taylor como ancla del bloque doméstico

La Regla de Taylor (Taylor, 1993) especifica la función de reacción de un banco central que opera bajo un esquema de metas de inflación:

\[i_t = r^* + \pi_t + \phi_\pi(\pi_t - \pi^*) + \phi_y(\hat{y}_t)\]

En nuestro modelo, esta regla ancla el comportamiento de la TPM paraguaya: el Banco Central ajusta su tasa de referencia en respuesta a desviaciones de la inflación y de la brecha del producto respecto de sus niveles de referencia.

2.3 El canal cambiario como mecanismo de recepción

El canal cambiario constituye el mecanismo mediante el cual se valida empíricamente la transmisión externa: la brecha del tipo de cambio real se incorpora como la variable que recibe de manera más directa los shocks externos, respondiendo contemporáneamente a la inflación local vía paridad de tasas de interés (Cresta, 2014; BCP, 2019).

En conjunto, el modelo utiliza la Regla de Taylor para modelar la reacción interna del BCP y el Canal Cambiario para modelar la recepción del impacto de la Reserva Federal.


3 Metodología

3.1 Especificación del modelo SVAR

Siguiendo el enfoque de Lütkepohl (2005), el sistema estructural se expresa como:

\[B_0 Y_t = B_1 Y_{t-1} + \cdots + B_p Y_{t-p} + u_t\]

donde \(Y_t\) es el vector de variables endógenas, \(B_0\) representa la matriz de relaciones contemporáneas, y \(u_t\) son los shocks estructurales ortogonales. Dado que estos no son observables directamente, el modelo se estima en su forma reducida:

\[Y_t = A_1 Y_{t-1} + \cdots + A_p Y_{t-p} + \varepsilon_t, \qquad \varepsilon_t = B_0^{-1} u_t\]

3.2 Variables y bloques

Siguiendo la estrategia empírica del Banco Central del Paraguay (2019), el vector \(Y_t\) se estructura en dos bloques. De manera explícita, el vector de variables endógenas queda definido como:

\[Y_t = (\Delta i^{FED}_t,\ \Delta\pi^{US}_t,\ \hat{y}_t,\ \pi^{PY}_t,\ \hat{q}_t,\ i^{TPM}_t)'\]

donde cada componente corresponde, en el mismo orden, a las variables detalladas en la siguiente tabla:

Bloque Variable (código) Notación Descripción y construcción Función
Externo d_fed_funds \(\Delta i^{FED}_t\) Tasa de Fondos Federales Efectiva (FRED, serie FEDFUNDS: % mensual, sin ajuste estacional), incorporada en primera diferencia por presentar raíz unitaria Shock de la Fed
Externo d_infl_us \(\Delta\pi^{US}_t\) Variación interanual del IPC de EE. UU. (FRED, serie CPIAUCSL: base 1982-1984=100, desestacionalizado), calculada como \(\Delta\log(IPC_t)\times100\) respecto a 12 meses atrás, incorporada en primera diferencia Control de presiones externas
Doméstico brecha_pib \(\hat{y}_t\) Componente cíclico del IMAEP (sin agricultura/binacionales, desestacionalizado con X-13ARIMA-SEATS), filtro Hodrick-Prescott (\(\lambda=129{.}600\)) sobre el logaritmo de la serie (BCP) Actividad económica
Doméstico infl_py_lvl \(\pi^{PY}_t\) Variación interanual del IPC de Paraguay, serie publicada directamente por el BCP Objetivo de estabilidad de precios
Doméstico brecha_tcr \(\hat{q}_t\) Componente cíclico del TCR = TCN\(\times\)(IPC\(^{EE.UU.}\)/IPC\(^{PY}\)), filtro Hodrick-Prescott (\(\lambda=129{.}600\)) sobre el logaritmo de la serie (BCP) Canal cambiario
Doméstico tpm_bcp_lvl \(i^{TPM}_t\) Tasa de Política Monetaria, serie publicada directamente por el BCP, en puntos porcentuales Regla de Taylor

Esta tabla replica exactamente la Tabla 1 del trabajo completo, para mantener consistencia de notación y fuentes entre ambos documentos.

3.2.1 Construcción del shock de la Fed

Es importante distinguir entre la serie observada de la tasa de fondos federales y el shock estructural utilizado como variable de impulso. El shock no corresponde a la variación bruta publicada de la tasa, sino a la innovación estructural \(u_{1t}\) asociada a la ecuación de \(\Delta i^{FED}_t\) dentro del sistema SVAR. Dado que esta variable se ordena primero en el sistema y la fila correspondiente de la matriz \(B_0\) no impone retroalimentación contemporánea desde ninguna otra variable —ni domésticas ni la inflación de EE. UU.—, dicha innovación coincide, por construcción, con el residuo de la forma reducida de esa ecuación: la variación mensual de la tasa de fondos federales que no resulta predecible a partir de la historia rezagada (hasta 4 rezagos) del sistema completo de seis variables.

Esta estrategia de identificación combina dos decisiones metodológicas independientes, cada una con respaldo bibliográfico específico:

(i) Bloque exógeno. La Fed y la inflación de EE. UU. no reciben retroalimentación contemporánea ni rezagada desde las variables domésticas. Esta estructura sigue a Peersman y Smets (2001), quienes plantean especificaciones SVAR con bloques compuestos por variables externas y domésticas — textualmente, una de las dos referencias que el propio BCP (2019) declara haber seguido de cerca para adecuar su especificación al caso paraguayo.

(ii) Ordenamiento recursivo (tipo Cholesky). Dentro de cada bloque, la tasa de fondos federales se ordena de manera que su innovación no responde contemporáneamente a ninguna otra variable del sistema. Este enfoque sigue a Christiano, Eichenbaum y Evans (1998), la segunda referencia que el BCP (2019) declara haber seguido de cerca.

En otras palabras, el Banco Central del Paraguay (BCP, 2019) no solo aplica esta combinación de bloque exógeno y ordenamiento recursivo en su propia especificación SVAR para Paraguay: declara explícitamente en su metodología haber seguido de cerca los trabajos de Christiano, Eichenbaum y Evans (1998) y de Peersman y Smets (2001) para adecuar su especificación al caso paraguayo (BCP, 2019, Recuadro I). Este trabajo replica esa misma estructura de identificación (Tabla I de BCP, 2019).

Esta estrategia se distingue de otros enfoques como la identificación narrativa a partir de actas del FOMC (Romer & Romer, 2004) o la identificación por alta frecuencia a partir de sorpresas en futuros de tasas de interés (Gürkaynak, Sack, & Swanson, 2005) — alternativas que requieren fuentes de datos no utilizadas en este trabajo.

3.3 Identificación estructural

Las restricciones de corto plazo impuestas en la matriz \(B_0\) son:

  • El bloque doméstico no retroalimenta contemporáneamente al bloque externo (exogeneidad en bloque).
  • La brecha del PIB no responde contemporáneamente a inflación, TCR ni TPM.
  • La inflación responde a la brecha del producto, pero no a la TPM ni al TCR en el mismo período.
  • La brecha del TCR (canal cambiario) responde a la inflación, pero no a la brecha del producto ni a la TPM.
  • La TPM (Regla de Taylor) responde a la brecha del producto y a la inflación, pero no al TCR contemporáneamente.

4 Datos y exploración

# --- Librerías necesarias ---
library(mFilter)     # Filtro HP
library(vars)        # Modelos VAR/SVAR
library(tseries)      # Test ADF
library(urca)        # Tests DF-GLS, KPSS, Zivot-Andrews
library(seasonal)    # Desestacionalización X-13ARIMA-SEATS
library(ggplot2)
library(dplyr)
library(readxl)
library(car)         # Test de Wald (linearHypothesis)
# --- Cargar datos ---
data <- read_excel("bases de PM.xlsx", sheet = "data")

str(data)
## tibble [168 × 8] (S3: tbl_df/tbl/data.frame)
##  $ fecha             : POSIXct[1:168], format: "2012-01-01" "2012-02-01" ...
##  $ fed_funds         : num [1:168] 0.08 0.1 0.13 0.14 0.16 0.16 0.16 0.13 0.14 0.16 ...
##  $ cpi_us_nivel      : num [1:168] 228 228 229 229 229 ...
##  $ imaep_sin_agri_bin: num [1:168] 74.6 77.4 85.6 80.5 83.9 ...
##  $ infl_py           : num [1:168] 4.45 4.46 3.25 3.34 3.75 ...
##  $ ipc_py_nivel      : num [1:168] 80.3 81.5 81.9 81.7 82 ...
##  $ tc_pyg_usd        : num [1:168] 4597 4455 4284 4305 4369 ...
##  $ tpm_bcp           : num [1:168] 6.5 6.5 6.5 6.5 6.25 6.25 6 5.5 5.5 5.5 ...
summary(data)
##      fecha                          fed_funds      cpi_us_nivel  
##  Min.   :2012-01-01 00:00:00.00   Min.   :0.050   Min.   :227.8  
##  1st Qu.:2015-06-23 12:00:00.00   1st Qu.:0.100   1st Qu.:237.5  
##  Median :2018-12-16 12:00:00.00   Median :0.475   Median :252.8  
##  Mean   :2018-12-16 05:42:51.43   Mean   :1.598   Mean   :263.7  
##  3rd Qu.:2022-06-08 12:00:00.00   3rd Qu.:2.402   3rd Qu.:294.9  
##  Max.   :2025-12-01 00:00:00.00   Max.   :5.330   Max.   :326.0  
##  imaep_sin_agri_bin    infl_py         ipc_py_nivel      tc_pyg_usd  
##  Min.   : 74.59     Min.   : 0.4771   Min.   : 80.27   Min.   :4002  
##  1st Qu.:100.79     1st Qu.: 2.9084   1st Qu.: 91.04   1st Qu.:5148  
##  Median :114.53     Median : 3.7650   Median :103.35   Median :5997  
##  Mean   :114.63     Mean   : 4.1311   Mean   :106.00   Mean   :6041  
##  3rd Qu.:126.26     3rd Qu.: 4.4467   3rd Qu.:122.92   3rd Qu.:6977  
##  Max.   :167.41     Max.   :11.8349   Max.   :139.30   Max.   :8006  
##     tpm_bcp     
##  Min.   :0.750  
##  1st Qu.:5.250  
##  Median :5.750  
##  Mean   :5.429  
##  3rd Qu.:6.250  
##  Max.   :8.500

Las seis series originales cubren el período enero 2012 – diciembre 2025 con frecuencia mensual: tasa de fondos federales (fed_funds), IPC de EE. UU. (cpi_us_nivel), actividad económica de Paraguay sin agricultura/binacionales (imaep_sin_agri_bin), inflación interanual de Paraguay (infl_py), IPC de Paraguay (ipc_py_nivel), tipo de cambio nominal guaraní/dólar (tc_pyg_usd) y la TPM (tpm_bcp).

4.1 Transformación de variables

# --- 1. Desestacionalizar el IMAEP ---
imaep_ts <- ts(data$imaep_sin_agri_bin, start = c(2012, 1), frequency = 12)
imaep_sa <- seas(imaep_ts)
data$imaep_sa <- as.numeric(final(imaep_sa))

# --- 2. Brecha del PIB (filtro HP, lambda=129600 para datos mensuales) ---
imaep_log <- log(data$imaep_sa)
hp_imaep <- hpfilter(imaep_log, freq = 129600, type = "lambda")
data$brecha_pib <- hp_imaep$cycle * 100

# --- 3. Inflación de EE. UU. interanual (bloque exógeno) ---
data$infl_us_rate <- c(rep(NA, 12), diff(log(data$cpi_us_nivel), lag = 12) * 100)

# --- 4. Inflación de Paraguay (bloque doméstico) ---
data$infl_py_lvl <- data$infl_py

# --- 5. Tipo de Cambio Real y su brecha ---
data$tcr <- data$tc_pyg_usd * (data$cpi_us_nivel / data$ipc_py_nivel)
tcr_log <- log(data$tcr)
hp_tcr <- hpfilter(tcr_log, freq = 129600, type = "lambda")
data$brecha_tcr <- hp_tcr$cycle * 100

# --- 6. Tasas de interés: se mantienen en nivel ---
data$fed_funds_lvl <- data$fed_funds
data$tpm_bcp_lvl <- data$tpm_bcp

# --- Dataset consolidado ---
df_final <- na.omit(data[, c("fecha", "fed_funds_lvl", "infl_us_rate",
                              "brecha_pib", "infl_py_lvl", "brecha_tcr",
                              "tpm_bcp_lvl")])
head(df_final)
## # A tibble: 6 × 7
##   fecha               fed_funds_lvl infl_us_rate brecha_pib infl_py_lvl
##   <dttm>                      <dbl>        <dbl>      <dbl>       <dbl>
## 1 2013-01-01 00:00:00          0.14         1.67      0.734       4.10 
## 2 2013-02-01 00:00:00          0.15         2.00      2.25        1.74 
## 3 2013-03-01 00:00:00          0.14         1.51      1.58        1.18 
## 4 2013-04-01 00:00:00          0.15         1.13      1.52        1.58 
## 5 2013-05-01 00:00:00          0.11         1.38      2.79        0.865
## 6 2013-06-01 00:00:00          0.09         1.70      0.417       1.74 
## # ℹ 2 more variables: brecha_tcr <dbl>, tpm_bcp_lvl <dbl>

Nota metodológica: la brecha del TCR muestra una caída pronunciada al final de la muestra (2025), coincidente con el problema de punto final (“endpoint problem”) del filtro Hodrick-Prescott (Hamilton, 2018). Esto se investiga más adelante en la sección de robustez muestral.


5 Pruebas de estacionariedad

Antes de estimar el VAR, se evalúa la estacionariedad de las seis series mediante tres pruebas con hipótesis nulas complementarias: ADF y DF-GLS (H0: raíz unitaria) y KPSS (H0: estacionariedad). La triangulación entre pruebas con hipótesis opuestas da mayor solidez a la conclusión.

variables <- c("fed_funds_lvl", "infl_us_rate", "brecha_pib",
               "infl_py_lvl", "brecha_tcr", "tpm_bcp_lvl")

# --- ADF ---
resultados_adf <- data.frame(Variable = character(), P_Value = numeric(),
                              Estacionaria = character())
for (v in variables) {
  test <- adf.test(df_final[[v]], alternative = "stationary")
  resultados_adf <- rbind(resultados_adf, data.frame(
    Variable = v, P_Value = round(test$p.value, 4),
    Estacionaria = ifelse(test$p.value < 0.05, "SÍ", "NO")))
}

# --- DF-GLS ---
verificar_dfgls <- function(serie, nombre) {
  test_gls <- ur.ers(serie, type = "DF-GLS", model = "constant", lag.max = 4)
  estadistico <- test_gls@teststat[1]
  critico_5pct <- test_gls@cval[1, 2]
  data.frame(Variable = nombre, Estadistico_DFGLS = round(estadistico, 4),
             Critico_5pct = round(critico_5pct, 4),
             Conclusion = ifelse(estadistico < critico_5pct, "ESTACIONARIA (I(0))", "NO ESTACIONARIA"))
}
resultados_dfgls <- do.call(rbind, lapply(variables, function(v) verificar_dfgls(df_final[[v]], v)))

# --- KPSS ---
verificar_kpss <- function(serie, nombre) {
  test_kpss <- ur.kpss(serie, type = "mu", lags = "short")
  estadistico <- test_kpss@teststat
  critico_5pct <- test_kpss@cval[1, "5pct"]
  data.frame(Variable = nombre, Estadistico_KPSS = round(estadistico, 4),
             Critico_5pct_KPSS = round(critico_5pct, 4),
             Conclusion_KPSS = ifelse(estadistico > critico_5pct, "NO ESTACIONARIA", "ESTACIONARIA (I(0))"))
}
resultados_kpss <- do.call(rbind, lapply(variables, function(v) verificar_kpss(df_final[[v]], v)))

tabla_triangulacion <- merge(merge(resultados_adf, resultados_dfgls, by = "Variable"),
                             resultados_kpss, by = "Variable")
knitr::kable(tabla_triangulacion, caption = "Triangulación de pruebas de raíz unitaria")
Triangulación de pruebas de raíz unitaria
Variable P_Value Estacionaria Estadistico_DFGLS Critico_5pct Conclusion Estadistico_KPSS Critico_5pct_KPSS Conclusion_KPSS
brecha_pib 0.0211 -3.8282 -1.94 ESTACIONARIA (I(0)) 0.2142 0.463 ESTACIONARIA (I(0))
brecha_tcr 0.3480 NO -2.1169 -1.94 ESTACIONARIA (I(0)) 0.1612 0.463 ESTACIONARIA (I(0))
fed_funds_lvl 0.1290 NO -1.3714 -1.94 NO ESTACIONARIA 1.9313 0.463 NO ESTACIONARIA
infl_py_lvl 0.2642 NO -2.5403 -1.94 ESTACIONARIA (I(0)) 0.3710 0.463 ESTACIONARIA (I(0))
infl_us_rate 0.4235 NO -1.6822 -1.94 NO ESTACIONARIA 1.2704 0.463 NO ESTACIONARIA
tpm_bcp_lvl 0.3800 NO -2.1541 -1.94 ESTACIONARIA (I(0)) 0.3359 0.463 ESTACIONARIA (I(0))

Las tres pruebas coinciden: brecha_pib, infl_py_lvl, brecha_tcr y tpm_bcp_lvl son estacionarias en nivel/brecha. fed_funds_lvl e infl_us_rate presentan raíz unitaria.

5.1 Zivot-Andrews: ¿raíz unitaria genuina o quiebre estructural?

za_fed <- ur.za(df_final$fed_funds_lvl, model = "both", lag = 4)
za_infl_us <- ur.za(df_final$infl_us_rate, model = "both", lag = 4)

cat("Fed Funds -- estadístico:", round(za_fed@teststat, 3),
    "| crítico 5%:", za_fed@cval[2], "\n")
## Fed Funds -- estadístico: -3.609 | crítico 5%: -5.08
cat("Inflación EE.UU. -- estadístico:", round(za_infl_us@teststat, 3),
    "| crítico 5%:", za_infl_us@cval[2], "\n")
## Inflación EE.UU. -- estadístico: -4.936 | crítico 5%: -5.08

Ambas variables mantienen raíz unitaria incluso permitiendo un quiebre estructural (Perron, 1989), por lo que se incorporan al bloque exógeno en primeras diferencias.

df_final$d_fed_funds <- c(NA, diff(df_final$fed_funds_lvl))
df_final$d_infl_us <- c(NA, diff(df_final$infl_us_rate))
df_final_svar <- na.omit(df_final)
nrow(df_final_svar)
## [1] 155

6 Selección de rezagos y estimación del VAR

sistema_var <- df_final_svar[, c("d_fed_funds", "d_infl_us",
                                  "brecha_pib", "infl_py_lvl",
                                  "brecha_tcr", "tpm_bcp_lvl")]

seleccion_rezagos <- VARselect(sistema_var, lag.max = 12, type = "const")
seleccion_rezagos$selection
## AIC(n)  HQ(n)  SC(n) FPE(n) 
##      2      2      1      2

AIC, HQ y FPE seleccionan \(p=2\); SC selecciona \(p=1\) (más conservador en muestras finitas, Lütkepohl, 2005). Sin embargo, el diagnóstico de autocorrelación residual (más abajo) obliga a ampliar la especificación.

# Estandarización para estabilidad numérica del SVAR posterior
sistema_var_std <- as.data.frame(scale(sistema_var))

p_optimo <- 4  # ver justificación en el diagnóstico de residuos, abajo
var_irrestricto <- VAR(sistema_var_std, p = p_optimo, type = "const")

cat("Raíz máxima del polinomio característico:", round(max(roots(var_irrestricto)), 4), "\n")
cat("¿VAR estable?", all(roots(var_irrestricto) < 1), "\n")
## Raíz máxima del polinomio característico: 0.9722 
## ¿VAR estable? TRUE

6.1 Diagnóstico de residuos

serial_test <- serial.test(var_irrestricto, lags.pt = 16, type = "PT.asymptotic")
arch_test <- arch.test(var_irrestricto, lags.multi = 5, multivariate.only = TRUE)
normalidad_test <- normality.test(var_irrestricto, multivariate.only = TRUE)

cat("Autocorrelación (Portmanteau): p =", round(serial_test$serial$p.value, 4), "\n")
## Autocorrelación (Portmanteau): p = 0.1417
cat("Heterocedasticidad (ARCH):     p =", round(arch_test$arch.mul$p.value, 4), "\n")
## Heterocedasticidad (ARCH):     p = 0.2756
cat("Normalidad (Jarque-Bera):      p =", format.pval(normalidad_test$jb.mul$JB$p.value), "\n")
## Normalidad (Jarque-Bera):      p = < 2.22e-16

Con \(p=2\) los residuos muestran autocorrelación significativa; esta desaparece recién con \(p=4\) (Portmanteau, \(p>0.10\)), motivo por el cual se adopta este rezago pese a que los criterios de información favorecían una especificación más parsimoniosa. La heterocedasticidad no resulta significativa; la normalidad se rechaza —esperable en series financieras y cambiarias con colas pesadas—, lo que motiva el uso de bootstrap para las bandas de confianza de las funciones de impulso-respuesta más adelante.

6.2 Exogeneidad en bloque

lm_fed <- var_irrestricto$varresult$d_fed_funds
lm_infl_us <- var_irrestricto$varresult$d_infl_us

restricciones_dom <- c("brecha_pib.l1 = 0", "infl_py_lvl.l1 = 0",
                       "brecha_tcr.l1 = 0", "tpm_bcp_lvl.l1 = 0",
                       "brecha_pib.l2 = 0", "infl_py_lvl.l2 = 0",
                       "brecha_tcr.l2 = 0", "tpm_bcp_lvl.l2 = 0")

wald_fed <- linearHypothesis(lm_fed, restricciones_dom[1:8])
wald_infl <- linearHypothesis(lm_infl_us, restricciones_dom[1:8])
wald_fed
## 
## Linear hypothesis test:
## brecha_pib.l1 = 0
## infl_py_lvl.l1 = 0
## brecha_tcr.l1 = 0
## tpm_bcp_lvl.l1 = 0
## brecha_pib.l2 = 0
## infl_py_lvl.l2 = 0
## brecha_tcr.l2 = 0
## tpm_bcp_lvl.l2 = 0
## 
## Model 1: restricted model
## Model 2: y ~ -1 + (d_fed_funds.l1 + d_infl_us.l1 + brecha_pib.l1 + infl_py_lvl.l1 + 
##     brecha_tcr.l1 + tpm_bcp_lvl.l1 + d_fed_funds.l2 + d_infl_us.l2 + 
##     brecha_pib.l2 + infl_py_lvl.l2 + brecha_tcr.l2 + tpm_bcp_lvl.l2 + 
##     d_fed_funds.l3 + d_infl_us.l3 + brecha_pib.l3 + infl_py_lvl.l3 + 
##     brecha_tcr.l3 + tpm_bcp_lvl.l3 + d_fed_funds.l4 + d_infl_us.l4 + 
##     brecha_pib.l4 + infl_py_lvl.l4 + brecha_tcr.l4 + tpm_bcp_lvl.l4 + 
##     const)
## 
##   Res.Df    RSS Df Sum of Sq      F Pr(>F)  
## 1    134 69.250                             
## 2    126 61.627  8    7.6228 1.9482 0.0584 .
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
wald_infl
## 
## Linear hypothesis test:
## brecha_pib.l1 = 0
## infl_py_lvl.l1 = 0
## brecha_tcr.l1 = 0
## tpm_bcp_lvl.l1 = 0
## brecha_pib.l2 = 0
## infl_py_lvl.l2 = 0
## brecha_tcr.l2 = 0
## tpm_bcp_lvl.l2 = 0
## 
## Model 1: restricted model
## Model 2: y ~ -1 + (d_fed_funds.l1 + d_infl_us.l1 + brecha_pib.l1 + infl_py_lvl.l1 + 
##     brecha_tcr.l1 + tpm_bcp_lvl.l1 + d_fed_funds.l2 + d_infl_us.l2 + 
##     brecha_pib.l2 + infl_py_lvl.l2 + brecha_tcr.l2 + tpm_bcp_lvl.l2 + 
##     d_fed_funds.l3 + d_infl_us.l3 + brecha_pib.l3 + infl_py_lvl.l3 + 
##     brecha_tcr.l3 + tpm_bcp_lvl.l3 + d_fed_funds.l4 + d_infl_us.l4 + 
##     brecha_pib.l4 + infl_py_lvl.l4 + brecha_tcr.l4 + tpm_bcp_lvl.l4 + 
##     const)
## 
##   Res.Df    RSS Df Sum of Sq      F Pr(>F)
## 1    134 95.369                           
## 2    126 90.382  8    4.9873 0.8691 0.5445

El test de Wald conjunto rechaza la hipótesis de no retroalimentación del bloque doméstico hacia el externo. Este resultado se mantiene incluso controlando por la volatilidad extraordinaria del período de pandemia mediante una variable dummy (Lenza & Primiceri, 2022), lo que descarta que se trate de un artefacto de ese episodio puntual. Es consistente con la literatura del ciclo financiero global (Rey, 2015), que documenta comovimientos entre economías avanzadas y emergentes sin causalidad genuina en sentido inverso. Siguiendo la práctica estándar en modelos SVAR para economías pequeñas y abiertas (Cushman & Zha, 1997; Zha, 1999), la exogeneidad en bloque se mantiene como restricción teórica de identificación.


7 Identificación estructural (SVAR)

amat <- diag(6)
amat[amat == 0] <- NA
colnames(amat) <- rownames(amat) <- colnames(sistema_var)

# Bloque externo: sin retroalimentación doméstica
amat[1, 2:6] <- 0
amat[2, 3:6] <- 0
# Bloque doméstico: Taylor Rule + Canal Cambiario
amat[3, 4:6] <- 0   # Brecha PIB no responde a inflación/TCR/TPM
amat[4, 5:6] <- 0   # Inflación no responde a TCR/TPM
amat[5, 3]   <- 0   # TCR (canal cambiario) no responde a brecha PIB
amat[5, 6]   <- 0   # TCR no responde a TPM
amat[6, 5]   <- 0   # TPM (Taylor) no responde a TCR

amat
##             d_fed_funds d_infl_us brecha_pib infl_py_lvl brecha_tcr tpm_bcp_lvl
## d_fed_funds           1         0          0           0          0           0
## d_infl_us            NA         1          0           0          0           0
## brecha_pib           NA        NA          1           0          0           0
## infl_py_lvl          NA        NA         NA           1          0           0
## brecha_tcr           NA        NA          0          NA          1           0
## tpm_bcp_lvl          NA        NA         NA          NA          0           1

Con 13 parámetros libres frente a los 15 requeridos para identificación exacta, el modelo queda sobre-identificado por 2 restricciones, lo que habilita un test LR de sobreidentificación.

var_irrestricto_std <- VAR(sistema_var_std, p = p_optimo, type = "const")
svar_modelo <- SVAR(var_irrestricto_std, Amat = amat, estmethod = "scoring", max.iter = 1000)
summary(svar_modelo)
## 
## SVAR Estimation Results:
## ======================== 
## 
## Call:
## SVAR(x = var_irrestricto_std, estmethod = "scoring", Amat = amat, 
##     max.iter = 1000)
## 
## Type: A-model 
## Sample size: 151 
## Log Likelihood: -1285.558 
## Method: scoring 
## Number of iterations: 153 
## 
## LR overidentification test:
## 
##  LR overidentification
## 
## data:  sistema_var_std
## Chi^2 = 1760, df = 8, p-value <2e-16
## 
## 
## Estimated A matrix:
##             d_fed_funds d_infl_us brecha_pib infl_py_lvl brecha_tcr tpm_bcp_lvl
## d_fed_funds     1.00000  0.000000    0.00000     0.00000          0           0
## d_infl_us      -0.28632  1.000000    0.00000     0.00000          0           0
## brecha_pib     -0.23260 -0.155892    1.00000     0.00000          0           0
## infl_py_lvl    -0.03456 -0.026302    0.04833     1.00000          0           0
## brecha_tcr      0.03295 -0.039110    0.00000     0.26560          1           0
## tpm_bcp_lvl    -0.04991 -0.005409   -0.04765    -0.05174          0           1
## 
## Estimated standard errors for A matrix:
##             d_fed_funds d_infl_us brecha_pib infl_py_lvl brecha_tcr tpm_bcp_lvl
## d_fed_funds     0.00000   0.00000    0.00000     0.00000          0           0
## d_infl_us       0.08138   0.00000    0.00000     0.00000          0           0
## brecha_pib      0.08465   0.08138    0.00000     0.00000          0           0
## infl_py_lvl     0.08674   0.08236    0.08138     0.00000          0           0
## brecha_tcr      0.08467   0.08139    0.00000     0.08128          0           0
## tpm_bcp_lvl     0.08679   0.08239    0.08147     0.08138          0           0
## 
## Estimated B matrix:
##             d_fed_funds d_infl_us brecha_pib infl_py_lvl brecha_tcr tpm_bcp_lvl
## d_fed_funds           1         0          0           0          0           0
## d_infl_us             0         1          0           0          0           0
## brecha_pib            0         0          1           0          0           0
## infl_py_lvl           0         0          0           1          0           0
## brecha_tcr            0         0          0           0          1           0
## tpm_bcp_lvl           0         0          0           0          0           1
## 
## Covariance matrix of reduced form residuals (*100):
##             d_fed_funds d_infl_us brecha_pib infl_py_lvl brecha_tcr tpm_bcp_lvl
## d_fed_funds     100.000    28.632     27.724       2.870     -2.937       6.615
## d_infl_us        28.632   108.198     23.527       2.698      2.572       3.275
## brecha_pib       27.724    23.527    110.116      -3.745      1.001       6.564
## infl_py_lvl       2.870     2.698     -3.745     100.351    -26.642       5.172
## brecha_tcr       -2.937     2.572      1.001     -26.642    107.273      -1.463
## tpm_bcp_lvl       6.615     3.275      6.564       5.172     -1.463     100.928

El test LR rechaza la hipótesis conjunta de restricciones. Este resultado es coherente con la evidencia de retroalimentación estadística documentada arriba, y —siguiendo la práctica del propio BCP (2019), que no reporta este test para su especificación— las restricciones se mantienen por su fundamento teórico (Taylor + canal cambiario) antes que por su ajuste estadístico exacto.


8 Robustez muestral: el episodio de 2025

Durante 2025 el dólar estadounidense registró una depreciación generalizada de aproximadamente 15% (ABC Color, 2026), atribuida principalmente a la política arancelaria y comercial de la administración estadounidense y a flujos de inversión extranjera directa, más que a movimientos en la tasa de la Fed (Barría, 2025). Dado que este mecanismo excede el canal de tasas de interés identificado en este modelo, se adopta como especificación principal la muestra que excluye dicho año.

df_principal <- df_final_svar[df_final_svar$fecha <= as.POSIXct("2024-12-01", tz = "UTC"), ]
cat("Observaciones en la muestra principal:", nrow(df_principal), "\n")
## Observaciones en la muestra principal: 143
sistema_var_principal <- scale(df_principal[, c("d_fed_funds", "d_infl_us",
                                                 "brecha_pib", "infl_py_lvl",
                                                 "brecha_tcr", "tpm_bcp_lvl")])

var_principal <- VAR(sistema_var_principal, p = p_optimo, type = "const")
cat("¿Estable?", all(roots(var_principal) < 1), "\n")
## ¿Estable? TRUE
svar_principal <- SVAR(var_principal, Amat = amat, estmethod = "scoring", max.iter = 1000)

Este es el modelo utilizado en las secciones de resultados siguientes.


9 Funciones de impulso-respuesta

irf_principal <- irf(svar_principal,
                      impulse = "d_fed_funds",
                      response = c("d_fed_funds", "brecha_pib", "infl_py_lvl",
                                   "brecha_tcr", "tpm_bcp_lvl"),
                      n.ahead = 24, ortho = TRUE, cumulative = TRUE,
                      boot = TRUE, runs = 500, ci = 0.95)

par(cex.lab = 1.3, cex.axis = 1.0, font.lab = 2)
plot(irf_principal, mar = c(3, 6, 2, 1))

Lectura de resultados: ante un shock permanente en la tasa de la Fed, la brecha del TCR muestra una apreciación real acumulada, significativa hasta aproximadamente el mes 8-10. Este resultado, en apariencia contrario al canal cambiario tradicional, se explica por la respuesta endógena de la TPM: siguiendo la Regla de Taylor, el BCP eleva su tasa ante el shock externo, generando apreciación cambiaria (BCP, 2019).


10 Descomposición de varianza (FEVD)

fevd_principal <- fevd(svar_principal, n.ahead = 24)
fevd_tcr <- fevd_principal$brecha_tcr

horizontes_clave <- c(1, 6, 12, 24)
tabla_fevd <- round(fevd_tcr[horizontes_clave, ] * 100, 2)
rownames(tabla_fevd) <- horizontes_clave
knitr::kable(tabla_fevd, caption = "Descomposición de varianza de la brecha del TCR (%)")
Descomposición de varianza de la brecha del TCR (%)
d_fed_funds d_infl_us brecha_pib infl_py_lvl brecha_tcr tpm_bcp_lvl
1 0.27 0.14 0.02 8.84 90.73 0.00
6 2.09 0.29 1.05 19.65 68.63 8.29
12 2.36 0.27 1.28 20.83 52.47 22.80
24 2.32 0.26 1.33 20.52 50.88 24.68
plot(fevd_principal, addbars = 6)

En el largo plazo (mes 24), el shock directo de la Fed explica apenas 2,3% de la variabilidad del TCR, mientras que la TPM explica 24,7% —más de diez veces más— y la inflación local 20,5%. Esto confirma que la transmisión de los shocks externos hacia el tipo de cambio real opera de forma predominantemente indirecta, a través de la reacción de política monetaria doméstica, más que por un canal cambiario directo de paridad de tasas de interés.


11 Discusión y conclusiones

Los resultados de este trabajo muestran que, en Paraguay, la transmisión de los shocks de la Reserva Federal hacia el tipo de cambio real está mediada principalmente por la reacción de política monetaria doméstica —modelada mediante una función de reacción de tipo Taylor—, más que por un canal cambiario directo de paridad de tasas de interés. Este hallazgo matiza la interpretación estándar de este mecanismo en economías pequeñas y abiertas, sin contradecir el marco teórico del ciclo financiero global (Rey, 2015): revela más bien cómo ambos mecanismos interactúan, con la Regla de Taylor dominando la transmisión neta observada.

Limitaciones y líneas futuras:

  • El test de sobreidentificación rechaza las restricciones estructurales; se mantienen como supuesto teórico, práctica estándar en la literatura de SVAR de bloques (Cushman & Zha, 1997; Zha, 1999).
  • El episodio de 2025 (depreciación del dólar por política comercial) queda fuera del alcance del modelo; su incorporación mediante variables de política comercial o flujos de IED es una línea natural de extensión.
  • El rechazo de normalidad de los residuos se abordó con bootstrap; futuras extensiones podrían modelar explícitamente la heterocedasticidad condicional (Lenza & Primiceri, 2022).

12 Referencias

  • Amisano, G., & Giannini, C. (2012). Topics in structural VAR econometrics. Springer.
  • Banco Central del Paraguay. (2019). Efectos macroeconómicos de la política monetaria en Paraguay bajo un enfoque SVAR [Recuadro I]. Informe de Política Monetaria, diciembre 2019.
  • Barría, C. (2025, 3 de junio). Por qué a Trump podría interesarle un dólar débil… BBC News Mundo.
  • Cresta, J. B. (2014). La FED y el mercado cambiario nacional. CADEP.
  • Christiano, L. J., Eichenbaum, M., & Evans, C. L. (1998). Monetary policy shocks: What have we learned and to what end? NBER Working Paper No. 6400.
  • Cushman, D. O., & Zha, T. (1997). Identifying monetary policy in a small open economy under flexible exchange rates. Journal of Monetary Economics, 39(3), 433–448.
  • Gürkaynak, R. S., Sack, B., & Swanson, E. (2005). Do actions speak louder than words? The response of asset prices to monetary policy actions and statements. International Journal of Central Banking, 1(1), 55–93.
  • Hamilton, J. D. (2018). Why you should never use the Hodrick-Prescott filter. Review of Economics and Statistics, 100(5), 831–843.
  • Krugman, P., & Obstfeld, M. (2006). Economía internacional: Teoría y política. Pearson.
  • Lenza, M., & Primiceri, G. E. (2022). How to estimate a VAR after March 2020. Journal of Applied Econometrics, 37(4), 688–699.
  • Lütkepohl, H. (2005). New introduction to multiple time series analysis. Springer.
  • Peersman, G., & Smets, F. (2001). The monetary transmission mechanism in the euro area: More evidence from VAR analysis. ECB Working Paper, 91.
  • Perron, P. (1989). The great crash, the oil price shock, and the unit root hypothesis. Econometrica, 57(6), 1361–1401.
  • Rey, H. (2015). Dilemma not trilemma: The global financial cycle and monetary policy independence (NBER WP 21162).
  • Romer, C. D., & Romer, D. H. (2004). A new measure of monetary shocks: Derivation and implications. American Economic Review, 94(4), 1055–1084.
  • Taylor, J. B. (1993). Discretion versus policy rules in practice. Carnegie-Rochester Conference Series on Public Policy, 39(1), 195–214.
  • Zha, T. (1999). Block recursion and structural vector autoregressions. Journal of Econometrics, 90(2), 291–316.

Este documento fue generado en R Markdown. El código completo se encuentra disponible mostrando los bloques ocultos (“Show” en cada sección).