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] 134
## [1] 34
Identificación automática del modelo ARIMA
## Series: train_ts
## ARIMA(0,1,4) with drift
##
## Coefficients:
## ma1 ma2 ma3 ma4 drift
## -0.3203 -0.3066 0.0658 -0.2379 0.2154
## s.e. 0.0908 0.0966 0.1453 0.1005 0.1148
##
## sigma^2 = 39.17: log likelihood = -430.57
## AIC=873.14 AICc=873.81 BIC=890.49
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE
## Training set 0.03947725 6.11724 4.362369 -0.3924791 4.599755 0.7812209
## ACF1
## Training set 0.003141624
Estimación del modelo identificado automatico y validación de Significancia de coeficientes
##
## z test of coefficients:
##
## Estimate Std. Error z value Pr(>|z|)
## ma1 -0.320252 0.090840 -3.5255 0.0004227 ***
## ma2 -0.306646 0.096588 -3.1748 0.0014995 **
## ma3 0.065805 0.145276 0.4530 0.6505758
## ma4 -0.237854 0.100514 -2.3664 0.0179633 *
## drift 0.215378 0.114762 1.8767 0.0605542 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Series: train_ts
## ARIMA(0,1,4)
##
## Coefficients:
## ma1 ma2 ma3 ma4
## -0.2976 -0.2831 0.0864 -0.2183
## s.e. 0.0901 0.0963 0.1428 0.0977
##
## sigma^2 = 39.66: log likelihood = -431.78
## AIC=873.55 AICc=874.03 BIC=888.01
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE
## Training set 0.7592927 6.179199 4.547686 0.3702771 4.76254 0.8144077
## ACF1
## Training set -0.01448305
Validación de residuales o errores del modelo
##
## Ljung-Box test
##
## data: Residuals from ARIMA(0,1,4)
## Q* = 60.826, df = 20, p-value = 5.302e-06
##
## Model df: 4. 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 2023.167 120.2487 114.0421
## 2 2023.250 107.7626 114.5469
## 3 2023.333 116.5034 117.1550
## 4 2023.417 112.3158 117.8810
## 5 2023.500 112.1142 118.0964
## 6 2023.583 116.7636 118.3118
## 7 2023.667 116.6099 118.5272
## 8 2023.750 117.1116 118.7425
## 9 2023.833 116.2565 118.9579
## 10 2023.917 112.2879 119.1733
## 11 2024.000 104.0787 119.3887
## 12 2024.083 107.8316 119.6040
## 13 2024.167 106.8041 119.8194
## 14 2024.250 111.8613 120.0348
## 15 2024.333 112.3880 120.2502
## 16 2024.417 106.7647 120.4656
## 17 2024.500 114.3399 120.6809
## 18 2024.583 114.4751 120.8963
## 19 2024.667 111.7730 121.1117
## 20 2024.750 118.3544 121.3271
## 21 2024.833 114.7283 121.5424
## 22 2024.917 114.3219 121.7578
## 23 2025.000 106.0656 121.9732
## 24 2025.083 106.7854 122.1886
## 25 2025.167 112.3091 122.4040
## 26 2025.250 108.2944 122.6193
## 27 2025.333 116.0095 122.8347
## 28 2025.417 108.9988 123.0501
## 29 2025.500 121.2317 123.2655
## 30 2025.583 115.6427 123.4808
## 31 2025.667 117.6000 123.6962
## 32 2025.750 120.4760 123.9116
## 33 2025.833 115.4923 124.1270
## 34 2025.917 113.6208 124.3424
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 2023.167 114.0421
## 2 2023.250 114.5469
## 3 2023.333 117.1550
## 4 2023.417 117.8810
## 5 2023.500 118.0964
## 6 2023.583 118.3118
## 7 2023.667 118.5272
## 8 2023.750 118.7425
## 9 2023.833 118.9579
## 10 2023.917 119.1733
## 11 2024.000 119.3887
## 12 2024.083 119.6040
## 13 2024.167 119.8194
## 14 2024.250 120.0348
## 15 2024.333 120.2502
## 16 2024.417 120.4656
## 17 2024.500 120.6809
## 18 2024.583 120.8963
## 19 2024.667 121.1117
## 20 2024.750 121.3271
## 21 2024.833 121.5424
## 22 2024.917 121.7578
## 23 2025.000 121.9732
## 24 2025.083 122.1886
## 25 2025.167 122.4040
## 26 2025.250 122.6193
## 27 2025.333 122.8347
## 28 2025.417 123.0501
## 29 2025.500 123.2655
## 30 2025.583 123.4808
## 31 2025.667 123.6962
## 32 2025.750 123.9116
## 33 2025.833 124.1270
## 34 2025.917 124.3424
## 35 2026.000 124.5577
## [1] "Pronóstico para enero 2025: 2026 = 124.557730618166"
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(1,1,1)(2,0,0)[12]
##
## Coefficients:
## ar1 ma1 sar1 sar2
## 0.4545 -0.8185 0.3467 0.1637
## s.e. 0.1799 0.1269 0.0900 0.0985
##
## sigma^2 = 32.56: log likelihood = -419.94
## AIC=849.89 AICc=850.36 BIC=864.34
A continuación, se crea el objeto darima para luego poder graficar los valores reales y observados:
## Series: train_ts
## ARIMA(1,1,1)(2,0,0)[12]
##
## Coefficients:
## ar1 ma1 sar1 sar2
## 0.4545 -0.8185 0.3467 0.1637
## s.e. 0.1799 0.1269 0.0900 0.0985
##
## sigma^2 = 32.56: log likelihood = -419.94
## AIC=849.89 AICc=850.36 BIC=864.34
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE ACF1
## Training set 0.468532 5.598699 3.873359 0.141165 4.090038 0.693648 -0.007586797
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(1,1,1)(2,0,0)[12]
## Q* = 24.66, df = 20, p-value = 0.2147
##
## Model df: 4. 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 2023.167 120.2487 119.4399
## 2 2023.250 107.7626 116.8869
## 3 2023.333 116.5034 116.2980
## 4 2023.417 112.3158 119.5030
## 5 2023.500 112.1142 122.1173
## 6 2023.583 116.7636 124.8845
## 7 2023.667 116.6099 124.1465
## 8 2023.750 117.1116 124.0130
## 9 2023.833 116.2565 124.0098
## 10 2023.917 112.2879 122.6949
## 11 2024.000 104.0787 116.9322
## 12 2024.083 107.8316 117.7907
## 13 2024.167 106.8041 122.9436
## 14 2024.250 111.8613 120.8268
## 15 2024.333 112.3880 121.5018
## 16 2024.417 106.7647 122.2491
## 17 2024.500 114.3399 123.5720
## 18 2024.583 114.4751 125.6493
## 19 2024.667 111.7730 125.0187
## 20 2024.750 118.3544 124.8302
## 21 2024.833 114.7283 124.7665
## 22 2024.917 114.3219 123.6527
## 23 2025.000 106.0656 119.7907
## 24 2025.083 106.7854 120.3554
## 25 2025.167 112.3091 123.6091
## 26 2025.250 108.2944 122.4573
## 27 2025.333 116.0095 122.5949
## 28 2025.417 108.9988 123.3787
## 29 2025.500 121.2317 124.2653
## 30 2025.583 115.6427 125.4384
## 31 2025.667 117.6000 125.0990
## 32 2025.750 120.4760 125.0118
## 33 2025.833 115.4923 124.9892
## 34 2025.917 113.6208 124.3878
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 2023.167 119.4399
## 2 2023.250 116.8869
## 3 2023.333 116.2980
## 4 2023.417 119.5030
## 5 2023.500 122.1173
## 6 2023.583 124.8845
## 7 2023.667 124.1465
## 8 2023.750 124.0130
## 9 2023.833 124.0098
## 10 2023.917 122.6949
## 11 2024.000 116.9322
## 12 2024.083 117.7907
## 13 2024.167 122.9436
## 14 2024.250 120.8268
## 15 2024.333 121.5018
## 16 2024.417 122.2491
## 17 2024.500 123.5720
## 18 2024.583 125.6493
## 19 2024.667 125.0187
## 20 2024.750 124.8302
## 21 2024.833 124.7665
## 22 2024.917 123.6527
## 23 2025.000 119.7907
## 24 2025.083 120.3554
## 25 2025.167 123.6091
## 26 2025.250 122.4573
## 27 2025.333 122.5949
## 28 2025.417 123.3787
## 29 2025.500 124.2653
## 30 2025.583 125.4384
## 31 2025.667 125.0990
## 32 2025.750 125.0118
## 33 2025.833 124.9892
## 34 2025.917 124.3878
## 35 2026.000 122.1056
## [1] "Pronóstico para enero 2025: 2026 = 122.105580447477"
Conclusión: