/ Proyectos / Negocio / Predicción de ventas en múltiples almacenes

Predicción de ventas en múltiples almacenes con ventana deslizante

Cómo convertir el historial de ventas de decenas de almacenes y productos en un problema de regresión entrenable, y por qué medir el sesgo del modelo importa tanto como medir su error.

12 min de lectura Python · scikit-learn · Keras Datos: ventas mensuales históricas por almacén y producto Aplicable a tesis y proyectos aplicados de planeación de inventario
Historial de ventas mensuales de varios almacenes analizado con machine learning para generar pronósticos por punto de venta

El objetivo era predecir la venta mensual de los productos con mayor movimiento en cada uno de varios almacenes, para apoyar decisiones de inventario con un pronóstico consistente, no con una hoja de cálculo distinta por punto de venta. El reto real no era solo de precisión, era de escala: docenas de combinaciones de almacén y producto, cada una con su propia dinámica.

La pregunta de fondo tampoco era solo "qué tan cerca queda la predicción del valor real". Para inventario, importa igual de mucho hacia dónde se equivoca el modelo. Sub-pronosticar de forma sistemática genera quiebres de stock; sobre-pronosticar de forma sistemática genera capital inmovilizado en exceso de inventario. Ese matiz definió buena parte de cómo se evaluaron los modelos en este proyecto.


Mapa del casoContenido


Estructura de alto nivelDiagrama de la solución

Fuente Historial de ventas mensuales Fuente Top productos por almacén Ventana deslizante (12 meses) Objetivo y ventana de prueba Entrenamiento por almacén/producto Prueba walk-forward 4 familias de modelos Lineal · Árbol · Random Forest · Red Neuronal Métricas por modelo MAE · RMSE · BIAS · R2 Selección por error y sesgo No solo por RMSE Predicciones por almacén

Pasa el cursor sobre cada bloque para ver qué hace ese paso.

El mismo pipeline de ventana deslizante y evaluación se repite de forma idéntica para cada combinación de almacén y producto, lo que permite comparar resultados entre series sin cambiar la metodología a mitad de camino.


Cómo se construyóConstrucción de la solución

Condiciones del proyecto

RestricciónDato
Escala del problemaVarios almacenes, cada uno con sus propios productos de mayor movimiento, cada combinación con su propia serie mensual
Historial disponibleSeries mensuales de longitud moderada, no años de datos diarios
Objetivo de negocioApoyar decisiones de inventario, donde el sentido del error importa tanto como su magnitud
Consumo del resultadoLas predicciones debían quedar disponibles para un sistema externo, no solo en el notebook
OpciónPor qué se descartó
Un modelo clásico de series de tiempo (ARIMA) por cada combinaciónCon series cortas y docenas de combinaciones, ajustar y mantener un modelo de series de tiempo por cada una es costoso y frágil
Evaluar los modelos solo con RMSEDos modelos con el mismo RMSE pueden tener un sesgo de negocio muy distinto, uno hacia el quiebre de stock y otro hacia el exceso de inventario
Un único modelo global para todos los almacenes y productosPromedia dinámicas de venta muy distintas entre sí y pierde la especificidad de cada punto de venta
Ventana deslizante para convertir cada serie en regresión tabular + comparación de 4 familias de modelos con MAE, RMSE, BIAS y R2Permite reutilizar modelos de regresión estándar por cada combinación y decidir con una métrica que sí distingue la dirección del error

Pasos

1

Convertir cada serie de ventas en un problema de regresión

Agente: propuso modelar cada serie con un enfoque clásico de series de tiempo, ajustado por separado para cada combinación de almacén y producto.
Criterio aplicado: usar una ventana deslizante, 12 meses de historia como variables de entrada y el mes siguiente como objetivo, para poder aplicar cualquier modelo de regresión estándar de forma consistente en todas las combinaciones.

2

Definir la métrica correcta antes de comparar modelos

Agente: sugería reportar solo RMSE y R2, las métricas estándar de cualquier problema de regresión.
Criterio aplicado: agregar BIAS a la función de evaluación, porque para decisiones de inventario un modelo que sub-pronostica de forma sistemática es un problema distinto a uno que sobre-pronostica, aunque su RMSE sea igual.

3

Comparar 4 familias de modelos con la misma metodología

Agente: proponía quedarse con el primer modelo que diera buenos resultados en las primeras pruebas.
Criterio aplicado: entrenar Regresión Lineal, Árbol de Decisión, Random Forest y una Red Neuronal sobre exactamente las mismas ventanas de entrenamiento y prueba, para que la comparación fuera justa y no dependiera de qué modelo se probó primero.

4

Afinar hiperparámetros con validación cruzada, no a ojo

Agente: sugería ajustar los hiperparámetros manualmente, probando algunas combinaciones a mano.
Criterio aplicado: usar búsqueda en grilla con validación cruzada para los modelos más sensibles a sus hiperparámetros (árbol, random forest, red neuronal), y medir también el tiempo de entrenamiento de cada uno, porque en un pipeline que corre para decenas de combinaciones el costo de cómputo también es una decisión de diseño.

Proceso de iteración

Ajuste documentado, no forzado

Comparar 4 familias de modelos a la vez, con la misma ventana y las mismas métricas, mostró algo que un solo modelo nunca hubiera revelado: el modelo con menor RMSE para una combinación de almacén y producto no siempre era el de menor BIAS. En varias series, el Random Forest tenía mejor error promedio pero un sesgo hacia sub-pronosticar, mientras que un modelo más simple, con error ligeramente mayor, estaba mejor centrado. Esa decisión, elegir según el objetivo de negocio y no solo según la métrica de error más común, no se puede automatizar del todo, requiere entender qué le cuesta más caro al negocio: quedarse corto o pasarse.


CierreLecciones importantes

Una ventana deslizante es una decisión de ingeniería pequeña con un efecto grande: convierte un problema que parecía exigir modelos especializados de series de tiempo en algo que cualquier modelo de regresión puede resolver, y que se puede repetir de forma idéntica en docenas de combinaciones de almacén y producto sin reinventar la metodología cada vez.

La lección más importante, sin embargo, fue de métrica, no de modelo. RMSE por sí solo no le dice al negocio hacia dónde se equivoca el modelo, y para inventario esa dirección importa tanto como la magnitud del error. Agregar BIAS a la evaluación cambió qué modelo se eligió en varias combinaciones, no porque tuviera mejor error, sino porque su sesgo era el que menos le costaba al negocio.

Si quieres ver un enfoque publicado con una idea similar, comparación de modelos de machine learning para pronóstico de ventas al detalle incluyendo métricas de sesgo, este paper es una buena referencia del nivel de la contribución: Comparative Analysis of Modern Machine Learning Models for Retail Sales Forecasting.

Termina ya tu proyecto

¿Tienes un proyecto similar y no sabes por dónde empezar? Yo te ayudo a diseñarlo.

El 92% de los profesionales de datos desbloquea sus proyectos al ver ejemplos completos resueltos.

53
proyectos
8
sectores
100%
aplicado

Sin registro. Acceso inmediato