Instalar/Cargar librerias necesarias para el análisis
Cargar base de datos
PASO INDISPENSABLE: Declarar la (s) variable (s) como serie (s) temporal (es):
Variable 1
Variable 2
Variable 3
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:
Se crea la variable1 ajustada por estacionalidad
Se crea la variable2 ajustada por estacionalidad
Se crea la variable3 ajustada por estacionalidad
Ahora si se puede graficar las series originales versus la ajustada por estacionalidad
Gráfico serie original VS ajustada Variable 1
Gráfico serie original VS ajustada Variable 2
Gráfico serie original VS ajustada Variable 3
Ahora graficamos serie original vs tendencia
Primero se debe obtener la tendencia de cada variable y luego graficarla
Tendencia Variable 1
Tendencia Variable 2
Tendencia Variable 3
Ahora calculamos la tasa de crecimiento de la serie original vs tendencia:
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 2024.
Esto se hace para evaluar el desempeño de modelos de predicción en datos no vistos.
Identificación automática del modelo ARIMA
## Series: train_ts
## ARIMA(4,1,2) with drift
##
## Coefficients:
## ar1 ar2 ar3 ar4 ma1 ma2 drift
## -0.3909 0.4191 0.0490 -0.2738 -0.1767 -0.4442 3.2478
## s.e. 0.1641 0.1701 0.1216 0.0848 0.1617 0.1337 1.8703
##
## sigma^2 = 5313: log likelihood = -864.45
## AIC=1744.89 AICc=1745.9 BIC=1769.09
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE
## Training set 0.3392507 70.96025 48.58044 -0.1241992 2.710333 0.5746403
## ACF1
## Training set 0.01708419
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.390891 0.164082 -2.3823 0.0172050 *
## ar2 0.419085 0.170053 2.4644 0.0137227 *
## ar3 0.049049 0.121572 0.4035 0.6866129
## ar4 -0.273786 0.084835 -3.2273 0.0012497 **
## ma1 -0.176674 0.161711 -1.0925 0.2745998
## ma2 -0.444185 0.133722 -3.3217 0.0008947 ***
## drift 3.247807 1.870313 1.7365 0.0824747 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Series: train_ts
## ARIMA(4,1,2)
##
## Coefficients:
## ar1 ar2 ar3 ar4 ma1 ma2
## -0.4358 0.3604 0.0263 -0.2763 -0.1113 -0.3975
## s.e. 0.1754 0.1850 0.1216 0.0828 0.1747 0.1354
##
## sigma^2 = 5369: log likelihood = -865.71
## AIC=1745.43 AICc=1746.2 BIC=1766.59
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE
## Training set 8.781554 71.57468 49.60771 0.342712 2.758073 0.5867916
## ACF1
## Training set 0.0008244461
Validación de residuales o errores del modelo
##
## Ljung-Box test
##
## data: Residuals from ARIMA(4,1,2)
## Q* = 51.552, df = 18, p-value = 4.383e-05
##
## Model df: 6. Total lags used: 24
Pronóstico modelo ARIMA automático dentro de muestra o en el set de prueba
Interpretación modelo automatico (4,1,2):El modelo automático (4,1,2) parece pronosticar mejor dentro de prueba. Hay un sobre ajuste, pero se capturan muy bien los puntos de quiebre. Es un modelo tentativo adecuado para pronpostico fuera de muestra o a futuro.
Pronóstico automático dentro del set de prueba como tabla
## Tiempo Observado Pronosticado
## 1 2024.750 2155.514 2126.319
## 2 2024.833 2061.612 2088.713
## 3 2024.917 2085.775 2126.241
## 4 2025.000 2110.975 2110.058
## 5 2025.083 2018.777 2121.641
## 6 2025.167 2174.954 2126.354
## 7 2025.250 2035.961 2122.184
## 8 2025.333 2192.316 2134.674
## 9 2025.417 2118.460 2128.990
## 10 2025.500 2249.288 2138.837
## 11 2025.583 2234.768 2138.247
## 12 2025.667 2207.604 2142.792
## 13 2025.750 2266.162 2146.693
## 14 2025.833 2213.671 2148.234
## 15 2025.917 2218.968 2153.537
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 2024.750 2126.319
## 2 2024.833 2088.713
## 3 2024.917 2126.241
## 4 2025.000 2110.058
## 5 2025.083 2121.641
## 6 2025.167 2126.354
## 7 2025.250 2122.184
## 8 2025.333 2134.674
## 9 2025.417 2128.990
## 10 2025.500 2138.837
## 11 2025.583 2138.247
## 12 2025.667 2142.792
## 13 2025.750 2146.693
## 14 2025.833 2148.234
## 15 2025.917 2153.537
## 16 2026.000 2154.943
## [1] "Pronóstico para enero 2025: 2026 = 2154.94331291707"
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.4755 0.4279
## s.e. 0.0859 0.0729
##
## sigma^2 = 4787: log likelihood = -860.01
## AIC=1726.02 AICc=1726.18 BIC=1735.09
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.4755 0.4279
## s.e. 0.0859 0.0729
##
## sigma^2 = 4787: log likelihood = -860.01
## AIC=1726.02 AICc=1726.18 BIC=1735.09
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE
## Training set 3.099485 68.50635 45.88936 0.06106946 2.564334 0.5428085
## ACF1
## Training set 0.02747744
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* = 29.227, df = 22, p-value = 0.1385
##
## 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 2024.750 2155.514 2098.801
## 2 2024.833 2061.612 2067.649
## 3 2024.917 2085.775 2057.956
## 4 2025.000 2110.975 2064.576
## 5 2025.083 2018.777 2032.200
## 6 2025.167 2174.954 2068.418
## 7 2025.250 2035.961 2051.460
## 8 2025.333 2192.316 2066.896
## 9 2025.417 2118.460 2020.665
## 10 2025.500 2249.288 2066.000
## 11 2025.583 2234.768 2064.054
## 12 2025.667 2207.604 2051.366
## 13 2025.750 2266.162 2059.145
## 14 2025.833 2213.671 2045.816
## 15 2025.917 2218.968 2041.668
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 2024.750 2098.801
## 2 2024.833 2067.649
## 3 2024.917 2057.956
## 4 2025.000 2064.576
## 5 2025.083 2032.200
## 6 2025.167 2068.418
## 7 2025.250 2051.460
## 8 2025.333 2066.896
## 9 2025.417 2020.665
## 10 2025.500 2066.000
## 11 2025.583 2064.054
## 12 2025.667 2051.366
## 13 2025.750 2059.145
## 14 2025.833 2045.816
## 15 2025.917 2041.668
## 16 2026.000 2044.501
## [1] "Pronóstico para enero 2025: 2026 = 2044.5009660821"
Conclusión:
El modelo automático ARIMA(4,1,2) fue el que mejor desempeño mostró en la comparación entre los datos reales y los pronosticados dentro del periodo de prueba (oct.nov.dic2024). Destacó por su mayor precisión en la captura de los puntos de quiebre, lo que lo hace el más confiable.
No obstante, al analizar los residuos de los modelos, se identifican posibles áreas de mejora para robustecer los pronósticos en los tres casos evaluados. Algunas estrategias podrían incluir la aplicación de una transformación logarítmica o trabajar desde el inicio con la serie ajustada por estacionalidad.
By Julieth Cerón