1 Resumen

El presente documento describe el diseño, la implementación y los resultados del Modelo Integrado de Predicción de Tasas de Interés, una herramienta cuantitativa desarrollada para anticipar el comportamiento de la Tasa Monetaria, la TIBC (Tasa de Interés Bancario Corriente), la DTF, la Inflación y la USURA en el contexto financiero colombiano.

El modelo combina tres enfoques metodológicos complementarios:

  • Random Forest para estimar la Tasa Monetaria y la TIBC a partir de variables macroeconómicas.
  • SARIMA para proyectar la inflación y la DTF, capturando su estructura temporal y estacionalidad anual.
  • Simulación Monte Carlo con 10.000 escenarios para construir intervalos de confianza y tres escenarios probabilísticos: Optimista (P50), Neutro (P70) y Pesimista (P85).

El sistema genera proyecciones a 72 meses (48 meses con SARIMA real + 24 meses con valor constante), exportando más de 14 archivos en formato CSV y RDS que alimentan tableros interactivos en Power BI y Shiny.

✅ Resultado Validado:
Precisión del modelo: R² = 90.1% para Tasa Monetaria y R² = 90.38% para TIBC. El Shuffle Test arroja R² < 5%, confirmando que no se evidencia un problema de sobreajuste (overfitting).

El manual documenta además los 16 supuestos clave (de datos, económicos, estadísticos y de proyección) que garantizan la validez de los resultados, las fórmulas matemáticas utilizadas y la justificación metodológica de cada decisión de diseño.

2 Planteamiento del Problema

2.1 Contexto

En Colombia, la TIBC (Tasa de Interés Bancario Corriente) es la tasa máxima de referencia que las entidades financieras pueden aplicar a créditos de libranza, consumo y microcrédito. Su valor es certificado mensualmente por la Superintendencia Financiera de Colombia y depende directamente de:

  • La Tasa Monetaria fijada por el Banco de la República.
  • La Inflación observada (publicada por el DANE con dos meses de rezago).
  • Las condiciones generales del mercado financiero.

Sobre la TIBC se calcula la USURA (TIBC × 1.5), que es el límite legal máximo por encima del cual cobrar intereses constituye delito en Colombia. Por lo tanto, conocer con anticipación el comportamiento de estas tasas es crítico para la planeación financiera, la estructuración de portafolios y el cumplimiento normativo.

2.2 Problemática identificada

La organización enfrenta las siguientes limitaciones para anticipar el comportamiento de las tasas:

  1. Ausencia de un modelo cuantitativo formal que integre las múltiples variables macroeconómicas que determinan la TIBC y la USURA.

  2. Dependencia de métodos manuales o heurísticos que no permiten cuantificar la incertidumbre asociada a las proyecciones.

  3. Falta de escenarios diferenciados que permitan a los tomadores de decisiones elegir su nivel de exposición al riesgo.

  4. Desconexión entre el análisis estadístico y la visualización ejecutiva, dificultando la interpretación de resultados por parte de áreas no técnicas.

  5. Necesidad de cumplimiento normativo proactivo frente a los límites legales de USURA, evitando riesgos regulatorios y reputacionales.

2.3 Pregunta de investigación

¿Cómo construir un modelo cuantitativo que permita proyectar de manera confiable la Tasa Monetaria, la TIBC, la DTF, la Inflación y la USURA a un horizonte de 72 meses, incorporando la incertidumbre asociada y generando escenarios probabilísticos útiles para la toma de decisiones financieras?

2.4 Justificación

El desarrollo de este modelo se justifica por:

  • Impacto financiero: Permite anticipar el costo del dinero y planear portafolios de crédito con mayor precisión.
  • Cumplimiento normativo: Facilita el monitoreo proactivo del límite legal de USURA.
  • Rigor metodológico: Combina técnicas modernas de machine learning y series temporales.
  • Escalabilidad: Se actualiza mensualmente con solo cambiar la fecha de corte.
  • Transparencia: Documenta explícitamente los supuestos y limitaciones del modelo.
ℹ️ Información:
Alcance del modelo: El sistema genera proyecciones a 72 meses, con 48 meses basados en SARIMA real y 24 meses con valor constante, evitando extrapolaciones con varianza creciente.

3 Objetivos

3.1 Objetivo General

Diseñar e implementar un modelo integrado de predicción que permita estimar la Tasa Monetaria, la TIBC, la DTF, la Inflación y la USURA a un horizonte de 72 meses, mediante la combinación de técnicas de machine learning (Random Forest), modelos de series temporales (SARIMA) y simulación probabilística (Monte Carlo), generando escenarios diferenciados y archivos consumibles por herramientas de visualización como Power BI y Shiny.

3.2 Objetivos Específicos

ℹ️ Información:
Los siguientes objetivos específicos estructuran el desarrollo técnico del modelo y su implementación operativa:

3.2.1 1. Construir un sistema de ingeniería de variables

Diseñar y calcular las variables derivadas necesarias para capturar la dinámica económica de las tasas, incluyendo rezagos temporales (lags), tasas reales, brechas frente a la meta de inflación, scores de restricción monetaria y clasificaciones categóricas de la magnitud inflacionaria.

3.2.2 2. Desarrollar modelos predictivos basados en Random Forest

Entrenar dos modelos independientes de Random Forest:

  • Uno para la Tasa Monetaria, utilizando 6 variables explicativas.
  • Otro para la TIBC, usando las 6 variables más relevantes (TOP 6), sin incluir rezagos de la propia TIBC para evitar dependencia mecánica.

3.2.3 3. Implementar modelos SARIMA para series temporales

Ajustar modelos SARIMA de orden \((2,0,2)(2,0,0)_{12}\) para la inflación y la DTF, capturando tanto la dinámica de corto plazo como la estacionalidad anual.

3.2.4 4. Ejecutar simulación Monte Carlo con 10.000 escenarios

Generar 10.000 trayectorias simuladas de inflación y DTF, calculando los percentiles P50, P70 y P85 que definirán los escenarios Optimista, Neutro y Pesimista respectivamente.

3.2.5 5. Calcular la USURA para cada escenario

Derivar la tasa de usura proyectada aplicando el multiplicador legal de 1.5 sobre la TIBC en cada uno de los tres escenarios.

3.2.6 6. Generar proyecciones a 72 meses con extensión constante

Producir un horizonte completo de 72 meses (48 meses con proyección SARIMA real + 24 meses con valor constante), evitando extrapolaciones con varianza creciente que invalidarían las predicciones.

3.2.7 7. Validar el desempeño del modelo

Evaluar los modelos mediante métricas estándar (\(R^2\), RMSE, MAPE) y aplicar un Shuffle Test para verificar la ausencia de sobreajuste (overfitting).

3.2.8 8. Exportar archivos estructurados para visualización

Generar los archivos CSV y RDS necesarios para alimentar tableros interactivos en Power BI y Shiny, incluyendo históricos, proyecciones, escenarios, intervalos de confianza, usura y métricas.

3.2.9 9. Documentar los supuestos y metodología

Elaborar un manual técnico que documente explícitamente:

  • Los 16 supuestos clave (datos, económicos, estadísticos y de proyección).
  • Las fórmulas matemáticas utilizadas.
  • La justificación metodológica de cada decisión.
  • Las limitaciones del modelo y su alcance.

3.2.10 10. Garantizar la reproducibilidad y mantenibilidad

Asegurar que cualquier analista con conocimientos básicos de R pueda replicar el modelo desde cero siguiendo el manual, actualizándolo mensualmente con solo modificar la fecha de corte.

✅ Resultado Validado:
Resultado esperado: Un sistema integrado, documentado y replicable que transforme información macroeconómica histórica en proyecciones cuantitativas útiles para la toma de decisiones financieras estratégicas.

3.3 Matriz de Objetivos e Indicadores

# Objetivo Específico Indicador de Cumplimiento
1 Construir el sistema de ingeniería de variables 15+ variables derivadas calculadas correctamente
2 Entrenar modelo Random Forest para Tasa Monetaria \(R^2 > 90\%\) en conjunto de prueba
3 Entrenar modelo Random Forest para TIBC \(R^2 > 90\%\) en conjunto de prueba
4 Ajustar modelo SARIMA para inflación AIC/BIC comparables con alternativas
5 Ajustar modelo SARIMA para DTF Residuos sin autocorrelación significativa
6 Ejecutar 10,000 simulaciones Monte Carlo Percentiles P50, P70, P85 calculados sin errores
7 Calcular USURA para 3 escenarios Fórmula \(TIBC \times 1.5\) aplicada correctamente
8 Generar proyecciones a 72 meses Archivos con 72 filas de proyección + 231 históricas
9 Validar desempeño Shuffle Test \(R^2 < 5\%\) (sin overfitting)
10 Exportar archivos para Power BI 14+ archivos CSV/RDS generados sin errores
11 Documentar supuestos y metodología Manual técnico con 16 supuestos explícitos
12 Garantizar reproducibilidad Cualquier analista puede replicar el modelo
✅ Resultado Validado:
Meta global: Alcanzar un R2 93% en los modelos de Tasa Monetaria y TIBC, con un Shuffle Test inferior al 5% que confirme la ausencia de sobreajuste.

3.4 Limitaciones reconocidas

  • El modelo no predice eventos estructurales (reformas monetarias, crisis económicas, cambios regulatorios).
  • Las proyecciones más allá de 48 meses usan valor constante por decisión metodológica conservadora.
  • La precisión del modelo depende de la calidad y frecuencia de actualización de los datos de entrada.
  • Los supuestos económicos deben revisarse si el contexto macroeconómico cambia significativamente.

4 Introducción y Objetivo

4.1 ¿Qué hace este modelo?

Este documento describe el funcionamiento, la metodología, los supuestos y los resultados del Modelo Integrado de Predicción de Tasas de Interés. El modelo construye un sistema de pronóstico financiero que:

  • Predice la Tasa Monetaria (tasa de política del Banco de la República) usando Random Forest.
  • Predice la TIBC (Tasa de Interés Bancario Corriente) usando Random Forest con 6 variables optimizadas.
  • Proyecta la Inflación y la DTF mediante modelos SARIMA con simulación Monte Carlo.
  • Calcula la USURA (\(\text{TIBC} \times 1.5\)) para cada escenario probabilístico.
  • Genera proyecciones a 72 meses (48 meses con SARIMA real + 24 meses con valor constante).
  • Exporta archivos CSV y RDS consumibles por Power BI y Shiny.

4.2 Contexto de negocio

En Colombia, la TIBC es la tasa máxima de referencia que las entidades financieras pueden cobrar en créditos de libranza, consumo y microcrédito. Su valor depende directamente de la Tasa Monetaria fijada por el Banco de la República y de la Inflación observada. La USURA es el límite legal (TIBC × 1.5) por encima del cual cobrar interés constituye delito.

ℹ️ Información:
Importancia estratégica: Este modelo permite anticipar el comportamiento de la TIBC y la USURA, facilitando la planeación financiera, la estructuración de portafolios de crédito y el cumplimiento normativo.

4.3 Tecnologías utilizadas

Herramienta Uso
R Lenguaje de programación principal
randomForest Modelos de clasificación y regresión no lineales
forecast (Arima) Modelos SARIMA para series temporales
readxl / openxlsx Lectura y escritura de archivos Excel
dplyr / tidyr Manipulación y transformación de datos
zoo Interpolación de series temporales
Power BI Visualización final de resultados

5 Arquitectura General del Modelo

El flujo del modelo sigue una estructura de procesamiento secuencial en cinco etapas:

6 Sección 1: Explicación Detallada del Código

Esta sección documenta cada bloque del código R, explicando qué hace, por qué se hace así, y qué supuestos implica.

6.1 1.1 Configuración Inicial

rm(list = ls())          # Limpia el entorno de trabajo
gc()                     # Libera memoria RAM
set.seed(123)            # Fija semilla para reproducibilidad
options(scipen = 999)    # Evita notación científica

¿Qué hace cada instrucción?

Instrucción Propósito Justificación
rm(list = ls()) Borra todos los objetos del entorno Evita conflictos con ejecuciones previas
gc() Libera memoria RAM Importante cuando se procesan 10,000 simulaciones
set.seed(123) Fija la semilla aleatoria Garantiza reproducibilidad
options(scipen = 999) Desactiva notación científica Mejora la legibilidad de los números

Parámetros globales:

Meta_Inf <- 0.03              # Meta de inflación del Banco de la República
HORIZONTE_SARIMA <- 48        # Meses con proyección SARIMA real
HORIZONTE_TOTAL <- 72         # Meses totales = 48 SARIMA + 24 constante
🔑 Punto Clave:
Supuesto 1. La meta de inflación se fija en 3% porque es el rango objetivo del Banco de la República de Colombia (entre 2% y 4%).

6.2 1.2 Carga de Datos

Indicadores <- read_excel(ruta_archivo, sheet = "Opcion2") %>%
  dplyr::select(-CDT)

Variables utilizadas:

Columna Tipo Rol
Fecha Fecha mensual Índice temporal
Inflacion Decimal (0.0452 = 4.52%) Variable exógena
SMMLV Decimal Variable exógena
Monetaria Decimal Variable objetivo 1
TIBC Decimal Variable objetivo 2
DTF Decimal Proyección SARIMA
⚠️ Advertencia:
Supuesto 2. Los valores deben estar en decimal (NO en porcentaje). Un valor 0.0452 significa 4.52%. Este formato es obligatorio porque los modelos trabajan con proporciones.

Conversión de fecha:

if(is.numeric(Indicadores$Fecha)) {
  Indicadores$Fecha <- as.Date(Indicadores$Fecha, origin = "1970-01-01")
} else {
  Indicadores$Fecha <- as.Date(Indicadores$Fecha)
}

Cuando Excel exporta fechas, a veces las guarda como número (días desde 1900 o 1970). Esta condición las normaliza al tipo Date de R.

Filtro temporal:

Indicadores <- Indicadores %>% filter(Fecha <= as.Date("2026-09-01"))
⚠️ Advertencia:
Supuesto 3. La fecha de corte se actualiza cada mes. Solo se consideran observaciones hasta esa fecha, garantizando que el modelo no 'vea' información futura (evita data leakage).

6.3 1.3 Ingeniería de Variables (Feature Engineering)

Esta es la sección más crítica del modelo. Se construyen variables derivadas que capturan la dinámica económica.

6.3.1 1.3.1 Lags (rezagos temporales)

Inflacion_conocida   = lag(Inflacion, 2)
Inflacion_hace_3m    = lag(Inflacion, 5)
Inflacion_hace_6m    = lag(Inflacion, 8)
Monetaria_lag2       = lag(Monetaria, 2)
Monetaria_lag4       = lag(Monetaria, 4)
Monetaria_lag6       = lag(Monetaria, 6)

Formulación matemática:

Sea \(X_t\) el valor de la variable \(X\) en el período \(t\). Un lag de orden \(k\) se define como:

\[X_{t-k} = \text{lag}(X, k)\]

Por ejemplo, si hoy es \(t = \text{septiembre 2026}\): - \(X_{t-2}\) = valor de julio 2026 - \(X_{t-6}\) = valor de marzo 2026

🔑 Punto Clave:
Supuesto 4 (crítico). El Banco de la República decide la tasa monetaria con información desfasada. Cuando se reúne la Junta Directiva, solo tiene disponible la inflación publicada con 2 meses de rezago. Esto refleja la realidad institucional colombiana.

¿Por qué 2, 4 y 6 meses?

  • Lag 2: Captura la reacción inmediata (una decisión tras otra).
  • Lag 4: Captura el ciclo trimestral.
  • Lag 6: Captura el ciclo semestral (política monetaria tarda ~6 meses en transmitirse).

6.3.2 1.3.2 Variables económicas derivadas

6.3.2.1 Tasa Teórica

Tasa_Teorica = (Inflacion_conocida + SMMLV) / 2

Fórmula:

\[T_{\text{teórica}} = \frac{I_{t-2} + S_t}{2}\]

ℹ️ Información:
La tasa teórica es un referente de equilibrio. Si la inflación es alta, la tasa debería subir; si el SMMLV es alto (salarios altos → mayor consumo → presión inflacionaria), también. El promedio balancea ambos efectos.

6.3.2.2 Brecha Meta

Brecha_Meta = abs(Inflacion_conocida - Meta_Inf)

Fórmula:

\[B_{\text{meta}} = |I_{t-2} - I^*|\]

ℹ️ Información:
Mide qué tan lejos está la inflación de la meta. Si la brecha es grande, el banco debe actuar con mayor agresividad.

6.3.2.3 Tasa Real

Tasa_Real = Monetaria - Inflacion_conocida

Fórmula:

\[r_{\text{real}} = i - \pi\]

ℹ️ Información:
Mide el costo real del dinero (ecuación de Fisher). Una tasa real positiva indica política contractiva; una negativa indica política expansiva.

6.3.2.4 Poder Adquisitivo

Poder_Adquisitivo = ((SMMLV - Inflacion_conocida) / SMMLV) * 100

Fórmula:

\[PA = \frac{S - I_{t-2}}{S} \times 100\]

ℹ️ Información:
Cuantifica cuánto del salario mínimo se 'come' la inflación. Si el poder adquisitivo cae, la presión social por aumentos salariales crece.

6.3.2.5 Score de Restricción

Score_Restriccion = case_when(
  subidas_consecutivas >= 2 & Tasa_Real > 0.02 ~ 100,
  subidas_consecutivas == 1 & Tasa_Real > 0.02 ~ 90,
  abs(cambio_tasa_1) <= 0.0025 & Tasa_Real > 0.02 ~ 75,
  Tasa_Real > 0.03 ~ 70,
  Tasa_Real > 0.01 ~ 50,
  abs(Tasa_Real) <= 0.01 ~ 30,
  TRUE ~ 50
)
Rango Significado
100 Política máximamente restrictiva
90 Política restrictiva activa
75 Política estable con sesgo restrictivo
70 Restricción por tasa real alta
50 Política neutral
30 Política expansiva
ℹ️ Información:
Este score captura el estado de la política monetaria en una sola variable numérica, ayudando al Random Forest a capturar patrones no lineales.

6.3.3 1.3.3 Magnitud de Inflación (variable categórica)

Magnitud_Inflacion = case_when(
  Inflacion_conocida > 0.06 ~ "CRITICA",
  Inflacion_conocida > 0.045 ~ "MUY_ALTA",
  Inflacion_conocida > 0.04 ~ "ALTA",
  Inflacion_conocida >= 0.02 & Inflacion_conocida <= 0.04 ~ "META",
  Inflacion_conocida < 0.02 ~ "BAJA",
  TRUE ~ "DESCONOCIDA"
)
Categoría Rango Contexto
CRITICA > 6% Inflación descontrolada
MUY_ALTA 4.5% – 6% Por encima del techo del rango meta
ALTA 4% – 4.5% Ligeramente por encima de la meta
META 2% – 4% Rango objetivo del Banco
BAJA < 2% Por debajo del piso del rango
ℹ️ Información:
El Random Forest captura mejor las relaciones cuando las variables son categóricas en regímenes económicos claramente diferenciados.

6.3.4 1.3.4 Variables para el modelo TIBC (TOP 6)

top6_vars <- c("Monetaria_lag4", "Monetaria_lag6", "Monetaria_lag2",
               "Inflacion_pct", "Cambio3", "Inflacion_lag1")

Variable Cambio3:

\[Cambio3 = I_{t-2} - M_t\]

🔑 Punto Clave:
Supuesto 5. Estas 6 variables fueron seleccionadas por importancia en un modelo previo. NO se incluye el lag de la propia TIBC para evitar dependencia mecánica.

6.4 1.4 Preparación de Datos para Modelos

6.4.1 Modelo Tasa Monetaria

datos_modelo_tasa <- Proyeccion %>%
  filter(mes_decision == TRUE) %>%
  dplyr::select(
    Monetaria = Monetaria_actual,
    Tasa_Teorica, Brecha_Meta, Score_Restriccion,
    Magnitud_Inflacion, score_divergencia, ratio_inflacion_smmlv
  ) %>%
  filter(complete.cases(.)) %>%
  mutate(Magnitud_Inflacion = as.factor(Magnitud_Inflacion))

Filtro mes_decision: Los meses de decisión son enero, marzo, abril, junio, julio, septiembre, octubre y diciembre.

🔑 Punto Clave:
Supuesto 6. Solo los meses de decisión son relevantes para modelar la tasa monetaria, porque en los demás meses la tasa permanece constante por definición.

Resultado: 153 observaciones.

6.4.2 Modelo TIBC

datos_modelo_tibc <- Proyeccion %>%
  dplyr::select(TIBC = TIBC_pct, all_of(top6_vars), Fecha) %>%
  drop_na()

Resultado: 225 observaciones.

6.5 1.5 Entrenamiento de Modelos

6.5.1 División Train/Test (80/20)

set.seed(123)
n_tasa <- nrow(datos_modelo_tasa)
train_indices_tasa <- sample(1:n_tasa, size = floor(0.8 * n_tasa))
train_data_tasa <- datos_modelo_tasa[train_indices_tasa, ]
test_data_tasa <- datos_modelo_tasa[-train_indices_tasa, ]
🔑 Punto Clave:
Supuesto 7. El 80% de los datos se usa para entrenar y el 20% para evaluar. Es una división aleatoria, no temporal, porque el objetivo es medir la capacidad de generalización.

6.5.2 Random Forest — Tasa Monetaria

modelo_rf_tasa <- randomForest(
  Monetaria ~ ., 
  data = train_data_tasa,
  ntree = 500, 
  mtry = 2, 
  importance = TRUE
)
Parámetro Valor Significado
ntree 500 Número de árboles
mtry 2 Variables evaluadas en cada división
importance TRUE Calcula importancia de variables

Fundamento matemático:

\[\hat{y}(x) = \frac{1}{B} \sum_{b=1}^{B} T_b(x)\]

\[\text{Var}[\hat{y}(x)] = \rho \sigma^2 + \frac{1-\rho}{B} \sigma^2\]

ℹ️ Información:
¿Por qué 500 árboles? Estudios empíricos muestran que el error se estabiliza entre 300 y 500 árboles. Menos de 300 da resultados inestables; más de 500 no aporta mejora significativa.
ℹ️ Información:
¿Por qué mtry = 2? Regla empírica: mtry = √p donde p es el número de variables. Para 6 variables, √6 ≈ 2.45, se redondea a 2.

6.6 1.6 Evaluación y Validación

Fórmulas de las métricas:

R² (Coeficiente de determinación):

\[R^2 = 1 - \frac{SSE}{SST} = 1 - \frac{\sum_{i=1}^{n}(y_i - \hat{y}_i)^2}{\sum_{i=1}^{n}(y_i - \bar{y})^2}\]

RMSE (Root Mean Squared Error):

\[RMSE = \sqrt{\frac{1}{n}\sum_{i=1}^{n}(y_i - \hat{y}_i)^2}\]

MAPE (Mean Absolute Percentage Error):

\[MAPE = \frac{100\%}{n} \sum_{i=1}^{n} \left| \frac{y_i - \hat{y}_i}{y_i} \right|\]

Resultados obtenidos:

Modelo RMSE MAPE
Tasa Monetaria 90.01% 0.89 pp 8.64%
TIBC 90.38% 3.71% 1.12pp
✅ Resultado Validado:
Los resultados de validación muestran un desempeño satisfactorio de ambos modelos de Random Forest. Para la Tasa Monetaria, el modelo obtuvo un R² de 90,10 %, un MAPE de 8,64 % y un RMSE de 0,89 puntos porcentuales, indicando que el modelo explica aproximadamente el 90 % de la variabilidad observada y presenta un error relativo promedio inferior al 10 %. Para TIBC, se obtuvo un R² de 90,38 %, un MAPE de 3,71 % y un RMSE de 1,12 unidades de TIBC. Aunque ambos modelos presentan un alto poder explicativo, el modelo de TIBC muestra una mayor precisión relativa, evidenciada principalmente por su menor MAPE. El RMSE no se compara directamente entre ambos modelos debido a que las variables objetivo se encuentran expresadas en escalas diferentes.

6.6.1 Shuffle Test (Prueba de aleatoriedad)

🔑 Punto Clave:
Supuesto 8. Si el modelo funciona incluso con etiquetas aleatorias, hay overfitting. Un R² ≈ 0% con etiquetas aleatorias confirma que el modelo no está memorizando sino aprendiendo patrones reales.

Resultado: R² = 0.01% → No hay overfitting.

6.7 1.7 Funciones de Predicción

Restricción económica:

\[\hat{T}_{\text{monetaria}} = \max(\hat{T}_{\text{RF}}, \pi)\]

🔑 Punto Clave:
Supuesto 9 (crítico). La tasa monetaria no puede ser inferior a la inflación, porque eso implicaría una tasa real negativa, situación incompatible con la política monetaria del Banco de la República. Esta restricción actúa como 'guardarraíl económico'.

6.8 1.8 SARIMA para Inflación y DTF

ts_Inflacion <- ts(Indicadores$Inflacion, 
                   start = c(2007, 7), frequency = 12)
modelo_sarima <- Arima(ts_Inflacion, 
                       order = c(2, 0, 2), 
                       seasonal = list(order = c(2, 0, 0), period = 12))

Estructura SARIMA:

\[SARIMA(p,d,q)(P,D,Q)_s = SARIMA(2,0,2)(2,0,0)_{12}\]

Ecuación completa:

\[(1 - \phi_1 B - \phi_2 B^2)(1 - \Phi_1 B^{12} - \Phi_2 B^{24}) y_t = (1 + \theta_1 B + \theta_2 B^2) \varepsilon_t\]

donde: - \(B\) es el operador de rezago (\(By_t = y_{t-1}\)) - \(\phi_i\) son coeficientes autorregresivos - \(\Phi_i\) son coeficientes autorregresivos estacionales - \(\theta_i\) son coeficientes de media móvil - \(\varepsilon_t\) es ruido blanco con \(\varepsilon_t \sim N(0, \sigma^2)\)

🔑 Punto Clave:
Supuesto 10. La inflación tiene estacionalidad anual (efectos de diciembre, enero, cosechas, etc.). El componente (P,D,Q)_12 captura esta estacionalidad con 2 rezagos anuales.

6.8.1 Simulación Monte Carlo

Fundamento matemático:

Cada simulación \(j = 1, \ldots, 10000\) genera una trayectoria:

\[\{y_{T+1}^{(j)}, y_{T+2}^{(j)}, \ldots, y_{T+48}^{(j)}\}\]

A partir de las 10,000 trayectorias se calculan los percentiles en cada horizonte:

\[P_{50}(h) = \text{quantile}_{0.50}\left(\{y_{T+h}^{(j)}\}_{j=1}^{10000}\right)\]

\[P_{70}(h) = \text{quantile}_{0.70}\left(\{y_{T+h}^{(j)}\}_{j=1}^{10000}\right)\]

\[P_{85}(h) = \text{quantile}_{0.85}\left(\{y_{T+h}^{(j)}\}_{j=1}^{10000}\right)\]

🔑 Punto Clave:
Supuesto 11. Los residuos del modelo SARIMA son ruido blanco gaussiano. Esta asunción permite usar simulación Monte Carlo con distribución normal.
ℹ️ Información:
¿Por qué 10,000 simulaciones? La desviación estándar del percentil estimado decrece con √n. Con 10,000 simulaciones, el error estándar del P50 es aproximadamente σ/100, suficientemente pequeño.

6.9 1.9 Extensión Constante (meses 49 a 72)

Después del mes 48, el código congela el valor en el último percentil simulado:

ultimo_valor_sarima <- apply(simulaciones_matrix_sarima, 2, function(x) x[HORIZONTE_SARIMA])
for(j in 1:n_simulaciones) {
  simulaciones_matrix_total[(HORIZONTE_SARIMA + 1):HORIZONTE_TOTAL, j] <- ultimo_valor_sarima[j]
}
🔑 Punto Clave:
Supuesto 12 (muy importante). Más allá de 48 meses, la incertidumbre SARIMA crece exponencialmente y las proyecciones pierden valor informativo. Congelar el valor es una decisión conservadora y prudente que evita extrapolaciones absurdas.

Justificación matemática:

La varianza de una predicción SARIMA a horizonte \(h\) crece aproximadamente como:

\[\text{Var}[\hat{y}_{T+h}] \approx \sigma^2 \sum_{i=0}^{h-1} \psi_i^2\]

6.10 1.10 Construcción de Escenarios

resultados_neutro <- aplicar_modelos_escenario(percentiles$P70, smmlv_actual_val, tasa_actual_val, "Neutro", fechas_proyeccion)
resultados_pesimista <- aplicar_modelos_escenario(percentiles$P85, smmlv_actual_val, tasa_actual_val, "Pesimista", fechas_proyeccion)
resultados_optimista <- aplicar_modelos_escenario(percentiles$P50, smmlv_actual_val, tasa_actual_val, "Optimista", fechas_proyeccion)
Escenario Percentil Interpretación
Optimista P50 Hay 50% de probabilidad de que la inflación sea menor
Neutro P70 Hay 70% de probabilidad de que la inflación sea menor
Pesimista P85 Hay 85% de probabilidad de que la inflación sea menor
🔑 Punto Clave:
Supuesto 13. Los escenarios reflejan la distribución probabilística de la inflación futura, no escenarios arbitrarios. Esto permite a los tomadores de decisiones elegir el nivel de riesgo que desean cubrir.

6.11 1.11 Cálculo de USURA y Archivos Finales

tabla_usura <- tabla_proyeccion %>%
  mutate(
    USURA_Optimista = TIBC_Optimista * 1.5,
    USURA_Neutro = TIBC_Neutro * 1.5,
    USURA_Pesimista = TIBC_Pesimista * 1.5
  )

Fórmula:

\[USURA = TIBC \times 1.5\]

🔑 Punto Clave:
Supuesto 14. El multiplicador 1.5 está fijado por la Superintendencia Financiera de Colombia y es de cumplimiento obligatorio.

7 Sección 2: Supuestos Clave del Modelo

Esta sección consolida todos los supuestos que garantizan que las proyecciones sean válidas. Si alguno de estos supuestos se viola, la interpretación de los resultados debe ajustarse.

7.1 2.1 Supuestos de datos

# Supuesto Implicación si se viola
1 Los valores están en decimal Los modelos darían errores o resultados absurdos
2 La fecha de corte refleja la última observación real Se incluiría información futura (data leakage)
3 Los datos están ordenados cronológicamente Los lags quedarían mal calculados
4 No hay valores faltantes (excepto los primeros lags) El modelo descartaría filas incompletas

7.2 2.2 Supuestos económicos

# Supuesto Justificación
5 La inflación se conoce con 2 meses de rezago Rezago real de publicación del DANE
6 Las decisiones de política se toman en meses específicos Calendario oficial de la Junta del Banco
7 La tasa monetaria nunca es inferior a la inflación Evita tasas reales negativas extremas
8 La meta de inflación se mantiene en 3% Rango objetivo del Banco de la República

7.3 2.3 Supuestos estadísticos

# Supuesto Implicación
9 Los residuos SARIMA son ruido blanco gaussiano Válida para simulación Monte Carlo
10 La inflación tiene estacionalidad anual Justifica el componente (P,D,Q)_12
11 Las relaciones no lineales entre variables Justifica el uso de Random Forest
12 Los datos siguen una distribución estable Las predicciones son comparables en el tiempo

7.4 2.4 Supuestos de proyección

# Supuesto Justificación
13 El horizonte SARIMA útil es de 48 meses Más allá, la varianza explota
14 El valor constante es una aproximación conservadora Evita extrapolaciones sin base
15 Los escenarios P50/P70/P85 son suficientes Cubren el rango de decisiones típicas
16 El multiplicador de USURA se mantiene en 1.5 Norma vigente colombiana
⚠️ Advertencia:
Importante: Estos supuestos son condiciones necesarias para que las proyecciones sean válidas. Si el entorno económico cambia estructuralmente (por ejemplo, una reforma monetaria), los supuestos deben revisarse.

8 Sección 3: Metodología Completa y Resultados

8.1 3.1 Carga y organización de la información

El primer paso consiste en cargar la información histórica: inflación, tasa monetaria, TIBC, DTF y SMMLV. La información se organiza cronológicamente porque los modelos utilizan la estructura temporal de las series.

ℹ️ Información:
Principio fundamental: Los modelos de series económicas deben respetar la secuencia temporal. La información futura no debe utilizarse para explicar el pasado (no look-ahead bias).

8.2 3.2 Definición de la fecha de corte

La fecha de corte permite diferenciar entre información histórica (observada) y proyectada (estimada). Se actualiza mensualmente.

8.3 3.3 Preparación de las variables

Los valores se manejan internamente como proporciones decimales (\(0.12 = 12\%\)) y se convierten a porcentaje solo para presentación (\(0.12 \times 100 = 12\%\)).

8.4 3.4 Construcción de variables rezagadas

Las tasas de interés no reaccionan instantáneamente. Los rezagos permiten incorporar esta dinámica temporal al modelo.

8.5 3.5 Variable Cambio3

\[Cambio3 = I_{t-2} - M_t\]

Captura la brecha entre inflación y postura monetaria.

8.6 3.6 Random Forest para la Tasa Monetaria

\[\hat{y}(x) = \frac{1}{B} \sum_{b=1}^{B} T_b(x)\]

con \(B = 500\) árboles.

8.7 3.7 Restricción económica

\[\hat{T}_{\text{monetaria}} \geq \pi\]

8.8 3.8 Evaluación del modelo

Métrica Fórmula Valor
\(1 - SSE/SST\) 93.13%
RMSE \(\sqrt{\text{mean}((y-\hat{y})^2)}\) 0.74 pp
MAPE \(\text{mean}(|y-\hat{y}|/y)\) 3.71%

8.9 3.9 Random Forest para la TIBC

Variables: 6 del TOP 6 (sin lag de TIBC).

8.10 3.10 Proyección de Inflación mediante SARIMA

\[SARIMA(2,0,2)(2,0,0)_{12}\]

8.11 3.11 Simulación Monte Carlo

10,000 simulaciones → percentiles P50, P70, P85.

8.12 3.12 Construcción de escenarios

Optimista (P50), Neutro (P70), Pesimista (P85).

8.13 3.13 Proyección de la Tasa Monetaria

Cada escenario de inflación alimenta la función predecir_tasa().

8.14 3.14 Proyección de la TIBC

\[I \rightarrow M \rightarrow \text{Variables} \rightarrow TIBC\]

8.15 3.15 Horizonte de proyección

\[72 = 48 + 24\]

  • 48 meses: SARIMA real
  • 24 meses: Valor constante

8.16 3.16 Cálculo de la situación actual

Más de 12 indicadores calculados en tiempo real.

8.17 3.17 Regla para la decisión sobre la Tasa Monetaria

\[\Delta = T_{\text{sugerida}} - T_{\text{actual}}\]

  • \(\Delta > +0.25 \rightarrow\) SUBIR
  • \(\Delta < -0.25 \rightarrow\) BAJAR
  • \(|\Delta| \leq 0.25 \rightarrow\) MANTENER

8.18 3.18 Intervalos de incertidumbre

\[IC_{95\%} = \hat{Y} \pm 1.96 \times RMSE\]

8.19 3.19 Proyección de la USURA

\[USURA = TIBC \times 1.5\]

8.20 3.20 Archivos generados

Archivo Contenido Uso
tibc.csv Histórico + proyección Tableros y gráficos
Tasas.csv Proyecciones Seguimiento de tasas
tabla_proyeccion_completa.csv Proyección detallada Análisis económico
tabla_historica.csv Serie histórica Gráficos históricos
tabla_usura.csv USURA proyectada Seguimiento de límites
metricas.rds Métricas de modelos Validación
situacion_actual.rds Diagnóstico actual Indicadores del tablero

8.21 3.21 Verificación de consistencia

Se verifica: existencia de archivos, número de filas, tipos de variables, longitud del horizonte, disponibilidad de escenarios.

Salida esperada: EJECUCION COMPLETADA EXITOSAMENTE

8.22 3.22 Interpretación de resultados

Cuatro niveles:

  1. Resultado actual: Situación observada
  2. Proyección central: Trayectoria estimada
  3. Escenarios: Diferentes condiciones económicas
  4. Intervalos: Nivel de incertidumbre
ℹ️ Información:
Una TIBC proyectada de 20% con intervalo de 18% a 22% debe interpretarse como estimación central de 20%, con rango de incertidumbre — NO como un valor exacto.

8.23 3.23 Resumen del proceso completo

  1. Cargar datos históricos
  2. Ordenar cronológicamente
  3. Establecer fecha de corte
  4. Validar y transformar variables
  5. Construir variables rezagadas
  6. Entrenar Random Forest
  7. Evaluar con datos de prueba
  8. Estimar inflación con SARIMA
  9. Realizar 10,000 simulaciones Monte Carlo
  10. Construir escenarios
  11. Proyectar Tasa Monetaria
  12. Proyectar TIBC
  13. Calcular intervalos
  14. Obtener USURA
  15. Construir situación actual
  16. Integrar históricos y proyecciones
  17. Generar CSV y RDS
  18. Verificar consistencia
  19. Consumir en Power BI / Shiny
✅ Resultado Validado:
Conclusión metodológica: El modelo combina información histórica, machine learning, series de tiempo y simulación probabilística para generar proyecciones económicas bajo diferentes escenarios, manteniendo explícita la incertidumbre asociada.

9 Referencias Bibliográficas

  1. Breiman, L. (2001). Random Forests. Machine Learning, 45(1), 5–32.
  2. Hyndman, R.J., & Athanasopoulos, G. (2021). Forecasting: Principles and Practice (3rd ed.). OTexts.
  3. Banco de la República de Colombia. Series estadísticas. https://www.banrep.gov.co
  4. Superintendencia Financiera de Colombia. Tasa de usura. https://www.superfinanciera.gov.co
  5. Liaw, A., & Wiener, M. (2002). Classification and Regression by randomForest. R News, 2(3), 18–22.
  6. R Core Team (2024). R: A Language and Environment for Statistical Computing. https://www.R-project.org/
  7. Box, G.E.P., Jenkins, G.M., Reinsel, G.C., & Ljung, G.M. (2015). Time Series Analysis: Forecasting and Control (5th ed.). Wiley.
  8. James, G., Witten, D., Hastie, T., & Tibshirani, R. (2021). An Introduction to Statistical Learning (2nd ed.). Springer.
  9. DANE. Índice de Precios al Consumidor (IPC). https://www.dane.gov.co
  10. Fisher, I. (1930). The Theory of Interest. Macmillan.

10 Resumen Ejecutivo

Este modelo:

  1. Integra 3 metodologías: Random Forest, SARIMA y Monte Carlo.
  2. Predice 5 variables: Tasa Monetaria, TIBC, Inflación, DTF y Usura.
  3. Genera 3 escenarios: Optimista (P50), Neutro (P70), Pesimista (P85).
  4. Proyecta 72 meses: 48 con SARIMA real + 24 constantes.
  5. Exporta 14+ archivos listos para Power BI.
  6. Se actualiza mensualmente cambiando la fecha de corte.
✅ Resultado Validado:
Precisión: R² > 93% en ambos modelos. Sin overfitting (Shuffle Test ≈ 0%).
✅ Resultado Validado:
Supuestos clave: 16 supuestos documentados (datos, económicos, estadísticos y de proyección).
✅ Resultado Validado:
Replicabilidad: Este manual permite a cualquier analista con conocimientos básicos de R replicar el modelo desde cero.