Predictive Analytics es una de las áreas que más ha crecido durante los últimos años dentro del campo de la Inteligencia Artificial. Las bolas de cristal no existen – nadie imaginaba lo que nos iba a deparar el año 2020-, pero sí existen métodos que nos permiten minimizar el error que vamos a cometer al realizar predicciones, especialmente cuando queremos estimar las ventas de una compañía en el futuro. En este artículo, repasaremos cómo hemos logrado una medalla de bronce en una competición internacional de predicción de ventas organizada con datos reales de Walmart.
Contexto de la competición Kaggle-Walmart
Kaggle es una comunidad internacional de Data Scientists y profesionales del machine learning que se fundó en 2010 y fue adquirida por Google en 2017. El principal producto que ofrecen son las competiciones, problemas propuestos por compañías, que ponen a prueba a los mejores analistas de datos del mundo. Por otra parte, Walmart es una multinacional estadounidense de retail, considerada la compañía más grande del mundo por volumen de ingresos.
¿Qué relación tienen Walmart y Kaggle? Walmart, lanzó en marzo de 2020 una competición en la plataforma Kaggle en la que retaba a los participantes a desarrollar un modelo predictivo de ventas. Este modelo debía estimar con precisión las ventas diarias del siguiente mes para un conjunto de productos seleccionados. Y, ¿por qué está interesado Walmart en disponer de un buen modelo de predicción de ventas? Porque anticipar la demanda es de gran ayuda para cualquier cadena de supermercados o hipermercados. En particular, Walmart utiliza estas predicciones para procesos como la gestión de inventario, presupuestación, gestión de promociones y optimización de campañas de publicidad.
La competición finalizó el 20 de junio de 2020. La alegría fue mayúscula al enterarnos que nuestro equipo, Deloitte Analytics Spain, había alcanzado una medalla de bronce, lo que significaba haber quedado en el top 10% de mejores soluciones a nivel internacional. En concreto, habíamos logrado estar en el top 5,8% de 5.558 equipos participantes de todo el mundo.

Detalles del problema a resolver
A continuación, se detalla la información disponible en la competición y las particularidades del problema de predicción planteado por Walmart:
- Cinco años de histórico de datos: se dispone de información de ventas y otros indicadores desde enero 2011 hasta mayo 2016 y el objetivo del problema es predecir junio 2016.
- Problema de predicción jerárquico: los datos de ventas se pueden ordenar según distintas agrupaciones jerárquicas: 3 estados (California, Texas y Wisconsin), 10 tiendas en dichos estados, 3 categorías (Hobbies, Hogar y Alimentación), 7 departamentos dentro de dichas categorías y 3.049 artículos. A continuación, una imagen que muestra un árbol jerárquico de la información:
- Métrica de error adaptada al problema: Walmart buscaba un modelo que fuera capaz de predecir bien todas las agregaciones jerárquicas, es decir, un modelo que estime bien el dato de ventas por artículo y en los niveles más agregados de información. En particular, la métrica de error utilizada es el WRMSSE (Weighted Root Mean Square Scaled Error) que valora las estimaciones en todos los niveles de agregación, dando más importancia a aquellos productos que generan más ingresos para Walmart. Esta métrica, no muy habitual en problemas de predicción, es una opción muy interesante cuando se trabaja con series jerárquicas de productos de distinto valor.
- 42.840 series temporales a predecir: en total es necesario predecir 42.840 series temporales que se obtienen de la suma de todas las series temporales más desagregadas a predecir (30.490 series = 3.049 productos x 10 tiendas) y el resto de agregaciones jerárquicas que podemos hacer con esas series (series por departamento, por categoría, etc.).
- Demanda intermitente: una dificultad añadida es que gran cantidad de series temporales contienen valores nulos, es decir, días en los que no se ha vendido el artículo a predecir. Esto supone un obstáculo para muchos modelos de predicción que no están «preparados» para tener que trabajar con valores nulos.
Claves del éxito en la competición
a. El análisis descriptivo revela patrones interesantes
El primer paso que deberíamos seguir siempre que queramos construir un modelo predictivo es realizar un análisis descriptivo completo de los datos disponibles. Un buen análisis exploratorio de la información dará pistas de las variables que son más relevantes. En este caso, detectamos varios comportamientos que nos ayudaron a entender mejor el problema, así como a construir mejores variables predictoras. Vamos a resumir los tres patrones que observamos en el análisis descriptivo sobre la situación macroeconómica, promociones y el número de artículos únicos por tienda:
– Situación macroeconómica
Al trabajar con series de ventas de tiempo amplias, es recomendable analizar la relación de las ventas con la situación macroeconómica de la región a predecir. En este problema disponíamos de cinco años de histórico de datos (2011-2016), periodo que coincide con la recuperación económica de Estados Unidos después de la Gran Recesión:
Tal y como se puede ver en el gráfico anterior, el comportamiento de las ventas totales de Walmart y la tasa de desempleo en Estados Unidos es opuesta, a medida que el paro se reduce, las ventas de Walmart se incrementan. En concreto, la serie de ventas suavizada por el método de Loess (línea naranja más oscura) presenta una correlación negativa muy alta frente a la tasa de desempleo (línea negra). El coeficiente de correlación puede variar entre -1 y +1, y en este caso toma un valor de -0,9. Todo parece indicar que el mes a predecir (junio 2016) será también un buen mes para Walmart.
– Promociones
Las variables de marketing suelen jugar un papel importante en los modelos de predicción de ventas. Si queremos predecir bien las ventas de productos de un supermercado o hipermercado, es muy relevante considerar todas las promociones aplicadas en cada uno de ellos. En este caso, no había datos de promociones por la confidencialidad de la información, pero Walmart sí proporcionaba datos sobre el programa SNAP (Supplemental Nutrition Assistance Program). SNAP es un programa federal que ayuda a millones de estadounidenses con rentas bajas a acceder a descuentos especiales. Para ello identificaba los días en los que había habido SNAP en cada estado:
Como se puede observar en la tabla anterior, los días SNAP varían por estado. Gracias al análisis exploratorio, observamos que las ventas de los tres estados a predecir (California, Wisconsin y Texas), aumentaban durante los días SNAP, pero que el comportamiento difería entre ellos. Por ejemplo, Wisconsin presentaba un incremento durante los días SNAP del +21% en promedio, mientras que California sólo aumentaba un +7%. ¿A qué se podía deber esa diferencia? Puede haber diversos factores que expliquen esa mayor elasticidad a la promoción. Dedicamos tiempo a consultar los niveles socioeconómicos de los dos estados, obteniendo que Wisconsin tiene un PIB per cápita significativamente menor (47.000$ en 2016) que California (58.000$ en 2016). En el descriptivo, es importante tanto analizar los datos como lanzarnos preguntas que nos sirvan para entender mejor si los datos tienen sentido y qué factores pueden ser más determinantes en la predicción.
– Artículos por tienda
Al estudiar series de ventas, es necesario comprender perfectamente la dinámica de comportamiento del negocio. En este caso, resultó relevante estudiar el cambio en el número de artículos que estaban a la venta por tienda a lo largo del tiempo:
En los gráficos se puede observar que el número de artículos ha ido incrementándose hasta llegar a los 3.049, número de artículos a predecir. Llama la atención que haya habido varios saltos en la cantidad de artículos que están a la venta en una tienda (en California durante 2015 y en dos tiendas en Wisconsin durante 2012). ¿Ha realizado Walmart reformas en esos momentos o quizá ha cambiado el offering en los lineales? Si fuera un proyecto real, es algo que habríamos resuelto rápidamente con expertos de la compañía. En este caso, sólo podíamos incorporar este conocimiento adicional en nuestros modelos, ya que una variable que recoja este comportamiento nos tendría que ayudar a afinar las predicciones. En resumen, si el número de artículos se ha multiplicado por tres a lo largo del tiempo, cabe esperar que las ventas de cada uno de ellos hayan variado debido a que el consumidor cuenta con más opciones de compra.
b. Feature Engineering como fase clave
La fase de Feature Engineering es la previa al desarrollo del modelo predictivo y en ella se crean los indicadores que posteriormente testaremos en los modelos. En nuestro caso, trabajamos con la información que proporcionó Walmart calculando indicadores como los siguientes:
– Ventas: variables que recogen la tendencia y la estacionalidad de cada serie a predecir. Para ello, trabajamos con medias móviles y retardos de las variables. Siempre que queramos predecir el próximo mes, las ventas de las últimas semanas serán clave para obtener estimaciones más precisas.
– Calendario: día de la semana, cuatrimestre, día del mes y año son algunos ejemplos de variables que sirven para captar bien la estacionalidad del negocio.
– Eventos: festivos o partidos importantes de la NBA tienen impacto en las ventas, por lo que creamos indicadores que recojan los días de evento, los anteriores y posteriores. ¿Por qué testamos los días anteriores y posteriores? Porque ciertos eventos adelantan las compras al día anterior y hacen que se compre menos el día posterior al evento. El modelo es el que determina el impacto de cada uno de ellos.
– Promoción: los días SNAP, como ya vimos anteriormente, incrementan las ventas, por lo tanto, creamos un indicador que recoja los días SNAP en cada estado.
– Precios: Walmart también proporciona los datos de precio de cada producto por semana y tienda. En este caso, creamos todos los indicadores candidatos a afectar a las ventas: precio vs semana anterior, precio vs precio medio categoría, tendencia variación precio, etc.
– Variables externas: indicadores como la economía, variables climatológicas y desastres naturales nos sirven para entender el comportamiento de las series y anticipar posibles incrementos o decrementos de ventas.
c. El enfoque Bottom-up vence al Top-down
Como vimos al principio del artículo, una de las particularidades del problema es que era necesario desarrollar un modelo que predijera bien en todos los niveles de jerarquía. Al enfrentarnos a este tipo de problemas, es automático pensar en qué tipo de enfoque que vamos a emplear: Top-down o Bottom-up.
¿Cuál es las diferencia entre ellos? El enfoque Bottom-up nos lleva a realizar primero las predicciones para el nivel más desagregado de información, es decir, en nuestro caso a nivel de [producto, tienda] y, a partir de estas predicciones, ir sumando para llegar a los niveles superiores. Por otra parte, si aplicamos un enfoque Top-down, tendremos que predecir el nivel más agregado [total ventas] y distribuir esas predicciones en los niveles inferiores de la jerarquía hasta llegar al nivel de [producto, tienda]. Existiría un tercer enfoque intermedio, Middle-out, que sería una combinación de los dos anteriores, pero nos centraremos en los dos mencionados anteriormente para simplificar la explicación.
A través de un ejemplo sencillo se puede entender mejor la diferencia entre ambos enfoques. Imaginemos que queremos predecir las ventas de dos tiendas (Tienda 1 y Tienda 2) que pertenecen a California. Si siguiéramos un enfoque Bottom-up lo que haríamos sería predecir la Tienda 1 y la Tienda 2 por separado, es decir, construiríamos dos modelos y sumaríamos la predicción de ventas para obtener las ventas de California. Si por el contrario, quisiéramos aplicar un enfoque Top-down, haríamos primero la predicción de ventas de California y, a partir del resultado, distribuiríamos esas ventas entre la Tienda 1 y la Tienda 2. Por ejemplo, podríamos utilizar la cuota que representa cada tienda sobre las ventas totales durante el último mes para hacer este reparto.
En la competición, evaluamos los dos enfoques con distintas técnicas y concluimos que el enfoque Bottom-up era significativamente más eficaz. Este enfoque era capaz de capturar muy bien los movimientos de ventas en los niveles más desagregados y funcionaba incluso mejor en los niveles agregados de información. Los mejores clasificados de la competición también utilizaron este tipo de enfoque, lo cual pone de manifiesto que es mejor utilizar el enfoque Bottom-up en este tipo de problema:
d. LigthGBM es el «gran ganador»
Además de los participantes, en estas competiciones también compiten las grandes compañías tecnológicas que han puesto potentes algoritmos a disposición de la comunidad científica. En este caso, el gran ganador ha sido Microsoft con su algoritmo de Machine Learning denominado LightGBM, y englobado dentro del grupo de modelos llamados Gradient Boosting. Ha sido también el algoritmo utilizado por los que mejor posición han alcanzado en la competición y que decidimos utilizar después de haber testado otras técnicas. Algunas de las características que han convertido a LightGBM en uno de los algoritmos más populares actualmente:
1. Gran velocidad de entrenamiento y mayor eficiencia.
2. Compatibilidad con grandes conjuntos de datos.
3. Menor uso de memoria.
4. Aprendizaje paralelo y mejor precisión que otros algoritmos de boosting.
Conocer cómo funciona este algoritmo nos ha permitido «tunearlo» para sacar el máximo partido: (1) función objetivo adaptada a este problema en el que trabajamos con distribuciones asimétricas, (2) selección inteligente de hiperparámetros a partir de optimización bayesiana y (3) método de cross – validation para una mejor generalización.
En cuanto a la modelización, dos conclusiones adicionales interesantes:
1. Cloud: tuvimos que desarrollar los modelos en cloud -en este caso utilizamos AWS- debido a que decidimos ajustar un modelo para cada una de las 30.049 series temporales (series a nivel de artículo) y necesitábamos reducir los tiempos de cómputo. Trabajar en cloud es muy útil en problemas que involucran gran cantidad de datos y, en este caso, nos permitió reducir los tiempos de ejecución de los modelos un 60% respecto a trabajar en un portátil. A continuación, el esquema de entrenamiento de los modelos y las características de la instancia de AWS (R6G.2xlarge) seleccionada:
2. AutoML: Ahora existen múltiples plataformas (Amazon Sagemaker Autopilot, DataRobot, Google Cloud AutoML, etc.) que ofrecen algoritmos automáticos de predicción. Estos algoritmos se caracterizan porque perfiles con menores conocimientos técnicos pueden implementarlos de manera más sencilla. En nuestro caso, probamos con la solución de AWS, Sagemaker Autopilot, obteniendo peores resultados que el modelo LightGBM adaptado para este problema en particular. El resto de participantes coincidieron en los malos resultados proporcionados por algoritmos automáticos, lo cual es una gran noticia para todos los que nos dedicamos a la Ciencia de datos. Habrá que seguir de cerca cómo van evolucionando estos algoritmos y si llega el momento en el que comienzan a ganar competiciones de Kaggle.
Predicciones en tiempos del Covid
Por ejemplo, pensemos en una marca de ropa que quiere estimar lo que va a vender una tienda que se encuentra en un centro comercial. Esta compañía podrá realizar predicciones de corto plazo (semana o mes siguiente) y predicciones de largo plazo (años siguientes) de dicha tienda. El corto plazo será relativamente fácil de predecir a partir de la evolución de las ventas y de la movilidad durante las últimas semanas, siempre que no entren en vigor restricciones de movilidad inesperadas. En cuanto a las predicciones de largo plazo, lo más aconsejable es analizar datos de la crisis anterior, relacionando las variables macroeconómicas (Paro, PIB, …) con las ventas. Así, podremos realizar predicciones de ventas basadas en indicadores macroeconómicos que son predichos y actualizados frecuentemente por organismos españoles y europeos. El futuro es incierto, y habrá que trabajar en distintos escenarios de previsión, por ejemplo, tomando los escenarios de previsión con los que trabaja el Banco de España.
En resumen, Predictive Analytics es un campo en auge que seguirá desarrollándose en el futuro. Plataformas online al alcance de todos como Kaggle son de gran utilidad para empezar a formarse en un área que requerirá cada vez de más perfiles. Sin duda, la resolución del problema presentado en este artículo es un ejemplo más del valor que tienen los datos para las compañías.