Grupo Nutresa es uno de los principales conglomerados de alimentos procesados en Colombia, con operaciones en múltiples países de América Latina. Su modelo de negocio se basa en la producción, distribución y comercialización de alimentos, lo que lo ubica en la intersección entre la actividad industrial y el consumo de los hogares.
El desempeño de la compañía está directamente influenciado por el comportamiento de la economía, tanto desde el lado de la producción como de la demanda, así como por la dinámica del comercio exterior, dado su proceso de internacionalización.
Para el análisis del sector manufacturero, se seleccionaron tres variables clave: Índice de Producción Industrial Regional(IPIR), Ventas minoristas (MIN), Exportaciones totales (X):
IPIR (Producción industrial): Se selecciona como variable principal porque refleja el nivel de actividad del sector manufacturero, en el cual opera directamente Grupo Nutresa. Este indicador permite capturar la dinámica productiva del país y su evolución en el tiempo, siendo altamente relevante para el análisis del desempeño industrial.
MIN (Ventas minoristas): Representa el comportamiento del consumo de los hogares. Dado que los productos de Nutresa están orientados al consumo masivo, esta variable permite analizar la demanda interna y su impacto sobre la comercialización de productos.
X (Exportaciones totales): Permite incorporar el componente externo del análisis. Grupo Nutresa tiene presencia internacional, por lo que el comportamiento de las exportaciones refleja la demanda externa y la integración del sector en mercados internacionales.
Con estas variables se busca responder: ¿Qué está pasando en el sector?, ¿Qué tendencias vienen?, ¿Cómo debería reaccionar la empresa?
Gráfico inicial de la variable 1 en niveles -Original
Extracción señales variable 1
Extracción señales variable 2
Extracción señales variable 3
Después de la descomposición temporal de cada variable, se extrae la variable ajustada por estacionalidad para graficarla junto con la serie original:
Gráfico serie original VS ajustada Variable 1
Gráfico serie original VS ajustada Variable 2
Gráfico serie original VS ajustada Variable 3
Serie original vs tendencia
Tendencia Variable 1
Tendencia Variable 2
Tendencia Variable 3
Tasa de crecimiento de la serie de tendencia y original para la variable 1
## [1] 156
## [1] 156
## [1] 156
*Gráfico variable original y tendencia variable 1: tasa de crecimiento anual**
Ahora calculamos la tasa de crecimiento de la serie original vs tendencia: variable 2
## [1] 156
## [1] 156
## [1] 156
Ahora calculamos la tasa de crecimiento de la serie original vs tendencia: variable 3
## [1] 156
## [1] 156
## [1] 156
Analizar la tasa de crecimiento anual ayuda a detectar cambios en el entorno económico que afectan el sector. Se pueden prever crisis o períodos de auge y prepararse para ellos.
División en conjunto de entrenamiento y prueba para la variable 1 que es la elegida para pronosticar
El código siguiente divide una serie temporal (variable1_ts) en dos subconjuntos:
Conjunto de entrenamiento (train): Datos desde enero de 2012 hasta septiembre de 2024. Conjunto de prueba (test): Datos desde octubre de 2024 hasta diciembre de 2025.
Esto se hace para evaluar el desempeño de modelos de predicción en datos no vistos.
## [1] 164
## [1] 4
Identificación automática del modelo ARIMA
## Series: train_ts
## ARIMA(1,1,1)
##
## Coefficients:
## ar1 ma1
## 0.5400 -0.8851
## s.e. 0.1015 0.0579
##
## sigma^2 = 37.04: log likelihood = -524.96
## AIC=1055.91 AICc=1056.06 BIC=1065.19
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE
## Training set 0.6504328 6.030507 4.478549 0.2960656 4.573691 0.8215772
## ACF1
## Training set -0.04382636
Estimación del modelo identificado automatico y validación de Significancia de coeficientes
##
## z test of coefficients:
##
## Estimate Std. Error z value Pr(>|z|)
## ar1 0.539991 0.101546 5.3177 1.051e-07 ***
## ma1 -0.885071 0.057924 -15.2798 < 2.2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Series: train_ts
## ARIMA(1,1,1)
##
## Coefficients:
## ar1 ma1
## 0.5400 -0.8851
## s.e. 0.1015 0.0579
##
## sigma^2 = 37.04: log likelihood = -524.96
## AIC=1055.91 AICc=1056.06 BIC=1065.19
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE
## Training set 0.6504328 6.030507 4.478549 0.2960656 4.573691 0.8215772
## ACF1
## Training set -0.04382636
Validación de residuales o errores del modelo
##
## Ljung-Box test
##
## data: Residuals from ARIMA(1,1,1)
## Q* = 78.99, df = 22, p-value = 2.373e-08
##
## Model df: 2. Total lags used: 24
Pronóstico modelo ARIMA automático dentro de muestra o en el set de prueba
Pronóstico automático dentro del set de prueba como tabla
## Tiempo Observado Pronosticado
## 1 2025.667 117.6000 114.6479
## 2 2025.750 120.4760 114.1107
## 3 2025.833 115.4923 113.8206
## 4 2025.917 113.6208 113.6640
Ahora pronosticamos con el modelo automatico fuera del periodo de análisis, es decir enero 2025
Es decir, le sumamos al periodo de prueb auna observación más. Es decir, se estan pronosticando 4 observaciones o trimestres.
## Tiempo Pronostico
## 1 2025.667 114.6479
## 2 2025.750 114.1107
## 3 2025.833 113.8206
## 4 2025.917 113.6640
## 5 2026.000 113.5794
## [1] "Pronóstico para enero 2025: 2026 = 113.579422292953"
Este modelo podria ser una solución o mejora al modelo arima tradicional ya que recoge el efecto estacional de las variables, es recomendable por tanto para datos que si tienen un componente estacional fuerte.
El modelo ajustado en este ejemplo es un SARIMA(0,1,1)(1,0,0)[12], lo que significa:
(0,1,1): Parte ARIMA no estacional: 0 términos autorregresivos (AR). 1 diferenciación (d), lo que indica que la serie fue diferenciada una vez para hacerla estacionaria. 1 término de media móvil (MA).
(1,0,0)[12]: Parte estacional con periodicidad 12 (mensual si los datos son mensuales): 1 término autorregresivo estacional (SAR). 0 diferenciaciones estacionales. 0 términos de media móvil estacionales (SMA).
El modelo SARIMA(0,1,1)(1,0,0)[12] sugiere que:
Identificación dautomática del modelo SARIMA
## Series: train_ts
## ARIMA(0,1,1)(1,0,0)[12]
##
## Coefficients:
## ma1 sar1
## -0.4891 0.4805
## s.e. 0.0801 0.0693
##
## sigma^2 = 30.33: log likelihood = -510.08
## AIC=1026.15 AICc=1026.3 BIC=1035.43
A continuación, se crea el objeto darima para luego poder graficar los valores reales y observados:
## Series: train_ts
## ARIMA(0,1,1)(1,0,0)[12]
##
## Coefficients:
## ma1 sar1
## -0.4891 0.4805
## s.e. 0.0801 0.0693
##
## sigma^2 = 30.33: log likelihood = -510.08
## AIC=1026.15 AICc=1026.3 BIC=1035.43
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE
## Training set 0.2224976 5.456477 3.815057 -0.04373871 3.960229 0.6998615
## ACF1
## Training set 0.04831234
Validación de residuales del modelo automatico SARIMA
En el correlograma de residuos siguiente se observa que, mejora la correlación de los residuos frente a lso dos modelos anteriores. Sin embargo, al comparar los valores reales VS pronosticados se determina una poca coincidencia. Sigue funcionando mejor el modelo automatico (4,1,2)
##
## Ljung-Box test
##
## data: Residuals from ARIMA(0,1,1)(1,0,0)[12]
## Q* = 31.518, df = 22, p-value = 0.08598
##
## Model df: 2. Total lags used: 24
Pronóstico con el modelo SARIMA dentro del set de prueba-Gráfico líneas
Pronóstico del modelo automático SARIMA en el set de prueba-Tabla
## Tiempo Observado Pronosticado
## 1 2025.667 117.6000 115.2487
## 2 2025.750 120.4760 118.4109
## 3 2025.833 115.4923 116.6686
## 4 2025.917 113.6208 116.4734
Pronóstico del modelo automático SARIMA fuera de muestra, es decir, en enero 2025
Es decir, le sumamos al periodo de prueba una observación más. Es decir, se estan pronosticando 4 observaciones o meses.
## Tiempo Pronostico
## 1 2025.667 115.2487
## 2 2025.750 118.4109
## 3 2025.833 116.6686
## 4 2025.917 116.4734
## 5 2026.000 112.5065
## [1] "Pronóstico para enero 2025: 2026 = 112.506463663407"
Conclusión: