Proyecto de pronóstico de ventas minoristas mediante modelo ARMA
Contexto
Para este proyecto se trabajó con un dataset tomado de Kaggle (https://www.kaggle.com/datasets/tevecsystems/retail-sales-forecasting) concerniente a un conjunto de datos que albergan información histórica sobre ventas de un minorista de renombre en Brasil y engloban una gran cantidad de tiendas. Nota: Se realizaron cambios en los datos para salvaguardar el anonimato del minorista. El diccionario de las variables es el siguiente:
-data: esta columna contiene fechas en el formato "año-mes-día" y muestra la fecha de venta diaria.
-venda: número de ventas diarias.
-estoque: stock o inventario de existencias.
-preco: precio por unidad.
Resumen
El proyecto "Pronóstico de Ventas Minoristas con Modelo ARMA" se enfocó en abordar el desafío de predecir las ventas diarias de un minorista de renombre a través de un enfoque de ciencia de datos y análisis de series temporales. Utilizando un conjunto de datos históricos de ventas, inventario y precios, se implementaron diversas etapas clave para lograr pronósticos potencialmente útiles para la toma de decisiones en el negocio minorista.
El proyecto comenzó con la importación de bibliotecas esenciales y la descripción de los datos disponibles. Se observó que el conjunto de datos contenía información diaria sobre ventas, inventario y precios, con un total de 937 registros. Se realizó una limpieza de datos, eliminando variables no relevantes y asegurando la estacionariedad de la serie temporal.
El análisis se centró en la creación del mejor modelo ARIMA para pronosticar las ventas diarias. Se utilizaron visualizaciones de ACF y PACF, así como una búsqueda automática para identificar los órdenes óptimos del modelo, lo que resultó en un modelo ARMA(1,1,1). Este modelo se ajustó a los datos y se evaluó utilizando diversas métricas, como la Raíz del Error Cuadrático Medio (RMSE) y el Error Absoluto Medio (MAE).
Los resultados mostraron un modelo ARMA sólido que proporciona pronósticos competentes y confiables para las ventas minoristas. El procesamiento de datos, la verificación de la estacionariedad de la serie, la elección adecuada de los órdenes del modelo y la evaluación de las métricas de rendimiento, permiten tomar decisiones informadas en términos de inventario, planificación y estrategia de ventas.
En conclusión, este proyecto demuestra la importancia del análisis moderno de series temporales en el sector minorista. El modelo ARMA implementado proporciona una herramienta valiosa para la gestión de inventario y la optimización de ventas. Los resultados son aplicables en un entorno empresarial real y ofrecen un enfoque sólido para la toma de decisiones basada en datos en el mundo minorista.
1. Procesado de datos para el modelado
1.1 Importación de librerías
Run to view results
Run to view results
En esta etapa inicial del proyecto se importan las librerías necesarias para el procesamiento y modelado de datos de ventas minoristas. Estas librerías incluyen herramientas para el análisis de series temporales, visualización de datos y pruebas estadísticas, que son esenciales para comprender y modelar la serie de tiempo de ventas con un modelo ARMA.
1.2 Carga de datos
Run to view results
Run to view results
Se puede observar que la columna "data" es especialmente importante, ya que representa la variable temporal que se utilizará en el análisis y pronóstico de series temporales con el modelo ARMA. Las columnas "venda," "estoque," y "preco" representan diversas variables explicativas; sin embargo, dado que nos enfocaremos en pronosticar el número de ventas para los siguientes 30 periodos, se utilizarán únicamente la variable "venda (número diario de ventas)" en relación con la variable temporal "data(fecha diaria de ventas)".
1.3 Descripción de datos
Run to view results
El resultado "(937, 4)" indica que el conjunto de datos consta de 937 observaciones de ventas minoristas y una dimensionalidad inicial de 4 variables.
Run to view results
Según el resultado, las columnas "venda" y "estoque" son enteros, lo que es adecuado para realizar operaciones aritméticas, mientras que la columna "data" se almacena como objetos, lo que requerirá un procesamiento adicional si se desea trabajar con fechas en análisis de series temporales. La columna "preco" se almacena como números decimales para representar los precios.
Run to view results
"count": Esta estadística indica el número de observaciones válidas (no faltantes) en cada columna. Por lo tanto, hay 937 observaciones para cada una de las tres columnas: "venda," "estoque," y "preco." Esto parece indicar que no existen filas faltantes.
"mean" (media): Representa el valor promedio de cada columna. En este contexto, se observa que, en promedio, hay aproximadamente 90.53 ventas diarias, un stock promedio de alrededor de 1608.26 unidades y un precio promedio de alrededor de 1.59 unidades monetarias por unidad vendida.
"std" (desviación estándar): Esta estadística mide la dispersión o variabilidad de los datos. En este caso, la desviación estándar de "venda" es aproximadamente 80.68, lo que indica una variabilidad considerable en las ventas diarias. La desviación estándar de "estoque" es aproximadamente 1356.69, y la de "preco" es aproximadamente 0.53.
"min" (mínimo): Muestra el valor mínimo observado en cada columna. Por ejemplo, el valor mínimo de "venda" es 0, lo que significa que hubo días sin ventas en el conjunto de datos.
"25%" (percentil 25), "50%" (percentil 50), y "75%" (percentil 75): Estos percentiles dividen los datos en cuatro partes iguales. Por ejemplo, el 25% más bajo de las ventas diarias es igual o menor a 33, el 50% se encuentra igual o por debajo de 76, y el 75% inferior es igual o menor a 127.
"max" (máximo): Muestra el valor máximo observado en cada columna. En este caso, la venta diaria máxima fue de 542, el stock máximo fue de 7228, y el precio máximo fue de 2.98.
Estas estadísticas descriptivas proporcionan una visión general de la distribución y variabilidad de las variables numéricas en el conjunto de datos de ventas minoristas. Son fundamentales para comprender la naturaleza de los datos y pueden guiar las decisiones sobre el modelado y el análisis subsiguientes.
1.4 Limpieza y preparación de los datos
Run to view results
Esta etapa de limpieza y preparación de datos, se tiene como objetivo simplificar el conjunto de datos al eliminar columnas que no son relevantes para el modelado y renombrar una columna para que refleje con claridad la variable de interés.
La eliminación de columnas innecesarias reduce la complejidad del modelo y puede mejorar su rendimiento, mientras que el cambio de nombre facilita la interpretación de los datos y el código subsiguiente.
Run to view results
Esta etapa tiene como objetivo transformar la columna que contiene fechas en un formato adecuado para su análisis como fechas y establecer esta columna como el índice del DataFrame. Al convertir las fechas en el tipo "datetime" y usarlas como índice, se facilita el trabajo con series temporales, lo que es esencial para el pronóstico de ventas con un modelo ARMA, ya que se depende de las fechas para realizar análisis temporales y pronósticos precisos.
Run to view results
El resultado generado indica que no se encontraron valores nulos en ninguna columna del DataFrame en relación a la variable "ventas." La Serie de salida muestra la cantidad de valores nulos por columna, y en este caso, la columna "ventas" tiene cero valores nulos, lo que sugiere que no es necesario realizar imputaciones de datos faltantes en esta etapa de preparación. Esto es una buena noticia, ya que los datos completos son esenciales para el análisis y modelado de series temporales, como el modelo ARMA.
Run to view results
Se verifica que los datos de la serie temporal ya están listos para el modelado.
2. Creación y evaluación del modelo
2.1 Visualización inicial de serie temporal
Run to view results
El resultado generado es un gráfico de serie de tiempo que muestra la evolución de las ventas diarias a lo largo del tiempo. En primera instancia, tal gráfica sugiere estacionariedad, lo cual, es un requisito indispensable para crear un modelo ARMA. No obstante, se harán las pruebas necesarias para corroborar la significancia estadística tal hipótesis.
2.2 Prueba de estacionariedad mediante test Dickey-Fuller (ADF)
Run to view results
En general, los resultados de la Prueba ADF indican que la serie temporal es estacionaria. Esto se debe a que estadístico ADF está fuera del intervalo de los valores críticos 10%, 5% e incluso 1%; además, el valor p es significativamente menor que 0.05, lo que quiere decir que se puede rechazar la hipótesis nula de que la serie es no estacionaria. Sin embargo, a continuación se explica detalladamente los resultados:
El estadístico ADF es una medida que se utiliza para evaluar si una serie de tiempo es estacionaria o no. En esta prueba, se plantea una hipótesis nula (H0) que asume la presencia de raíces unitarias en la serie, lo que indica no estacionariedad. El estadístico ADF compara el cambio observado en la serie de tiempo con el cambio esperado en una serie no estacionaria. Si el estadístico ADF es menor que los valores críticos, se rechaza la hipótesis nula, lo que sugiere que la serie es estacionaria. En este caso, el estadístico ADF es -5.3269, lo que es significativamente menor que los valores críticos, lo que indica que la serie es estacionaria.
El valor p es una medida que indica la probabilidad de obtener el estadístico ADF observado si la hipótesis nula (no estacionariedad) es verdadera. En general, un valor p bajo (por debajo de un nivel de significancia específico) sugiere que la hipótesis nula debe ser rechazada. En este caso, el valor p es 4.815e-06, que es extremadamente bajo e inferior al 1%. Esto significa que hay una probabilidad extremadamente baja de que los resultados observados se deban al azar, lo que respalda la conclusión de que la serie es estacionaria.
Indica el número de rezagos (lags) que se incluyen en el modelo de regresión para realizar la prueba ADF. Los rezagos se utilizan para capturar la dependencia temporal en la serie. En este caso, se utilizaron 14 rezagos.
Los valores críticos son umbrales que se utilizan para comparar el estadístico ADF. Si el estadístico ADF es menor que estos valores críticos, se rechaza la hipótesis nula y se concluye que la serie es estacionaria. En este resultado, se muestran los valores críticos para niveles de significancia del 1%, 5%, y 10%. En todos los casos, el estadístico ADF es menor que los valores críticos, lo que respalda con mayor robustez la conclusión de estacionariedad.
Este valor representa el estadístico ADF en el mejor intervalo de confianza. Se utiliza para determinar si la serie es estacionaria dentro de un rango específico de confianza. En este caso, el valor es 10080.0588, que también es menor que los valores críticos, lo que indica la estacionariedad de la serie.
Así pues, dado que la serie ya es estacionaria, no es necesario realizar ninguna diferenciación adicional.
2.3 Búsqueda del mejor modelo ARMA
Estos gráficos son esenciales para identificar visualmente los componentes p (orden autoregresivo) y q (orden de media móvil) más apropiados del modelo ARMA. Las caídas en la ACF después de un cierto rezago y picos significativos en el PACF pueden proporcionar pistas sobre los valores óptimos de p y q para el modelo.
Run to view results
Run to view results
Run to view results
El resultado generado indica los órdenes óptimos del modelo ARMA que se ajustan mejor a la serie de tiempo de ventas diarias. En este caso, los órdenes óptimos son (1, 1, 1), lo que significa que el modelo ARMA adecuado para esta serie de tiempo es un ARMA(1,1,1).
Esto implica un componente autoregresivo (p) de orden 1, un componente de diferenciación (d) de orden 1 y un componente de media móvil (q) de orden 1.
Estos órdenes son esenciales para la construcción del modelo ARMA y son determinados de manera automática para ajustarse mejor a la serie de tiempo de ventas diarias, lo cual, coincide con lo sugerido visualmente por los gráficos ACF y PACF.
2.4 Creación de mejor modelo ARMA encontrado
Run to view results
Órdenes del Modelo: Los órdenes identificados del modelo ARMA son (1, 1, 1), lo que sugiere que se ha incluido un componente autoregresivo (AR) de orden 1, un componente de diferenciación (I) de orden 1 y un componente de media móvil (MA) de orden 1. Estos órdenes ayudan a modelar la dependencia temporal en los datos.
Verosimilitud y Criterios de Información (AIC y BIC): La log-verosimilitud es un indicador de qué tan bien el modelo se ajusta a los datos. En este caso, el valor negativo de la log-verosimilitud es alto en valor absoluto, lo que sugiere un buen ajuste del modelo a los datos. El AIC y el BIC son criterios de información que evalúan la calidad relativa del modelo. En este caso, ambos criterios tienen valores relativamente bajos, lo que indica que el modelo ARIMA es competitivo y se ajusta bien a los datos en comparación con otros modelos.
Coeficientes del Modelo: Los coeficientes "ar.L1" y "ma.L1" son significativos y se utilizan para definir las relaciones autoregresivas y de media móvil del modelo ARIMA. En este caso, "ar.L1" es positivo (0.5874), lo que sugiere una influencia positiva en las ventas a partir de valores previos en la serie. "ma.L1" es negativo (-0.9810), lo que indica una influencia negativa de los errores pasados en las ventas.
Varianza Residual (sigma2): La varianza residual (sigma2) mide la dispersión de los errores residuales del modelo. En este caso, el valor de sigma2 es 3716.4611, lo que sugiere una cierta cantidad de variabilidad no explicada por el modelo. Esto puede deberse a factores no capturados por el ARMA, como efectos estacionales no considerados.
Estadísticos de Diagnóstico: El estadístico "Ljung-Box (Q)" junto con su valor p ("Prob(Q)") se utiliza para evaluar si los residuos son independientes. Un valor alto de "Prob(Q)" (0.93) sugiere que los residuos son independientes, lo que es deseable para un modelo ARIMA. El estadístico "Jarque-Bera (JB)" junto con su valor p ("Prob(JB)") se utiliza para evaluar si los residuos siguen una distribución normal. En este caso, el valor p es cercano a cero (0.00), lo que indica una desviación significativa de la normalidad. Esto sugiere que los residuos pueden no seguir una distribución normal. El estadístico "Heteroskedasticity (H)" junto con su valor p ("Prob(H) (two-sided)") se utiliza para evaluar si la varianza de los residuos es constante. En este caso, el valor p es bajo (0.00), lo que sugiere la presencia de heteroscedasticidad en los residuos.
En resumen, en general se podría considerar que el modelo ARIMA (1, 1, 1) se ajusta razonablemente bien a los datos de ventas diarias y tiene buen potencial de pronóstico.
2.5 Pronóstico a 30 periodos (días) de modelo
Run to view results
Run to view results
Los resultados de la gráfica y los generados en la tabla, muestran el pronóstico de ventas minoristas para los próximos 30 días a partir de la última fecha disponible en el conjunto de datos original. Estos pronósticos son fundamentales para la planificación y toma de decisiones, ya que proporcionan una estimación de las ventas futuras.
Es importante realizar un seguimiento y evaluación continuos de estos pronósticos para garantizar su validez y precisión en el contexto del proyecto de pronóstico de ventas minoristas.
2.6 Evaluación de modelo mediante métricas RMSE y MAE
Run to view results
En esta etapa, se evalúa el rendimiento del modelo ARMA en la generación de pronósticos comparando los valores pronosticados con los valores reales de las ventas minoristas para los próximos 30 días. A continuación, se interpretan los resultados generados:
Cálculo de Métricas de Evaluación:
Se utilizan dos métricas comunes para evaluar el rendimiento del modelo de pronóstico: RMSE (Error Cuadrático Medio Raíz): Es una métrica que mide la raíz cuadrada del error cuadrático medio entre los valores pronosticados y los valores reales. Cuanto más bajo sea el valor de RMSE, mejor será el rendimiento del modelo. MAE (Error Absoluto Medio): Es una métrica que mide el error absoluto promedio entre los valores pronosticados y los valores reales. Al igual que el RMSE, un valor más bajo de MAE indica un mejor rendimiento del modelo.
Comparación con los Datos Reales: Para calcular estas métricas, se compara el rendimiento del modelo con los valores reales de las ventas minoristas para los últimos 30 días disponibles en el conjunto de datos original. Estas son las ventas reales con las que se comparan los pronósticos generados.
En este caso, se obtienen los valores específicos de RMSE (aproximadamente 74.99) y MAE (aproximadamente 60.19). Estos valores de métricas permiten evaluar cuán cerca están los pronósticos generados por el modelo de las ventas reales. Un RMSE y MAE más bajos indican que el modelo genera pronósticos más precisos y se ajusta mejor a los datos reales. En este contexto, los valores obtenidos sugieren que el modelo ARMA tiene en general buena capacidad para pronosticar las ventas minoristas.
Conclusiones
En el marco de este proyecto de pronóstico de ventas minoristas con un modelo ARMA, se han realizado diversas etapas cruciales que han proporcionado información valiosa y resultados significativos para la comprensión y mejora de la predicción de las ventas de un minorista. A continuación, se presentan las conclusiones clave derivadas de cada una de las etapas:
En resumen, este proyecto ha permitido desarrollar un modelo ARMA sólido para pronosticar competentemente las ventas de un minorista, dentro de las propias limitaciones implícitas en este tipo de enfoque tradicional. El procesamiento de datos, la estacionariedad de la serie, la elección adecuada de los órdenes del modelo y la evaluación de métricas han demostrado ser aspectos fundamentales para lograr pronósticos tradicionales con buena precisión. Los resultados de las métricas proporcionan información crítica para la toma de decisiones empresarial y la gestión de inventario.