Inicio PublicacionesInsightsIntroducción al uso de Analytics en Previsión de Ventas con la aplicación de un modelo SARIMAX en una empresa de bienes de consumo

Introducción al uso de Analytics en Previsión de Ventas con la aplicación de un modelo SARIMAX en una empresa de bienes de consumo

Em artículo reciente para Tecnologística, escribí brevemente sobre el estado de la utilización de la IA y Aprendizaje automático en la planificación de la demanda, ilustrando los diferentes usos con ejemplos de empresas destacadas. Como retroalimentación, recibí algunas preguntas sobre cómo iniciar un viaje de rendimiento en la previsión de ventas, que todavía parece muy alejada de la realidad de las empresas y, en ocasiones, algo sofisticada y compleja.

Por lo tanto, Jessica Silva y yo, que compartimos la curso de prevision de ventas de ILOS, decidimos hacer algunas mensajes Intentar desmitificar y proporcionar algunas orientaciones prácticas sobre el uso de herramientas y bibliotecas disponibles en idiomas. De código abierto, como Python y R. La previsión de ventas es una tarea que normalmente implica análisis estadístico, aprendizaje automático o aprendizaje profundo, según la complejidad del conjunto de datos y el objetivo de este proceso predictivo.

Comencemos esta serie de publicaciones con un ejemplo muy simple de aplicación de modelos de pronóstico de ventas en Python, que cuenta con una variedad de bibliotecas para manejar este tipo de tareas. Algunas de las bibliotecas de Python más útiles para la previsión de ventas incluyen:

  • pandas: manipulación y análisis de datos;
  • NumPy: operaciones matemáticas;
  • matplotlib e nacido en el mar: Visualización de datos;
  • aprender: aprendizaje automático;
  • Pmdarima: función de arima automática;
  • Modelos estadísticos: modelos estadísticos, incluidas regresión lineal y pruebas estadísticas;
  • Profeta: pronósticos de series temporales (impulsados ​​por Facebook);
  • Keras e TensorFlow: modelos de aprendizaje profundo.

En este primer texto, nuestro objetivo es mostrar el uso de un modelo más sofisticado que el que utilizan la mayoría de empresas y, para ello, elegimos un modelo SARIMAX, una variación del modelo ARIMA que nos permite tratar series temporales con tendencia de crecimiento. , la marcada estacionalidad y la consideración de variables exógenas, como descuentos, vacaciones, precios competitivos o inversiones comerciales diversas. 

Para simplificar esta primera incursión, usaremos la función auto_arima de la biblioteca pmdarima, que es equivalente a un modelo SARIMAX de la biblioteca statsmodels. La diferencia es que la función auto_arima intenta encontrar automáticamente los mejores parámetros del modelo (los términos AR, I, MA, estacional y su orden) utilizando criterios como el criterio de información de Akaike (AIC) o el criterio de información bayesiano (BIC). Esto puede resultar muy útil cuando no tiene una buena idea de qué parámetros utilizar. 

Para este caso, usaremos el entorno de desarrollo Spyder, pero hay varios escritorios Python disponibles en línea, incluidos tutoriales de instalación y de introducción. 

Paso 1: importe las bibliotecas necesarias

En el primer paso se importan las bibliotecas que se utilizarán. Son los "paquetes" que contienen las funciones que necesitamos usar para realizar modelados y predicciones.

Paso 2: Sube tus datos

La base de datos ya tratada contiene tres columnas: una con fecha, otra con ventas y otra con la variable exógena seleccionada (comentaremos el proceso de selección de variables en otro post).

Paso 3: divide tus datos en entrenamiento y prueba

Hacer esta división nos permite mitigar la posibilidad de sobreajustar el modelo. En este caso, elegimos centrarnos en el grupo de prueba y el grupo de entrenamiento, colocando el último año de observación como grupo de prueba para simplificar.

Paso 4: definir y ajustar el modelo

Aquí se aplica eficazmente el modelo SARIMAX. Vale la pena señalar que no fue necesario definir ninguno de los parámetros del modelo, la función tiene un algoritmo de optimización incorporado que selecciona el modelo más apropiado, es decir, el que minimiza el error.

Paso 5: haz predicciones

En esta etapa se informa la cantidad de observaciones a futuro que se desea predecir, que en este caso fue de 12 meses. ARIMA y sus derivados permiten realizar pronósticos para múltiples períodos. También es importante ingresar los datos previstos para la variable exógena para este mismo horizonte temporal.

Paso 6: crea un marco de datos con las predicciones

Se creó un dataframe para facilitar la generación de gráficos, que es el siguiente paso.

Paso 7: Graficar los datos y las predicciones originales.

Aquí calculamos el indicador MAPE (Error porcentual absoluto medio). En ambos escenarios existe buena adherencia entre el modelo y la serie. La realización de este análisis de errores en ambas muestras ayuda a ver un posible escenario de sobreajuste. Si el error de entrenamiento fuera muy bajo y el error de prueba fuera muy alto, esto señalaría un caso de “modelo sesgado por datos”, es decir, el modelo es capaz de predecir casi perfectamente la serie dentro de la muestra de datos de entrenamiento, pero tiene poca utilidad fuera de esa muestra.

Existen otras métricas de error de predicción, como AIC, MPE, RMSE, entre otras, que deben analizarse al momento de evaluar un modelo. Además, siempre es una buena práctica comprobar los residuos del modelo para garantizar que no queden patrones restantes no capturados por el modelo. 

Este es un ejemplo simplificado, que muestra que con sólo unas pocas líneas de código es posible utilizar un modelo muy sofisticado, incluyendo el uso de una variable exógena, lo cual no es muy común en las empresas. ¿No sabes cómo crear el código? Un consejo: ChatGPT lo sabe. Sólo hace falta preguntar y entender cómo parametrizar correctamente el modelo para poder criticarlo. Adjunto ejecutamos el código sugerido por él con algunos pequeños ajustes de parametrización para muestras de prueba y entrenamiento. Los resultados se pueden ver allí.

Por supuesto, antes de salir a utilizar el modelo, sería útil hacer un análisis exploratorio de los datos, que puede incluir comprobar la estacionariedad, detectar valores atípicos, transformar los datos (si es necesario, por ejemplo, si la serie no es estacionaria) y visualizar los datos. para comprender cualquier tendencia o patrón subyacente.

Nos próximos posts, pretendemos dar exemplos de como tratar e limpar o baseline de vendas de forma automatizada, como utilizar técnicas de ensemble ou combinação de métodos para melhora da acuracidade, exemplo prático de redes neurais profundas em séries temporais com modelos LSTM com ajuste de hiperparâmetros y más. ¡Todo para intentar ayudar a hacerlo tangible y demostrar que con un poco de esfuerzo, investigación y estudio se puede avanzar en Analytics para la previsión de ventas!

 

ADJUNTO – CHAT GPT

Resultados:

 

https://ilos.com.br

Socio Ejecutivo de ILOS. Graduado en Ingeniería de Producción por EE/UFRJ, tiene maestría en Administración de Empresas por COPPEAD/UFRJ con extensión en EM Lyon, Francia, y Doctorado en Ingeniería de Producción por COPPE/UFRJ. Tiene varios artículos publicados en periódicos y revistas especializadas, siendo uno de los autores del libro: “Sales Forecasting: Organizational Processes & Qualitative and Quantitative Methods”. Sus áreas de investigación son: Planificación de la Demanda, Servicio al Cliente en el Proceso Logístico y Planificación de Operaciones. Trabajó durante 8 años en el CEL-COPPEAD/UFRJ, colaborando en la organización del área de Enseñanza de Logística. En consultoría, realizó varios proyectos en el área de logística, como Diagnóstico y Plan Maestro, Previsión de Ventas, Gestión de Inventarios, Planificación de la Demanda y Plan de Capacitación en empresas como Abbott, Braskem, Nitriflex, Petrobras, Promon IP, Vale, Natura, Jequití, entre otros. Como docente, impartió clases en empresas como Coca-Cola, Souza Cruz, ThyssenKrupp, Votorantim, Carrefour, Petrobras, Vale, Via Varejo, Furukawa, Monsanto, Natura, Ambev, BR Distribuidora, ABM, International Paper, Pepsico, Boehringer. , Metrô Rio , Novelis, Sony, GVT, SBF, Silimed, Bettanin, Caramuru, CSN, Libra, Schlumberger, Schneider, FCA, Boticário, Usiminas, Bayer, ESG, Kimberly Clark y Transpetro, entre otras.

Regístrese y reciba contenido exclusivo y actualizaciones del mercado

Manténgase informado sobre las últimas tendencias y tecnologías en Logística y Supply Chain

Rio de Janeiro
Avenida Río Branco, 181/ conjunto 3103 – Centro – RJ
Código postal: 20040-918
Teléfono: (21) 3445.3000
São Paulo
Alameda Santos, 200 – Suite 102, Cerqueira Cesar, São Paulo – SP
Código postal: 01419-002
Teléfono: (11) 3847.1909

CNPJ: 07.639.095/0001-37 | Razón social: ILOS/LGSC – INSTITUTO DE LOGISTICA E SUPPLY CHAIN ​​LTDA

© Todos los derechos reservados para ILOS – Desarrollado por Design C22