El siguiente entrenamiento es una traducción del trabajo de Rami Krispin (2019), Time Series Analysis and Forecasting with the TSstudio Package; con una base de datos distinta. Se utilizará la librería TSstudio (Versión 0.1.6) para realizar exploración de datos y elaborar pronósticos a través de los modelos ARIMA, SARIMA, ETS y TSLM. Para completar el entrenamiento, se visualizarán los resultados en gráficos interactivos que permiten tener un acercamiento directo a los datos y al detalle, además se podrá realizar observaciones en las distintas regiones de la serie. Los datos utilizados pertenecen a las ventas en volumen (unidades) de una cadena de tiendas al detal en Venezuela para el período 2014-2019.
TSstudio
El paquete a utilizar será TSstudio el cual proporciona una serie de herramientas potentes para el análisis descriptivo y predictivo en datos de tipo temporal. Incluye funciones de preprocesamiento de datos para series temporales, visualizaciones interactivas de la librería plotly, así como configuraciones de herramientas para entrenar y evaluar en un ambiente dinámico modelos de pronósticos, contiene las funciones de forecast, forecast hybrid y bsts.
La serie temporal está compuesta por los datos de ventas en volumen de una cadena de tiendas al detal con presencia en las principales ciudades de Venezuela, a la que denominaremos empresa “X”. El período seleccionado para el entrenamiento será 2014-2019 y para los pronósticos un horizonte a 12 meses. El comportamiento de los datos se analizará bajo la perspectiva de la economía venezolana. Según datos de la CEPAL [2], al cierre del 2019 la economía tuvo una contracción en su Producto Interior Bruto (PIB) del 25%, el acumulado desde el 2013 al 2019 totalizó un decrecimiento del 62%. En la esfera monetaria, se diagnosticó hiperinflación a finales del 2017, en ese sentido, el INPC anualizado a septiembre del 2019 se ubicó en 39.113%. Finalmente, en dicho informe, se estimó una fuerte caída de los ingresos petroleros cercana al 36% con respecto al 2018. En la esfera cambiaria, se espera una depreciación del tipo de cambio de 4.900%. Para completar la escena, el país se caracteriza por inestabilidad social y política en conjunto con fuertes sanciones financieras externas que limitan el margen de maniobra del Estado. Todo esto como telón de fondo para ubicar a la empresa “X” en un mercado atomizado con presencia de nichos de diferenciación oligopólica.
El objetivo del análisis exploratorio es identificar las características clave de la serie con el uso de métodos de análisis descriptivo.
En el entrenamiento buscamos detectar:
Patrón estacional: Simple o múltiple.
Tipo de tendencia: Lineal, exponencial, polinómica.
Roturas estructurales y valores atípicos.
Cualquier otro patrón en la serie.
Esta información proporciona una amplia comprensión del pasado y puede utilizarse para pronosticar el futuro. En el caso particular de Venezuela es complejo realizar pronósticos a largo plazo por la naturaleza misma del hábitat económico o entorno que rodea a los datos, lo que representa un reto extra para elaboración de estimaciones.
Los tres componentes principales de toda serie de tiempo son: los componentes de tendencia, estacionales y aleatorios. La función ts_decompose proporciona una inferencia interactiva para la función de descomposición. A menudo, esto se usa para ayudar a mejorar la comprensión en series de tiempo, pero también se puede usar para mejorar la precisión del pronóstico.
Se puede observar tanto en la serie como en los gráficos de descomposición, que la serie tiene un patrón estacional fuerte junto con una tendencia no lineal. Se utilizarán las funciones ts_seasonal y ts_heatmap para explorar el patrón estacional de la serie:
En el gráfico se podrá verificar lo observado en la descomposición de la serie. Un fuerte componente estacional y una tendencia no lineal. La función Ts_seasonal proporciona tres vistas diferentes de la estacionalidad de la serie:
El primer ciclo de trazado de la serie es mensual y cumple el año completo. La vista permite comparar la variación de cada unidad de frecuencia (mes) de año en año.
En el caso de las series mensuales cada linea representa un mes de ventas a lo largo del tiempo. Permite verificar si el patrón estacional permanece igual en el tiempo.
Al final aparecen los diagramas de caja. Son unos gráficos que permiten visualizar la distribución de datos en cada unidad de frecuencia.
La estructura del patrón estacional al eliminar la tendencia se mantiene de la siguiente manera: Decrecimiento de enero a junio y crecimiento de julio a diciembre.
Ese comportamiento puede estar relacionado con un aumento del ingreso durante el segundo semestre del año por incrementos de salario, sumado a vacaciones colectivas remuneradas y utilidades o prestaciones de fin de año.
En general, se han venido deteriorando los niveles de ventas en la evolución del histórico, motivado entre otros factores a la grave coyuntura económica que tiene el país en su último quinquenio.
Añadiremos un mapa de calor para visualizar el patrón estacional desde otra perspectiva.
Mapa de calor
Un mapa de calor es una técnica de visualización de datos que muestra la magnitud de un fenómeno como color en dos dimensiones. Los colores intensos indican un valor más alto. En la gráfica se aprecia como el decrecimiento de las ventas se aceleró a partir del 2016.
El siguiente paso es identificar el nivel de correlación entre la serie y sus retrasos, utilizando la función ts_cor una interfaz interactiva para la función.
Se presume que la serie presenta una correlación con sus rezagos, es decir, dependencia entre ellos. Una forma más intuitiva de revisar la identificación de la relación entre la serie y sus rezagos es con la función ts_lags, veamos los gráficos que proporciona.
Al igual que con la función ts_cor, se puede observar que el rezago uno (1) y el dos (2) de la serie tiene una fuerte correlación lineal. Del mismo modo, podemos acercarnos a los rezagos estacionales de la serie utilizando el argumento de los retrasos:
Con todas las observaciones realizadas se diseñará un entrenamiento utilizando dos enfoques: El tradicional y el Backtesting. Seleccionando el que mejor se desempeñe en el conjunto de pruebas.
El enfoque tradicional divide la serie en particiones de capacitación y prueba (muestra). Entrena a cada modelo en el conjunto de entrenamiento y se evalúa el desempeño en el conjunto de pruebas. Se utilizarán los modelos: ARIMA, SARIMA, ETS y TSLM.
El enfoque de Backtesting utiliza una ventana expansiva para entrenar y probar cada modelo en múltiples conjuntos de entrenamiento y prueba.
Para la ruptura de la serie se utilizará una bandera (flag) binaria con un valor de 0 para cualquier observación antes del 2016 y 1 después.
ARIMA: Modelo Autorregresivo Integrado de Promedio Móvil que aplicaremos a través de la función auto.arima.
ETS: Estima un modelo de pronóstico de series temporales univariantes utilizando un método de suavizado exponencial. Se aplica con la función ETS (error, tendencia y componente estacional).
TSLM: Modelo de regresión lineal para series temporales.
Se recomienda diversificar el enfoque de modelado. El rendimiento de los modelos puede cambiar según la estructura de datos y los parámetros de ajuste. Se divide la serie en particiones de entrenamiento y prueba.
Información de entrenamiento (training) y prueba (test)
Training
El modelo se ajusta a los cambios en la tendencia pero no logra capturar los picos estacionales. La tasa de error (MAPE) en el conjunto de prueba (test) es más del doble que la del conjunto de entrenamiento (43%) (training). Posible sobreajuste.
## ME RMSE MAE MPE MAPE
## Training set -82.13979 556.855 383.9783 -2.608326 13.84001
## Test set -392.41103 435.644 392.4110 -43.645006 43.64501
## MASE ACF1 Theil's U
## Training set 0.2263472 -0.0493298 NA
## Test set 0.2313181 0.1821370 3.161741
## ME RMSE MAE MPE MAPE
## Training set -61.40921 506.7398 365.2970 -3.409075 11.90957
## Test set -717.56487 757.7077 717.5649 -88.479636 88.47964
## MASE ACF1 Theil's U
## Training set 0.2153350 -0.03604148 NA
## Test set 0.4229895 0.69697855 6.156051
No captura los picos ni la estructura de tendencia. Resultado del manejo de errores por encima del SARIMA, el TSLM obtiene una tasa de error alta del 85% en el conjunto de pruebas.
Aplicaremos la ruptura estructural agregando la variable flag que preparamos antes.
## ME RMSE MAE MPE MAPE
## Training set -3.881386e-15 1069.5895 858.5997 -7.580223 26.88832
## Test set 8.132139e+02 877.8898 813.2139 85.610982 85.61098
## MASE ACF1 Theil's U
## Training set 0.5061266 0.8757935 NA
## Test set 0.4793727 0.5699836 6.143616
## ME RMSE MAE MPE MAPE
## Training set 4.551406e-14 884.0708 697.6263 -6.503608 20.34271
## Test set -4.156753e+02 531.1869 415.6753 -54.033866 54.03387
## MASE ACF1 Theil's U
## Training set 0.4112362 0.7131667 NA
## Test set 0.2450319 0.5699836 3.831884
## ME RMSE MAE MPE MAPE
## Training set 1.515778e-13 1066.328 860.3846 -7.377058 28.18054
## Test set 1.127234e+03 1197.111 1127.2340 119.660207 119.66021
## MASE ACF1 Theil's U
## Training set 0.5071788 0.8794995 NA
## Test set 0.6644810 0.6325127 8.3801
Se observa en el correlograma que se logra el decrecimiento de los órdenes del polinomio puro, con alternancia de valores positivos y negativos. Estabilizado en media, y una distribución de errores que no es normal. Del mismo modo, queda correlación entre los rezagos de los residuos de la serie. Se podrían utilizar otros regresores para optimizar el modelo. No obstante, por razones de tiempo en el taller seguiremos con el SARIMA como ejemplo.
Para finalizar con el enfoque tradicional se realizarán los pronósticos para 12 meses del modelo SARIMA con intérvalos de confianza del 80% y 95%.
La ventaja del enfoque backtesting sobre el enfoque tradicional, es que proporciona una visión general del rendimiento de cada modelo. Permite identificar, además de la precisión, la estabilidad del rendimiento del modelo en distintas particiones temporales. Es un tipo especial de validación cruzada.