# ── Carga de librerías ────────────────────────────────────────────────────────
library(readxl)        # Lectura de archivos Excel
library(tidyverse)     # Manipulación y visualización de datos
library(lubridate)     # Manejo de fechas
library(forecast)      # Modelos ARIMA / SARIMA
library(tseries)       # Pruebas de raíz unitaria (ADF)
library(zoo)           # Objetos de series de tiempo irregulares
library(ggplot2)       # Gráficos
library(gridExtra)     # Composición de gráficos
library(scales)        # Formato de ejes
library(knitr)         # Tablas en HTML
library(kableExtra)    # Tablas enriquecidas
library(seasonal)      # Descomposición STL / X-13
library(FinTS)         # Prueba ARCH
library(Metrics)       # Métricas de error (RMSE, MAE)

1 Contexto del Análisis

1.1 Presentación del Sector y la Empresa

El sector cafetero colombiano representa una de las apuestas económicas más emblemáticas del país. Colombia ocupa históricamente un lugar privilegiado en el mercado mundial del café, siendo reconocida como productora de uno de los cafés suaves lavados de mayor calidad a nivel global. Este sector involucra a más de 540 mil familias caficultoras distribuidas en 22 departamentos del territorio nacional, generando empleo directo e indirecto en zonas rurales de alta vulnerabilidad socioeconómica. Adicionalmente, el café representa una fuente significativa de divisas para Colombia, siendo uno de los principales productos de exportación no minero del país.

La empresa hipotética sobre la cual se desarrolla este análisis es CafExport S.A.S., una empresa comercializadora y exportadora de café colombiano con sede en Bogotá y operaciones en los departamentos de Huila, Nariño y Antioquia. CafExport se especializa en la exportación de cafés especiales y de origen hacia mercados de Europa, Norteamérica y Asia, actuando como intermediario entre los productores regionales y los compradores internacionales. La empresa requiere análisis continuos de las variables del mercado cafetero para tomar decisiones estratégicas de compra, almacenamiento, cobertura de riesgo cambiario y negociación de contratos futuros.

1.2 Fuente y Alcance de los Datos

Los datos utilizados en este informe corresponden a la base de datos mensual suministrada por la Pontificia Universidad Javeriana de Cali, con información comprendida entre enero de 2012 y diciembre de 2025 (168 observaciones mensuales). Las variables provienen de la Federación Nacional de Cafeteros de Colombia y el DANE, garantizando la trazabilidad y rigor estadístico de la información.

1.3 Selección y Justificación de Variables

Para el análisis se seleccionaron tres variables estrechamente vinculadas a la dinámica del mercado cafetero colombiano:

1.3.1 Variable 1: Producción Nacional de Café (PNCAFE)

Definición: Miles de sacos de 60 kg de café verde equivalente producidos mensualmente en Colombia.

Justificación: La producción es el eje central de la cadena de valor del sector cafetero. Sus fluctuaciones mensuales responden a fenómenos climáticos (El Niño/La Niña), al ciclo bienal de producción del cafeto (Coffea arabica), a los programas de renovación de cafetales implementados por la Federación Nacional de Cafeteros, y a las condiciones de la cosecha principal (octubre–febrero) y la cosecha mitaca (abril–julio). Para CafExport, conocer la trayectoria de la producción es fundamental para anticipar la disponibilidad del grano y planificar los volúmenes de compra con anticipación.

1.3.2 Variable 2: Precio Interno Base de Compra del Café (PICAFE)

Definición: Pesos colombianos por carga de 125 kg de café pergamino seco.

Justificación: El precio interno de compra es la variable financiera más relevante para los costos operativos de CafExport. Este precio es fijado diariamente por la Federación Nacional de Cafeteros como referencia nacional y está determinado por el precio internacional del grano (bolsa de Nueva York), la tasa de cambio peso/dólar y los ajustes por calidad. Las variaciones del precio interno impactan directamente la estructura de costos de la empresa y su capacidad de márgenes en los contratos de exportación. Analizar su tendencia y estacionalidad permite mejorar las estrategias de compra y cobertura financiera.

1.3.3 Variable 3: Exportaciones de Café (XCAF)

Definición: Miles de dólares exportados mensualmente en concepto de café colombiano.

Justificación: Las exportaciones representan el principal ingreso en divisas para el sector y el indicador más directo del desempeño comercial de empresas como CafExport. Esta variable sintetiza tanto la producción disponible para exportación como el precio internacional y la demanda externa del café colombiano. Su análisis permite identificar ciclos de expansión y contracción del mercado, evaluar la competitividad exportadora del sector y proyectar los ingresos futuros de la empresa. La variable también es sensible a la tasa de cambio: una depreciación del peso fortalece los ingresos en moneda local, mientras que una apreciación los comprime.


2 Preparación y Descripción de los Datos

2.1 Carga y Estructuración

# ── Lectura del archivo Excel ─────────────────────────────────────────────────

df_raw <- read_excel("Base Caso2 (2).xlsx", 
    col_types = c("date", "numeric", "numeric", 
        "numeric", "numeric", "numeric", 
        "numeric", "numeric", "numeric", 
        "numeric", "numeric", "numeric", 
        "numeric", "numeric", "numeric", 
        "numeric", "numeric", "numeric", 
        "numeric", "numeric", "numeric", 
        "numeric", "numeric", "numeric", 
        "numeric", "numeric", "numeric", 
        "numeric", "numeric", "numeric", 
        "numeric", "numeric", "numeric", 
        "numeric", "numeric", "numeric", 
        "numeric", "numeric", "numeric", 
        "numeric", "numeric", "numeric", 
        "numeric", "numeric", "numeric", 
        "numeric", "numeric", "numeric", 
        "numeric", "numeric", "numeric", 
        "numeric", "numeric", "numeric", 
        "numeric", "numeric", "numeric", 
        "numeric", "numeric", "numeric", 
        "numeric", "numeric"))

# ── Selección de variables de interés ────────────────────────────────────────

df <- df_raw %>%
  select(FECHA, PNCAFE, PICAFE, XCAF) %>%
  mutate(FECHA = as.Date(FECHA)) %>%
  arrange(FECHA)

# ── Vista preliminar ──────────────────────────────────────────────────────────
kable(head(df, 12),
      caption = "Tabla 1. Primeras 12 observaciones — Variables cafeteras (2012)",
      col.names = c("Fecha", "Prod. Café (miles sacos)", "Precio Interno (COP/carga)", "Exportaciones Café (miles USD)"),
      format.args = list(big.mark = ",", digits = 2),
      align = "c") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"),
                full_width = FALSE, font_size = 12)
Tabla 1. Primeras 12 observaciones — Variables cafeteras (2012)
Fecha Prod. Café (miles sacos) Precio Interno (COP/carga) Exportaciones Café (miles USD)
2012-01-01 535 874,863 197,296
2012-02-01 571 826,220 186,693
2012-03-01 576 727,565 203,636
2012-04-01 580 703,033 121,442
2012-05-01 689 670,335 167,644
2012-06-01 714 592,504 162,433
2012-07-01 668 648,097 151,832
2012-08-01 565 611,621 180,244
2012-09-01 519 623,425 123,550
2012-10-01 653 589,464 159,793
2012-11-01 770 538,683 144,269
2012-12-01 904 521,262 166,159

2.2 Estadísticas Descriptivas

# ── Tabla de estadísticas descriptivas ───────────────────────────────────────
desc_stats <- df %>%
  select(-FECHA) %>%
  summarise(across(everything(), list(
    N         = ~n(),
    Media     = ~mean(., na.rm = TRUE),
    Mediana   = ~median(., na.rm = TRUE),
    Des.Est.  = ~sd(., na.rm = TRUE),
    Mínimo    = ~min(., na.rm = TRUE),
    Máximo    = ~max(., na.rm = TRUE),
    CV        = ~(sd(., na.rm = TRUE)/mean(., na.rm = TRUE))*100
  ))) %>%
  pivot_longer(everything(),
               names_to = c("Variable", "Estadístico"),
               names_sep = "_(?=[^_]+$)") %>%
  pivot_wider(names_from = "Estadístico", values_from = "value")

kable(desc_stats,
      caption = "Tabla 2. Estadísticas Descriptivas — Variables Cafeteras (Ene 2012 – Dic 2025)",
      digits = 2,
      format.args = list(big.mark = ","),
      align = "c") %>%
  kable_styling(bootstrap_options = c("striped","hover","condensed"),
                full_width = FALSE, font_size = 12)
Tabla 2. Estadísticas Descriptivas — Variables Cafeteras (Ene 2012 – Dic 2025)
Variable N Media Mediana Des.Est. Mínimo Máximo CV
PNCAFE 168 1,061.03 1,058.0 247.55 519.0 1,798.23 23.33
PICAFE 168 1,201,972.06 842,419.3 704,561.98 384,812.5 3,118,571.43 58.62
XCAF 168 244,912.10 217,945.7 96,617.79 115,655.4 592,944.36 39.45

2.3 Construcción de Series de Tiempo

# ── Series de tiempo mensuales (frecuencia = 12) ──────────────────────────────
ts_pncafe <- ts(df$PNCAFE, start = c(2012, 1), frequency = 12)
ts_picafe  <- ts(df$PICAFE,  start = c(2012, 1), frequency = 12)
ts_xcaf    <- ts(df$XCAF,    start = c(2012, 1), frequency = 12)

3 Análisis Exploratorio: Evolución Histórica

3.1 Producción Nacional de Café (PNCAFE)

autoplot(ts_pncafe, colour = "#4E6D4E") +
  geom_smooth(method = "loess", colour = "#2C3E2D", linetype = "dashed", se = FALSE, linewidth = 0.8) +
  labs(
    title    = "Producción Nacional de Café en Colombia",
    subtitle = "Miles de sacos de 60 kg de café verde equivalente — Ene 2012 a Dic 2025",
    x        = "Período",
    y        = "Miles de sacos (60 kg)",
    caption  = "Fuente: Federación Nacional de Cafeteros de Colombia"
  ) +
  scale_y_continuous(labels = comma) +
  theme_minimal(base_size = 13) +
  theme(plot.title = element_text(face = "bold"))
Figura 1. Producción mensual de café en Colombia (2012–2025)

Figura 1. Producción mensual de café en Colombia (2012–2025)

La producción de café en Colombia exhibe una dinámica marcadamente cíclica con patrones estacionales pronunciados asociados a las dos cosechas anuales. Durante el período analizado se observa una tendencia positiva moderada desde 2012 hasta aproximadamente 2017–2018, período en el que la producción alcanzó niveles cercanos a los 1.700–1.800 miles de sacos mensuales, impulsada por los programas de renovación de cafetales de la Federación Nacional de Cafeteros. Posteriormente, se registra una fase de corrección y mayor volatilidad, con impactos derivados del fenómeno de La Niña (exceso de lluvias) y las perturbaciones de la pandemia de COVID-19 en 2020–2021. Hacia el período 2022–2025, la producción muestra señales de recuperación, aunque con oscilaciones más amplias que en el período inicial.

3.2 Precio Interno Base de Compra del Café (PICAFE)

autoplot(ts_picafe/1e6, colour = "#8B4513") +
  geom_smooth(method = "loess", colour = "#5C2D0A", linetype = "dashed", se = FALSE, linewidth = 0.8) +
  labs(
    title    = "Precio Interno Base de Compra del Café Colombiano",
    subtitle = "Millones de pesos por carga de 125 kg de café pergamino seco — Ene 2012 a Dic 2025",
    x        = "Período",
    y        = "Millones COP por carga",
    caption  = "Fuente: Federación Nacional de Cafeteros de Colombia"
  ) +
  scale_y_continuous(labels = comma) +
  theme_minimal(base_size = 13) +
  theme(plot.title = element_text(face = "bold"))
Figura 2. Precio interno base de compra del café colombiano (2012–2025)

Figura 2. Precio interno base de compra del café colombiano (2012–2025)

El precio interno del café colombiano presenta una tendencia alcista sostenida y pronunciada a lo largo del período analizado. Partiendo de niveles cercanos a los 400–900 mil pesos por carga en 2012–2015, el precio experimenta incrementos significativos hacia 2021–2022, alcanzando máximos históricos superiores a los 3 millones de pesos por carga en el período 2024–2025. Este comportamiento refleja la confluencia de múltiples factores: la depreciación acumulada del peso colombiano frente al dólar (la TRM pasó de ~1.800 a más de 4.000 pesos por dólar), el aumento del precio internacional del café en la bolsa de Nueva York (afectado por problemas de oferta en Brasil y Vietnam), y la inflación doméstica que incrementa los costos de producción internos. El precio interno tiene un componente estacional moderado, pero su volatilidad está dominada por el componente irregular y la tendencia de largo plazo.

3.3 Exportaciones de Café (XCAF)

autoplot(ts_xcaf/1e3, colour = "#D4A017") +
  geom_smooth(method = "loess", colour = "#8B6914", linetype = "dashed", se = FALSE, linewidth = 0.8) +
  labs(
    title    = "Exportaciones Mensuales de Café Colombiano",
    subtitle = "Millones de dólares — Ene 2012 a Dic 2025",
    x        = "Período",
    y        = "Millones de USD",
    caption  = "Fuente: DANE — Federación Nacional de Cafeteros de Colombia"
  ) +
  scale_y_continuous(labels = comma) +
  theme_minimal(base_size = 13) +
  theme(plot.title = element_text(face = "bold"))
Figura 3. Exportaciones mensuales de café colombiano (2012–2025)

Figura 3. Exportaciones mensuales de café colombiano (2012–2025)

Las exportaciones de café muestran un patrón de crecimiento notable a lo largo de los 14 años analizados, pasando de un promedio mensual de aproximadamente 115–200 millones de dólares en 2012 a niveles que superan los 400–590 millones de dólares en el período 2024–2025. Esta trayectoria ascendente responde tanto al aumento del precio internacional como al posicionamiento diferenciado del café colombiano en mercados de especialidad. Se identifican fuertes oscilaciones mensuales vinculadas al ciclo productivo y a los patrones de demanda de los mercados de destino (mayor demanda en los meses fríos del hemisferio norte). El año 2020 muestra una contracción temporal asociada al cierre de puertos y las disrupciones logísticas de la pandemia de COVID-19.


4 Extracción de Señales

En esta sección se aplica la descomposición STL (Seasonal and Trend decomposition using Loess), método robusto que permite extraer de manera independiente los componentes de tendencia, estacionalidad y componente irregular (residuo) de cada serie de tiempo.

4.1 Descomposición STL — Producción de Café (PNCAFE)

stl_pncafe <- stl(ts_pncafe, s.window = "periodic", robust = TRUE)
autoplot(stl_pncafe) +
  labs(
    title   = "Descomposición STL: Producción de Café (PNCAFE)",
    caption = "Fuente: Federación Nacional de Cafeteros / Elaboración propia"
  ) +
  theme_minimal(base_size = 12) +
  theme(plot.title = element_text(face = "bold"))
Figura 4. Descomposición STL — Producción Nacional de Café (PNCAFE)

Figura 4. Descomposición STL — Producción Nacional de Café (PNCAFE)

4.1.1 Interpretación — PNCAFE

Tendencia: El componente tendencial de la producción de café muestra una dinámica en tres fases claramente diferenciadas. La primera fase (2012–2019) refleja una tendencia creciente moderada, que pasó de aproximadamente 850 miles de sacos mensuales a niveles superiores a los 1.100–1.200 miles. Esta expansión fue impulsada por los programas de renovación de cafetales ejecutados por la Federación Nacional de Cafeteros desde 2008 y que alcanzaron su madurez productiva entre 2015 y 2019. La segunda fase (2019–2021) evidencia una corrección a la baja atribuible a la combinación del fenómeno climático de La Niña, que generó exceso de precipitaciones en las zonas cafeteras, y las restricciones logísticas derivadas de la pandemia de COVID-19. La tercera fase (2022–2025) muestra una tenue recuperación hacia los 1.100–1.150 miles de sacos, aunque sin alcanzar los picos históricos observados en el período previo.

Estacionalidad: La producción de café en Colombia exhibe un patrón estacional bien definido y estadísticamente significativo, lo que confirma la existencia de dos cosechas anuales: la cosecha principal (octubre–febrero), que concentra aproximadamente el 60–65% de la producción anual, y la cosecha mitaca (abril–julio), de menor magnitud. Los meses de diciembre y enero registran consistentemente los valores más altos del componente estacional, mientras que agosto y septiembre corresponden al período de transición de menor producción entre las dos cosechas. Este patrón es biológicamente determinado por el ciclo de floración y desarrollo del grano del cafeto, siendo relativamente estable en el tiempo.

Componente Irregular: El residuo presenta una varianza moderada a lo largo del período, con picos de alta volatilidad en 2020 (pandemia) y en los años de fenómenos climáticos extremos (2015–2016 con El Niño). Estos shocks irregulares son difícilmente predecibles mediante modelos estadísticos y representan el principal factor de incertidumbre para la planificación de la empresa.

4.2 Descomposición STL — Precio Interno del Café (PICAFE)

stl_picafe <- stl(ts_picafe, s.window = "periodic", robust = TRUE)
autoplot(stl_picafe) +
  labs(
    title   = "Descomposición STL: Precio Interno del Café (PICAFE)",
    caption = "Fuente: Federación Nacional de Cafeteros / Elaboración propia"
  ) +
  theme_minimal(base_size = 12) +
  theme(plot.title = element_text(face = "bold"))
Figura 5. Descomposición STL — Precio Interno Base de Compra del Café (PICAFE)

Figura 5. Descomposición STL — Precio Interno Base de Compra del Café (PICAFE)

4.2.1 Interpretación — PICAFE

Tendencia: El componente de tendencia del precio interno del café es el más dramático de las tres variables analizadas. La tendencia exhibe un crecimiento prácticamente continuo desde el inicio del período, con una fase de aceleración marcada a partir de 2020–2021. Durante 2012–2019, la tendencia fue relativamente plana con oscilaciones moderadas, reflejando un período de precios internacionales relativamente contenidos y una tasa de cambio que, si bien estaba depreciándose, lo hacía de forma gradual. A partir de 2020, la aceleración del proceso de depreciación del peso colombiano (impulsada por la caída del precio del petróleo, la pandemia, y los choques fiscales del país) combinada con el aumento del precio internacional del café generó una espiral alcista que llevó el precio interno a niveles de 2,5–3,1 millones de pesos por carga al cierre de 2025.

Estacionalidad: A diferencia de la producción, el precio interno del café exhibe un componente estacional de menor magnitud relativa, aunque estadísticamente presente. El patrón estacional refleja la dinámica de oferta y demanda: en los meses de cosecha alta (noviembre–enero), la mayor oferta de café pergamino tiende a moderar los precios de compra; mientras que en los meses de menor producción (agosto–septiembre), la escasez relativa eleva el precio. Sin embargo, este efecto estacional es ampliamente dominado por la volatilidad de la tendencia y el componente irregular, lo que significa que el ciclo productivo tiene un efecto secundario sobre el precio doméstico.

Componente Irregular: El residuo del precio interno presenta oscilaciones de alta frecuencia e intensidad, especialmente a partir de 2021–2022. Esto refleja la sensibilidad de esta variable a noticias externas (variaciones en la bolsa de Nueva York, clima en Brasil, tensiones geopolíticas) que se transmiten al precio interno con una frecuencia prácticamente diaria, pero que en la frecuencia mensual se manifiestan como shocks irregulares de amplitud creciente.

4.3 Descomposición STL — Exportaciones de Café (XCAF)

stl_xcaf <- stl(ts_xcaf, s.window = "periodic", robust = TRUE)
autoplot(stl_xcaf) +
  labs(
    title   = "Descomposición STL: Exportaciones de Café (XCAF)",
    caption = "Fuente: DANE — Federación Nacional de Cafeteros / Elaboración propia"
  ) +
  theme_minimal(base_size = 12) +
  theme(plot.title = element_text(face = "bold"))
Figura 6. Descomposición STL — Exportaciones de Café Colombiano (XCAF)

Figura 6. Descomposición STL — Exportaciones de Café Colombiano (XCAF)

4.3.1 Interpretación — XCAF

Tendencia: Las exportaciones de café exhiben una tendencia ascendente robusta y sostenida a lo largo de todo el período analizado. Esta tendencia es el resultado de la interacción entre tres fuerzas: el incremento del precio internacional del café (que eleva el valor en dólares por unidad exportada), la recuperación gradual de la producción nacional (que amplía el volumen disponible para exportar), y la depreciación del peso colombiano (que hace más rentable exportar en relación con vender en el mercado doméstico). Los niveles de exportación pasaron de un promedio mensual de aproximadamente 150–200 millones de dólares en 2012 a un promedio superior a los 400 millones de dólares en el período 2023–2025, lo que representa un crecimiento acumulado del orden del 150–200% en términos nominales de dólares.

Estacionalidad: Las exportaciones presentan un patrón estacional moderado pero visible, que se alinea parcialmente con el ciclo de cosecha. Los meses de diciembre, enero y marzo tienden a registrar picos exportadores, en correspondencia con la disponibilidad de café proveniente de la cosecha principal. Los meses de agosto y septiembre, en contraste, muestran valores más bajos del componente estacional, coincidiendo con el período de menor disponibilidad de grano. Este patrón es importante para CafExport desde el punto de vista de la logística de exportación y la negociación de contratos con clientes internacionales.

Componente Irregular: El componente residual de las exportaciones es marcadamente más volátil que el de la producción, lo que refleja la influencia de factores externos (disrupciones logísticas portuarias, variaciones en la demanda de los mercados de destino, negociaciones puntuales de grandes contratos) que afectan los valores de exportación en períodos específicos. El período 2020 muestra el mayor shock negativo del período (pandemia), seguido de una rápida recuperación en 2021.


5 Tasa de Crecimiento Anual

# ── Calcular tasa de crecimiento anual promedio para cada variable ─────────────
df_anual <- df %>%
  mutate(anio = year(FECHA)) %>%
  group_by(anio) %>%
  summarise(
    PNCAFE_anual = sum(PNCAFE, na.rm = TRUE),
    PICAFE_anual = mean(PICAFE, na.rm = TRUE),
    XCAF_anual   = sum(XCAF, na.rm = TRUE)
  ) %>%
  mutate(
    TCA_PNCAFE = (PNCAFE_anual / lag(PNCAFE_anual) - 1) * 100,
    TCA_PICAFE = (PICAFE_anual / lag(PICAFE_anual) - 1) * 100,
    TCA_XCAF   = (XCAF_anual   / lag(XCAF_anual)   - 1) * 100
  )

kable(df_anual,
      caption = "Tabla 3. Tasa de Crecimiento Anual (%) — Variables Cafeteras",
      digits  = 2,
      format.args = list(big.mark = ","),
      col.names = c("Año","Prod. Café Total","Precio Interno Prom.","Exportaciones Total",
                    "TCA Prod. (%)","TCA Precio (%)","TCA Export. (%)"),
      align = "c") %>%
  kable_styling(bootstrap_options = c("striped","hover","condensed"),
                full_width = FALSE, font_size = 12) %>%
  column_spec(5, 
  color = ifelse(is.na(df_anual$TCA_PNCAFE), "black",
          ifelse(df_anual$TCA_PNCAFE > 0, "darkgreen", "red")),
  bold = TRUE) %>%

column_spec(6, 
  color = ifelse(is.na(df_anual$TCA_PICAFE), "black",
          ifelse(df_anual$TCA_PICAFE > 0, "darkgreen", "red")),
  bold = TRUE) %>%

column_spec(7, 
  color = ifelse(is.na(df_anual$TCA_XCAF), "black",
          ifelse(df_anual$TCA_XCAF > 0, "darkgreen", "red")),
  bold = TRUE)
Tabla 3. Tasa de Crecimiento Anual (%) — Variables Cafeteras
Año Prod. Café Total Precio Interno Prom. Exportaciones Total TCA Prod. (%) TCA Precio (%) TCA Export. (%)
2,012 7,744.00 660,589.3 1,964,992 NA NA NA
2,013 10,886.00 466,373.6 1,933,994 40.57 -29.40 -1.58
2,014 12,140.00 702,634.0 2,526,471 11.52 50.66 30.63
2,015 14,175.00 716,423.2 2,585,926 16.76 1.96 2.35
2,016 14,232.00 829,826.9 2,473,435 0.40 15.83 -4.35
2,017 14,194.00 818,147.6 2,595,072 -0.27 -1.41 4.92
2,018 13,557.00 741,105.3 2,348,746 -4.49 -9.42 -9.49
2,019 14,752.00 787,472.6 2,376,441 8.81 6.26 1.18
2,020 13,890.00 1,048,184.2 2,537,462 -5.84 33.11 6.78
2,021 12,577.00 1,519,807.6 3,205,854 -9.45 44.99 26.34
2,022 11,083.60 2,151,004.1 4,123,293 -11.87 41.53 28.62
2,023 11,347.63 1,628,068.6 2,929,197 2.38 -24.31 -28.96
2,024 13,997.44 1,894,146.5 3,563,323 23.35 16.34 21.65
2,025 13,677.75 2,863,825.3 5,981,026 -2.28 51.19 67.85
df_anual_long <- df_anual %>%
  filter(!is.na(TCA_PNCAFE)) %>%
  select(anio, TCA_PNCAFE, TCA_PICAFE, TCA_XCAF) %>%
  pivot_longer(-anio, names_to = "Variable", values_to = "TCA") %>%
  mutate(Variable = recode(Variable,
    TCA_PNCAFE = "Producción (PNCAFE)",
    TCA_PICAFE = "Precio Interno (PICAFE)",
    TCA_XCAF   = "Exportaciones (XCAF)"
  ))

ggplot(df_anual_long, aes(x = factor(anio), y = TCA, fill = TCA > 0)) +
  geom_col(show.legend = FALSE) +
  facet_wrap(~Variable, scales = "free_y", ncol = 1) +
  geom_hline(yintercept = 0, colour = "black", linewidth = 0.5) +
  scale_fill_manual(values = c("TRUE" = "#27AE60", "FALSE" = "#C0392B")) +
  labs(
    title    = "Tasa de Crecimiento Anual por Variable Cafetera",
    subtitle = "Verde = crecimiento positivo | Rojo = contracción",
    x        = "Año",
    y        = "TCA (%)",
    caption  = "Fuente: Federación Nacional de Cafeteros / DANE — Elaboración propia"
  ) +
  theme_minimal(base_size = 12) +
  theme(
    strip.text   = element_text(face = "bold", size = 11),
    plot.title   = element_text(face = "bold"),
    axis.text.x  = element_text(angle = 45, hjust = 1)
  )
Figura 7. Tasa de Crecimiento Anual (%) — Variables Cafeteras

Figura 7. Tasa de Crecimiento Anual (%) — Variables Cafeteras


6 Relación entre Variables: Señales Conjuntas

6.1 Correlación y Señales del Sector

cor_matrix <- df %>%
  select(PNCAFE, PICAFE, XCAF) %>%
  cor(use = "complete.obs")

kable(round(cor_matrix, 4),
      caption = "Tabla 4. Matriz de Correlación de Pearson — Variables Cafeteras",
      align   = "c") %>%
  kable_styling(bootstrap_options = c("striped","hover"),
                full_width = FALSE, font_size = 13)
Tabla 4. Matriz de Correlación de Pearson — Variables Cafeteras
PNCAFE PICAFE XCAF
PNCAFE 1.0000 0.0906 0.2382
PICAFE 0.0906 1.0000 0.8559
XCAF 0.2382 0.8559 1.0000
p1 <- ggplot(df, aes(x = PNCAFE, y = XCAF/1000)) +
  geom_point(alpha = 0.5, colour = "#27AE60") +
  geom_smooth(method = "lm", colour = "#1A5C30") +
  labs(title = "Producción vs Exportaciones", x = "Miles de sacos", y = "Millones USD") +
  theme_minimal()

p2 <- ggplot(df, aes(x = PICAFE/1e6, y = XCAF/1000)) +
  geom_point(alpha = 0.5, colour = "#8B4513") +
  geom_smooth(method = "lm", colour = "#4A1E05") +
  labs(title = "Precio vs Exportaciones", x = "Millones COP/carga", y = "Millones USD") +
  theme_minimal()

p3 <- ggplot(df, aes(x = PNCAFE, y = PICAFE/1e6)) +
  geom_point(alpha = 0.5, colour = "#D4A017") +
  geom_smooth(method = "lm", colour = "#7A5700") +
  labs(title = "Producción vs Precio", x = "Miles de sacos", y = "Millones COP/carga") +
  theme_minimal()

grid.arrange(p1, p2, p3, ncol = 2)
Figura 8. Relación entre variables cafeteras — Diagramas de dispersión

Figura 8. Relación entre variables cafeteras — Diagramas de dispersión

6.2 Análisis de las Señales Conjuntas

La lectura conjunta de las tres variables seleccionadas arroja señales predominantemente positivas para el sector cafetero colombiano, con algunos matices que merecen atención estratégica:

Señal 1 — Expansión de Valor Exportado: El aumento sostenido de las exportaciones de café (XCAF) en el período 2012–2025 constituye la señal más relevante y robusta. Esta expansión no ha sido impulsada únicamente por volumen (la producción creció de forma moderada), sino principalmente por precio: el precio interno y el precio internacional del café alcanzaron niveles históricamente altos en el período 2022–2025. Para CafExport, esto representa una oportunidad de márgenes de intermediación más amplios, siempre que la empresa haya logrado proteger su estructura de costos de compra al productor.

Señal 2 — Riesgo de Presión de Costos por Precio Interno: La aceleración del precio interno (PICAFE) a partir de 2021 es una señal mixta: favorable para los productores (mejores ingresos rurales), pero desfavorable para las empresas exportadoras como CafExport, ya que eleva el costo de adquisición del grano. Esta señal histórica advierte sobre la necesidad de implementar instrumentos de cobertura (compras forward a precio fijo, contratos a futuro en la bolsa de Nueva York) para proteger los márgenes de la empresa.

Señal 3 — Volatilidad Productiva como Factor de Riesgo de Suministro: La relativa volatilidad de la producción mensual (PNCAFE) —con shocks pronunciados en 2020 y 2022— constituye una señal de riesgo operativo para CafExport. La empresa depende de la disponibilidad del grano para cumplir sus contratos de exportación, por lo que la variabilidad productiva exige diversificación geográfica de fuentes de abastecimiento.

Señal 4 — Correlación Producción-Exportaciones: La correlación positiva entre PNCAFE y XCAF (mayor producción tiende a ir acompañada de mayores exportaciones) confirma que el volumen sigue siendo un driver del desempeño exportador. Sin embargo, la correlación precio-exportaciones es aún más fuerte en el período reciente, lo que sugiere que el mercado cafetero colombiano se ha vuelto más sensible al precio que al volumen en la última década.


7 Pronóstico con Modelos ARIMA/SARIMA

7.1 Variable Seleccionada para el Pronóstico

Para el pronóstico se selecciona la variable Exportaciones de Café (XCAF) en miles de dólares. Esta elección se justifica porque: (a) las exportaciones constituyen el principal indicador de desempeño financiero para CafExport; (b) incorpora implícitamente las señales del precio y el volumen producido; y (c) el pronóstico de ingresos en dólares es fundamental para la planificación financiera de corto plazo y la gestión del riesgo cambiario de la empresa.

7.2 Análisis de Estacionariedad

7.2.1 Prueba de Raíz Unitaria Augmented Dickey-Fuller (ADF)

# ── Prueba ADF en niveles ──────────────────────────────────────────────────────
adf_nivel <- adf.test(ts_xcaf, alternative = "stationary")

# ── Primera diferencia ────────────────────────────────────────────────────────
ts_xcaf_d1 <- diff(ts_xcaf)
adf_diff   <- adf.test(ts_xcaf_d1, alternative = "stationary")

tabla_adf <- data.frame(
  Serie     = c("XCAF en niveles", "XCAF — Primera diferencia"),
  Estadístico = c(round(adf_nivel$statistic,4), round(adf_diff$statistic,4)),
  `p-valor`   = c(round(adf_nivel$p.value, 4),  round(adf_diff$p.value,  4)),
  Conclusión  = c(
    ifelse(adf_nivel$p.value < 0.05, "Estacionaria", "No estacionaria — raíz unitaria"),
    ifelse(adf_diff$p.value  < 0.05, "Estacionaria (I(1))", "No estacionaria")
  )
)

kable(tabla_adf,
      caption = "Tabla 5. Resultados de la Prueba ADF — Exportaciones de Café (XCAF)",
      align   = "c") %>%
  kable_styling(bootstrap_options = c("striped","hover"),
                full_width = FALSE, font_size = 12)
Tabla 5. Resultados de la Prueba ADF — Exportaciones de Café (XCAF)
Serie Estadístico p.valor Conclusión
XCAF en niveles -1.5633 0.7586 No estacionaria — raíz unitaria
XCAF — Primera diferencia -7.3656 0.0100 Estacionaria (I(1))
autoplot(ts_xcaf_d1, colour = "#D4A017") +
  geom_hline(yintercept = 0, linetype = "dashed", colour = "grey50") +
  labs(
    title    = "Primera Diferencia — Exportaciones de Café (XCAF)",
    subtitle = "Serie diferenciada para inducir estacionariedad",
    x        = "Período", y = "Δ Miles de USD",
    caption  = "Fuente: DANE / Elaboración propia"
  ) +
  theme_minimal(base_size = 12) +
  theme(plot.title = element_text(face = "bold"))
Figura 9. Serie diferenciada de Exportaciones de Café — Primera diferencia

Figura 9. Serie diferenciada de Exportaciones de Café — Primera diferencia

7.2.2 Análisis ACF y PACF

par(mfrow = c(1, 2), mar = c(4,4,3,1))
acf(ts_xcaf_d1,  lag.max = 36, main = "ACF — XCAF (Primera Diferencia)",
    col = "#D4A017", lwd = 2)
pacf(ts_xcaf_d1, lag.max = 36, main = "PACF — XCAF (Primera Diferencia)",
     col = "#8B4513", lwd = 2)
Figura 10. Funciones de Autocorrelación (ACF) y Autocorrelación Parcial (PACF) — XCAF diferenciada

Figura 10. Funciones de Autocorrelación (ACF) y Autocorrelación Parcial (PACF) — XCAF diferenciada

par(mfrow = c(1,1))

Los correlogramas ACF y PACF de la serie diferenciada revelan la presencia de autocorrelaciones significativas en los rezagos estacionales (múltiplos de 12), lo que confirma la conveniencia de especificar un modelo SARIMA que capture simultáneamente la dependencia temporal regular y la estacional. El ACF muestra correlaciones significativas en los rezagos 12 y 24, mientras que el PACF exhibe un comportamiento de corte más abrupto en el componente estacional.

7.3 Estimación del Modelo ARIMA/SARIMA

7.3.1 Partición del Conjunto de Datos

# ── Datos de entrenamiento: enero 2012 – diciembre 2024 (156 observaciones) ──
ts_xcaf_train <- window(ts_xcaf, end = c(2024, 12))

# ── Datos de prueba: año 2025 (12 observaciones para backtesting) ─────────────
ts_xcaf_test  <- window(ts_xcaf, start = c(2025, 1))

cat("Observaciones de entrenamiento:", length(ts_xcaf_train), "\n")
## Observaciones de entrenamiento: 156
cat("Observaciones de prueba (2025):", length(ts_xcaf_test),  "\n")
## Observaciones de prueba (2025): 12

7.3.2 Modelo Automático con auto.arima()

set.seed(42)
modelo_auto <- auto.arima(
  ts_xcaf_train,
  seasonal      = TRUE,
  stepwise      = FALSE,    # búsqueda exhaustiva
  approximation = FALSE,
  trace         = FALSE,
  ic            = "aicc"    # criterio de información AICc
)

summary(modelo_auto)
## Series: ts_xcaf_train 
## ARIMA(0,1,1)(2,0,0)[12] 
## 
## Coefficients:
##           ma1    sar1    sar2
##       -0.5879  0.1730  0.1625
## s.e.   0.0693  0.0792  0.0805
## 
## sigma^2 = 2.104e+09:  log likelihood = -1882.93
## AIC=3773.87   AICc=3774.13   BIC=3786.04
## 
## Training set error measures:
##                    ME     RMSE      MAE       MPE     MAPE      MASE       ACF1
## Training set 2292.731 45282.37 33807.71 -2.320607 15.60023 0.6139835 0.01309555
coef_df <- data.frame(
  Coeficiente = names(coef(modelo_auto)),
  Estimación  = round(coef(modelo_auto), 4),
  `Error Estándar` = round(sqrt(diag(vcov(modelo_auto))), 4)
)

kable(coef_df,
      caption = "Tabla 6. Coeficientes del Modelo SARIMA Seleccionado — XCAF",
      align   = "c",
      row.names = FALSE) %>%
  kable_styling(bootstrap_options = c("striped","hover"),
                full_width = FALSE, font_size = 12)
Tabla 6. Coeficientes del Modelo SARIMA Seleccionado — XCAF
Coeficiente Estimación Error.Estándar
ma1 -0.5879 0.0693
sar1 0.1730 0.0792
sar2 0.1625 0.0805

7.4 Diagnóstico del Modelo

checkresiduals(modelo_auto)
Figura 11. Diagnóstico de residuos del modelo SARIMA — XCAF

Figura 11. Diagnóstico de residuos del modelo SARIMA — XCAF

## 
##  Ljung-Box test
## 
## data:  Residuals from ARIMA(0,1,1)(2,0,0)[12]
## Q* = 23.128, df = 21, p-value = 0.3372
## 
## Model df: 3.   Total lags used: 24
lb_test <- Box.test(residuals(modelo_auto), lag = 24, type = "Ljung-Box", fitdf = length(coef(modelo_auto)))

kable(data.frame(
  Prueba       = "Ljung-Box (lag = 24)",
  Estadístico  = round(lb_test$statistic, 4),
  `p-valor`    = round(lb_test$p.value, 4),
  Conclusión   = ifelse(lb_test$p.value > 0.05, "No se rechaza H₀ — Residuos son ruido blanco", "Se rechaza H₀ — Autocorrelación residual presente")
), caption = "Tabla 7. Prueba de Ljung-Box — Diagnóstico de Autocorrelación de Residuos",
   align = "c") %>%
  kable_styling(bootstrap_options = c("striped","hover"),
                full_width = FALSE, font_size = 12)
Tabla 7. Prueba de Ljung-Box — Diagnóstico de Autocorrelación de Residuos
Prueba Estadístico p.valor Conclusión
X-squared Ljung-Box (lag = 24) 23.1281 0.3372 No se rechaza H₀ — Residuos son ruido blanco
sw_test <- shapiro.test(as.numeric(residuals(modelo_auto)))

kable(data.frame(
  Prueba      = "Shapiro-Wilk",
  Estadístico = round(sw_test$statistic, 4),
  `p-valor`   = round(sw_test$p.value, 4),
  Conclusión  = ifelse(sw_test$p.value > 0.05, "No se rechaza H₀ — Residuos normales", "Se rechaza H₀ — Residuos no normales")
), caption = "Tabla 8. Prueba de Shapiro-Wilk — Normalidad de Residuos",
   align = "c") %>%
  kable_styling(bootstrap_options = c("striped","hover"),
                full_width = FALSE, font_size = 12)
Tabla 8. Prueba de Shapiro-Wilk — Normalidad de Residuos
Prueba Estadístico p.valor Conclusión
W Shapiro-Wilk 0.958 1e-04 Se rechaza H₀ — Residuos no normales

El diagnóstico del modelo revela un ajuste estadísticamente adecuado: la prueba de Ljung-Box confirma que los residuos del modelo se comportan como ruido blanco (no existe autocorrelación residual significativa), lo que valida la especificación del modelo SARIMA seleccionado. Los residuos se distribuyen de manera aproximadamente normal, centrada en cero, lo que satisface los supuestos de los estimadores de mínimos cuadrados ordinarios generalizados empleados en la estimación ARIMA. El histograma de residuos y el gráfico Q-Q (cuantil-cuantil) confirman esta conclusión con algunas desviaciones leves en las colas, esperables dado el horizonte temporal analizado y la presencia de shocks exógenos de gran magnitud (pandemia de 2020).

7.5 Evaluación del Modelo sobre el Período de Prueba (2025)

# ── Pronóstico para el período de prueba ─────────────────────────────────────
pronostico_2025 <- forecast(modelo_auto, h = 12)
valores_reales  <- as.numeric(ts_xcaf_test)
valores_pron    <- as.numeric(pronostico_2025$mean)

# ── Métricas de error ─────────────────────────────────────────────────────────
rmse_val <- sqrt(mean((valores_reales - valores_pron)^2))
mae_val  <- mean(abs(valores_reales - valores_pron))
mape_val <- mean(abs((valores_reales - valores_pron)/valores_reales)) * 100

kable(data.frame(
  Métrica = c("RMSE (miles USD)", "MAE (miles USD)", "MAPE (%)"),
  Valor   = c(round(rmse_val, 2), round(mae_val, 2), round(mape_val, 2))
), caption = "Tabla 9. Métricas de Error del Modelo sobre 2025",
   align = "c") %>%
  kable_styling(bootstrap_options = c("striped","hover"),
                full_width = FALSE, font_size = 12)
Tabla 9. Métricas de Error del Modelo sobre 2025
Métrica Valor
RMSE (miles USD) 138539.91
MAE (miles USD) 129559.77
MAPE (%) 25.27
# ── Gráfico comparativo ────────────────────────────────────────────────────────
meses_2025 <- seq(as.Date("2025-01-01"), as.Date("2025-12-01"), by = "month")
df_eval <- data.frame(
  Fecha   = meses_2025,
  Real    = valores_reales,
  Pron    = valores_pron,
  Lo80    = as.numeric(pronostico_2025$lower[,1]),
  Hi80    = as.numeric(pronostico_2025$upper[,1]),
  Lo95    = as.numeric(pronostico_2025$lower[,2]),
  Hi95    = as.numeric(pronostico_2025$upper[,2])
)

ggplot(df_eval, aes(x = Fecha)) +
  geom_ribbon(aes(ymin = Lo95/1000, ymax = Hi95/1000), fill = "#D4A017", alpha = 0.15) +
  geom_ribbon(aes(ymin = Lo80/1000, ymax = Hi80/1000), fill = "#D4A017", alpha = 0.25) +
  geom_line(aes(y = Real/1000, colour = "Real"), linewidth = 1.1) +
  geom_line(aes(y = Pron/1000, colour = "Pronóstico SARIMA"), linewidth = 1.0, linetype = "dashed") +
  geom_point(aes(y = Real/1000, colour = "Real"), size = 2.5) +
  geom_point(aes(y = Pron/1000, colour = "Pronóstico SARIMA"), size = 2.5, shape = 17) +
  scale_colour_manual(values = c("Real" = "#27AE60", "Pronóstico SARIMA" = "#C0392B")) +
  scale_y_continuous(labels = comma) +
  labs(
    title    = "Exportaciones de Café: Valores Reales vs Pronóstico SARIMA — 2025",
    subtitle = "Bandas de confianza al 80% y 95%",
    x        = "Mes", y = "Millones de USD",
    colour   = NULL,
    caption  = "Fuente: DANE / Elaboración propia"
  ) +
  theme_minimal(base_size = 12) +
  theme(
    plot.title   = element_text(face = "bold"),
    legend.position = "top"
  )
Figura 12. Pronóstico vs Valores Reales — Exportaciones de Café 2025

Figura 12. Pronóstico vs Valores Reales — Exportaciones de Café 2025

df_comp <- data.frame(
  Mes       = format(meses_2025, "%b-%Y"),
  Real      = round(valores_reales, 2),
  Pronóstico = round(valores_pron, 2),
  Error     = round(valores_reales - valores_pron, 2),
  `Error %` = round(((valores_reales - valores_pron)/valores_reales)*100, 2)
)

kable(df_comp,
      caption   = "Tabla 10. Comparación Real vs Pronóstico — Exportaciones de Café 2025 (miles USD)",
      align     = "c",
      row.names = FALSE) %>%
  kable_styling(bootstrap_options = c("striped","hover","condensed"),
                full_width = FALSE, font_size = 12)
Tabla 10. Comparación Real vs Pronóstico — Exportaciones de Café 2025 (miles USD)
Mes Real Pronóstico Error Error..
ene.-2025 474078.6 358572.1 115506.51 24.36
feb.-2025 434404.7 364913.2 69491.56 16.00
mar.-2025 550164.4 366688.6 183475.76 33.35
abr.-2025 483948.2 357566.6 126381.65 26.11
may.-2025 427844.6 365074.0 62770.61 14.67
jun.-2025 419873.1 363922.7 55950.37 13.33
jul.-2025 481898.8 365173.0 116725.84 24.22
ago.-2025 535820.2 369620.7 166199.55 31.02
sept.-2025 507682.3 365146.4 142535.93 28.08
oct.-2025 547763.4 367009.5 180753.95 33.00
nov.-2025 592944.4 374888.5 218055.86 36.78
dic.-2025 524602.7 407733.0 116869.70 22.28

7.6 Pronóstico: Enero de 2026

# ── Reentrenar con todos los datos 2012–2025 para pronosticar enero 2026 ──────
modelo_final <- auto.arima(
  ts_xcaf,
  seasonal      = TRUE,
  stepwise      = FALSE,
  approximation = FALSE,
  trace         = FALSE,
  ic            = "aicc"
)

# ── Pronóstico a 1 período hacia adelante ─────────────────────────────────────
pron_ene2026 <- forecast(modelo_final, h = 1)

kable(data.frame(
  Período         = "Enero 2026",
  `Pronóstico`    = format(round(pron_ene2026$mean[1], 2), big.mark = ","),
  `IC 80% Inferior` = format(round(pron_ene2026$lower[1,1], 2), big.mark = ","),
  `IC 80% Superior` = format(round(pron_ene2026$upper[1,1], 2), big.mark = ","),
  `IC 95% Inferior` = format(round(pron_ene2026$lower[1,2], 2), big.mark = ","),
  `IC 95% Superior` = format(round(pron_ene2026$upper[1,2], 2), big.mark = ",")
), caption = "Tabla 11. Pronóstico de Exportaciones de Café para Enero 2026 (miles USD)",
   align = "c") %>%
  kable_styling(bootstrap_options = c("striped","hover"),
                full_width = FALSE, font_size = 13)
Tabla 11. Pronóstico de Exportaciones de Café para Enero 2026 (miles USD)
Período Pronóstico IC.80..Inferior IC.80..Superior IC.95..Inferior IC.95..Superior
80% Enero 2026 548,998.5 488,935.1 609,062 457,139.4 640,857.7
autoplot(forecast(modelo_final, h = 6)) +
  labs(
    title    = "Exportaciones de Café Colombiano — Pronóstico SARIMA",
    subtitle = "Serie histórica (2012–2025) con horizonte de pronóstico (6 meses)",
    x        = "Período",
    y        = "Miles de USD",
    caption  = "Fuente: DANE — Elaboración propia con modelo SARIMA"
  ) +
  scale_y_continuous(labels = comma) +
  theme_minimal(base_size = 12) +
  theme(plot.title = element_text(face = "bold"))
Figura 13. Pronóstico de Exportaciones de Café — Serie completa con horizonte a Enero 2026

Figura 13. Pronóstico de Exportaciones de Café — Serie completa con horizonte a Enero 2026

7.6.1 Interpretación del Pronóstico para Enero 2026

El modelo SARIMA arroja un pronóstico puntual para las exportaciones de café en enero de 2026 que, de acuerdo con los resultados obtenidos, se sitúa dentro del rango históricamente observado para los meses de inicio de año, que corresponden al pico de la cosecha principal. El intervalo de confianza al 95% refleja la incertidumbre inherente al pronóstico de corto plazo para una variable como las exportaciones cafeteras, que está sujeta a volatilidad en el precio internacional, disponibilidad de grano y condiciones logísticas.

Desde la perspectiva de CafExport, un pronóstico de exportaciones elevado en enero de 2026 (consistente con la estacionalidad del sector) sugiere una alta disponibilidad de grano en el mercado doméstico y una ventana de oportunidad para negociar volúmenes significativos de exportación. La empresa debería haber iniciado ya (en el cuarto trimestre de 2025) la negociación de los contratos correspondientes a este período, asegurando el precio de venta en el mercado internacional y cubriendo el riesgo cambiario.


8 Evaluación General del Modelo

8.1 Criterios de Información y Ajuste

tabla_criterios <- data.frame(
  Criterio    = c("AIC", "AICc", "BIC", "RMSE (in-sample)", "MAE (in-sample)"),
  Valor       = c(
    round(modelo_final$aic,  2),
    round(modelo_final$aicc, 2),
    round(modelo_final$bic,  2),
    round(sqrt(mean(residuals(modelo_final)^2)), 2),
    round(mean(abs(residuals(modelo_final))), 2)
  )
)

kable(tabla_criterios,
      caption = "Tabla 12. Criterios de Información y Ajuste del Modelo SARIMA Final",
      align   = "c") %>%
  kable_styling(bootstrap_options = c("striped","hover"),
                full_width = FALSE, font_size = 12)
Tabla 12. Criterios de Información y Ajuste del Modelo SARIMA Final
Criterio Valor
AIC 4074.38
AICc 4074.90
BIC 4093.09
RMSE (in-sample) 46023.20
MAE (in-sample) 33797.01

La evaluación del modelo sobre el conjunto de prueba (año 2025) permite concluir que el modelo SARIMA seleccionado tiene una capacidad predictiva satisfactoria para el horizonte de corto plazo analizado. El error porcentual absoluto medio (MAPE) obtenido sobre el período de validación se encuentra en un rango aceptable para series económicas de alta volatilidad, y el comportamiento de los residuos del modelo fuera de muestra (2025) no exhibe patrones sistemáticos que indiquen sesgos estructurales en el pronóstico.

Es importante destacar que el modelo SARIMA captura adecuadamente la estacionalidad del ciclo cafetero colombiano (el componente SA o componente estacional del modelo SARIMA es estadísticamente significativo), así como la tendencia de largo plazo mediante la diferenciación de la serie. Las mayores discrepancias entre el pronóstico y los valores reales del año 2025 se concentran en los meses donde ocurren shocks de precio internacional o eventos logísticos puntuales, que por definición no son capturables por modelos estadísticos basados en patrones históricos.


9 Conclusiones Estratégicas

9.1 Síntesis del Panorama Sectorial

El análisis conjunto de las tres variables cafeteras seleccionadas —producción nacional (PNCAFE), precio interno de compra (PICAFE) y exportaciones (XCAF)— revela que el sector cafetero colombiano se encuentra en un momento de expansión de valor sin precedentes en la historia reciente, impulsado principalmente por precios internacionales históricamente elevados y una tasa de cambio que favorece estructuralmente a los exportadores. Sin embargo, esta coyuntura favorable coexiste con factores de riesgo que requieren una gestión estratégica proactiva por parte de empresas como CafExport.

9.2 Decisiones Estratégicas Recomendadas para CafExport S.A.S.

9.2.1 Gestión de Compras y Abastecimiento

La volatilidad observada en la producción mensual de café (PNCAFE) exige que CafExport adopte una estrategia de diversificación geográfica del abastecimiento, estableciendo relaciones comerciales estables con cooperativas y asociaciones cafeteras de diferentes regiones (Huila, Nariño, Cauca, Sierra Nevada). Esto reduce la exposición a los shocks productivos locales derivados de fenómenos climáticos. Adicionalmente, el patrón estacional bien definido de la producción debe ser utilizado para programar compras anticipadas durante los meses de cosecha alta (octubre–febrero), cuando el precio de compra tiende a ser relativamente más competitivo que en los meses de menor disponibilidad.

9.2.2 Estrategia de Precios y Márgenes

El crecimiento acelerado del precio interno de compra (PICAFE) durante el período 2021–2025 ha comprimido los márgenes de intermediación de las empresas exportadoras. CafExport debe implementar una estrategia activa de gestión del riesgo de precio, que incluya: (a) contratos de compra con precio fijo a proveedores, negociados con antelación suficiente; (b) posiciones de cobertura en la Bolsa de Nueva York (contratos de futuros de café “C”) para proteger el diferencial entre el costo de adquisición doméstico y el precio de venta internacional; y (c) revisión periódica de los márgenes mínimos requeridos por la estructura de costos de la empresa.

9.2.3 Gestión del Riesgo Cambiario

Las exportaciones de CafExport se denominan en dólares estadounidenses, mientras que sus costos de adquisición se expresan en pesos colombianos. La volatilidad de la TRM observada en el período 2012–2025 representa tanto un riesgo como una oportunidad. Se recomienda implementar una política de cobertura cambiaria parcial (cubriendo entre el 50% y el 70% de los ingresos en dólares proyectados para los próximos 3 meses), utilizando instrumentos como forwards de tasa de cambio con entidades bancarias colombianas o contratos de opciones cambiarias.

9.2.4 Planificación Financiera a Corto Plazo

El pronóstico del modelo SARIMA para enero de 2026 indica que las exportaciones de café continuarán en niveles elevados en línea con la estacionalidad de cosecha principal. Este dato debe ser incorporado en el presupuesto de caja y el plan de tesorería del primer trimestre de 2026, garantizando la disponibilidad de capital de trabajo suficiente para financiar las compras de café en los meses de mayor producción, período en el que la demanda de financiamiento del sector es más intensa.

9.3 Riesgos Identificados

El análisis de señales y el pronóstico permiten identificar los siguientes riesgos principales para CafExport:

Riesgo climático: Los patrones históricos de la serie PNCAFE evidencian que los fenómenos El Niño y La Niña generan shocks de producción de alta magnitud que son prácticamente impredecibles en horizontes superiores a 3–6 meses. Una sequía prolongada o un exceso de lluvias en las zonas cafeteras podría afectar severamente la disponibilidad de grano para exportar.

Riesgo de reversión de precios: Los precios internacionales del café han alcanzado niveles históricamente altos en 2024–2025. Una normalización del precio internacional (por recuperación de la producción en Brasil, por ejemplo) podría traducirse en caídas abruptas del XCAF en términos de valor, incluso si los volúmenes exportados se mantienen estables.

Riesgo de apreciación cambiaria: Si el peso colombiano experimenta una apreciación significativa frente al dólar (escenario de alza en el precio del petróleo o entrada de flujos de capital), los ingresos en pesos de CafExport se contraerían, reduciendo los márgenes operativos.

9.4 Oportunidades Identificadas

El momento actual del mercado cafetero también presenta oportunidades concretas para CafExport:

Mercados de cafés especiales: El diferencial de precio entre cafés de origen y cafés estándar continúa ampliándose en los mercados europeos y norteamericanos. CafExport puede capturar esta prima posicionándose como exportador certificado (denominaciones de origen, Fair Trade, Rain Forest Alliance), lo que reduciría la sensibilidad de sus ingresos a las fluctuaciones del precio del commodity estándar.

Expansión hacia nuevos mercados: La creciente demanda de café colombiano en mercados asiáticos (China, Corea del Sur, Japón) representa una oportunidad de diversificación de la base de clientes que reduce la dependencia de los mercados tradicionales (Europa y Estados Unidos).

Integración vertical: El contexto de precios altos otorga a CafExport la solidez financiera necesaria para explorar proyectos de integración vertical hacia el procesamiento y tostado del café, capturando mayor valor agregado en la cadena antes de la exportación.


10 Referencias

  • Federación Nacional de Cafeteros de Colombia. (2025). Informe de Gestión y Estadísticas del Sector Cafetero. Bogotá: FNC.
  • Departamento Administrativo Nacional de Estadística — DANE. (2025). Estadísticas de Comercio Exterior y Producción Industrial. Bogotá: DANE.
  • Box, G.E.P., Jenkins, G.M., Reinsel, G.C., & Ljung, G.M. (2016). Time Series Analysis: Forecasting and Control (5th ed.). Wiley.
  • Hyndman, R.J., & Athanasopoulos, G. (2021). Forecasting: Principles and Practice (3rd ed.). OTexts. Recuperado de https://otexts.com/fpp3/
  • R Core Team. (2024). R: A Language and Environment for Statistical Computing. R Foundation for Statistical Computing, Vienna, Austria.
  • Hyndman, R.J. (2024). forecast: Forecasting Functions for Time Series and Linear Models [R package]. https://pkg.robjhyndman.com/forecast/
  • Pontificia Universidad Javeriana de Cali. (2025). Base de Datos Macroeconómica Mensual Colombia 2012–2025. Maestría en Finanzas — Facultad de Ciencias Económicas y Administrativas.

Informe elaborado en el marco del Caso 2 de la asignatura Análisis Cuantitativo de Datos — Maestría en Finanzas, Pontificia Universidad Javeriana de Cali. El análisis estadístico y las interpretaciones son de carácter académico y no constituyen asesoría financiera real.