Una guía sobre cómo utilizar la previsión contrafactual para estimar la rentabilidad de las promociones pasadas en el comercio minorista.

Lea nuestro artículo sobre

.

Durante un proyecto real de 3 meses, desarrollamos e industrializamos un modelo de previsión contrafactual (primero con Prophet y después con XGBoost) para evaluar el rendimiento de las promociones pasadas en tienda de una cadena de tiendas, con el fin de ayudar a los planificadores de la demanda en su elección de campañas promocionales.

Este modelo se entrena y luego pronostica las ventas hipotéticas (llamadas línea de base) en el pasado si no hubiera habido ninguna promoción. La diferencia entre las ventas reales de la promoción y esta línea de base da las ventas incrementales, que llamamos uplift.

Gracias a las características temporales elaboradas a mano, alcanzamos una precisión de previsión de casi 90%.

Contexto empresarial

Al planificar futuras campañas promocionales, los planificadores de la demanda deben decidir qué surtidos de productos se rebajarán, con un determinado mecanismo promocional (por ejemplo, “-15%”, “compre 2, llévese 1 gratis”, etc.).

Se trata de decisiones difíciles ya que:

  • Optar por demasiadas promociones sería no ser un eficaz estrategia (los clientes se acostumbrarán a las promociones y tenderán a esperar a la siguiente).
  • Elegir el promociones equivocadas provocaría déficits y pérdidas.

Para la mayoría de las empresas minoristas, el opciones de campaña se hacen basándose en sus conocimientos empresariales y el resultados de promociones anteriores. Sin embargo, el “rendimiento de promociones anteriores” es difícil de estimar. Efectivamente, las campañas promocionales aumentan las ventas (en la mayoría de los casos), pero ¿cómo estimar la eficacia o el retorno de la inversión (ROI) si no sabemos cuáles habrían sido las ventas sin promoción? Este valor hipotético de las ventas sin promoción puede denominarse línea de base. En otras palabras, se trata de poder estimar el incremento de las ventas (o elevar) de una campaña de promoción, correspondiente al ventas realesmenos la línea de base.

Para responder a esta pregunta, construimos una herramienta capaz de estimar el aumento de las ventas promocionales de campañas pasadas, con una precisión de casi 90%.
Esta tarea es todo un reto, ya que el objetivo es hacer previsiones de hipotético ventas en otra situación (aquí, si la campaña promocional no se hubiera producido para un producto determinado). Esto puede denominarse “previsión contrafactual”. Este artículo se basa principalmente en nuestra experiencia en un proyecto que realizamos para una cadena de tiendas francesa.

Su objetivo es describir el enfoque que hemos utilizado, dar consejos y advertencias a la hora de aplicar una solución de previsión contrafactual (Preparación datamodelado), explique el evaluación proceso y finalmente discutir el limita y próximos pasos a este enfoque.

¿Qué es la previsión contrafactual y por qué es difícil de predecir?

La previsión contrafactual es el proceso de predecir algo en la forma: ¿qué haría X sería si no hubiera Y. En nuestro caso de uso, X serían las ventas y Y sería una campaña de promoción.

En realidad hay múltiples campos donde se puede aplicar este proceso: escasez de existencias (estimar el déficit debido a artículos agotados), cualquier acontecimientos especiales que no duran demasiado (Covid: ¡no funciona!) con el fin de tener suficiente data para estimar ese contrafactual.

El problema de la promoción puede abordarse desde 3 ángulos (ordenados por dificultad ascendente):

  • 1. Comprender las promociones anteriores: Estimar con un enfoque exhaustivo el rendimiento (aumento de las ventas o retorno de la inversión, por ejemplo) de las campañas de promoción anteriores.

  • 2. Predecir el rendimiento de promoción futura campañas dadas sus características (productos rebajados, fechas de inicio y fin, mecanismo...)

  • 3. Optimizar el plan de promociones: encontrar la mejor configuración de futuras promociones para maximizar una métrica empresarial.

En este artículo, nos centraremos en el primer paso ya que era el objetivo de nuestro proyecto. Sin embargo, daremos algunas ideas sobre cómo abordar los dos siguientes, en las secciones siguientes.

Hay dos razones principales que hacen de la tarea de la previsión contrafactual un proceso desafiante:

  • Hay un escasez de bibliografía o ejemplos sobre el tema mientras que es muy útil en el comercio minorista y otras industrias.

  • En la previsión contrafactual, no hay verdad sobre el terreno, ya que es algo que no ha sucedido. Así pues, la evaluación del rendimiento parece bastante difícil (afortunadamente, se nos ocurrió un enfoque que se presentará en la sección de Evaluación).

Enfoque propuesto

El enfoque que hemos utilizado para construir nuestra herramienta es el siguiente:

  • 1. Tren una previsión modelo en fechas fuera de promoción, para conocer una línea de base de cómo deberían ser las ventas sin ninguna promoción programada.

  • 2. Predecir en todos los puntos data (en realidad, sólo se utilizan las predicciones durante la promoción, pero puede ser bueno conservar las predicciones en todas partes para facilitar la interpretación).

  • 3. Comparar esa línea de base prevista a las ventas reales durante cada promoción para inferir su aumento.

Nota importante: El objetivo es utilizar las previsiones durante los periodos de promoción, que se encuentran en el pasado. Es porque esta tarea es una a posteriori análisis que, contrariamente a la previsión clásica, es posible entrenar en fechas después de el periodo de inferencia, correspondiente a la campaña de promoción. Aquí no existe la noción de fuga data, ya que intentamos explicar un fenómeno que ocurrió en el pasado. Así pues, el flujo de trabajo de formación - inferencia tiene el siguiente aspecto:

Implementación

Preparación del data

Para abordar el problema de la promoción, hay que utilizar el formato data adecuado. Normalmente, tenemos acceso a dos tipos de data:

1. Promocional data (información descriptiva relacionada con las promociones)

2. Ventas data.

El data preprocesado es básicamente el data de ventas, enriquecido con información de promoción (unión izquierda, véase la figura anterior). Cada fila con un “Tipo de promoción” no nulo corresponde a un día en el que el producto está en promoción.

Antes de realizar la primera implantación, es importante evaluar la calidad data. He aquí algunas pautas para las comprobaciones a realizar:

1. Busque los principales cuestiones en el series temporales:

  • Intermitente y/o muy bajas ventas (será difícil aprender una línea de base).

  • Las promociones duran demasiado y/o son demasiado frecuentes (por lo tanto, no hay suficientes puntos data para entrenarse).

  • Algunos productos están en promociones múltiples al mismo tiempo (¿qué promoción es responsable de estas ventas incrementales?)

2. Defina un granularidad para el caso de uso:

  • Tiempo granularidad: ¿el análisis será diario o semanal?

  • Artículo granularidad: ¿una serie temporal por artículo? ¿Por familia de artículos? A veces, no podrá reducir la granularidad si el número de unidades vendidas por elemento temporal no es lo suficientemente alto o si la serie temporal es demasiado intermitente. En ventas agregadas será más suave, con menos problemas de volumen pero a veces carecen de interpretabilidad.

Así pues, si las series temporales están lo suficientemente limpias, un buen punto de partida es adoptar el enfoque más granular (por ejemplo, producto X día, especialmente si se trabaja con Prophet, como hicimos en este proyecto).

3. Tener un alcance claro de la promoción¿qué productos/familias de productos forman parte de una promoción determinada? ¿Se planifican las promociones a nivel nacional? (si no es así, no se pueden, por ejemplo, agregar las ventas de un producto en todas las tiendas de un país).

Una vez comprobado y preparado el data, es hora de modelarlo.

Modelado

Primeras iteraciones y conclusiones clave

Nosotros comenzó nuestras primeras iteraciones con Profeta porque nos permitió tener una línea de base muy rápidamente, añada fácilmente regresores, y interpretar los resultados de forma natural (gracias a su descomposición aditiva).

He aquí un resumen de las principales mejoras de iteración que tuvimos durante el proyecto:

Básicamente, el principales mejoras venían del regresores añadimos:

  • El manejo de acontecimientos especiales (El Viernes Negro fue especialmente importante)
  • Retrasos temporales (aunque el modelo Prophet es autorregresivo, añadimos rezagos de ventas pasadas y ventas futuras, lo que ha demostrado ser bastante útil para la precisión del modelo).

Por último, la adaptación de la forma en que medimos la precisión de las previsiones (véase la sección Evaluación más adelante) también ayudó a disponer de una forma más precisa de evaluar el rendimiento.

¿Por qué cambiamos a XGBoost?

A pesar del buen rendimiento y la interpretabilidad de Prophet, nos dimos cuenta de que XGBoost era el más adecuado, por múltiples razones:

  • Teníamos más de 1000 series temporales lo que significa más de 1000 modelos de Prophet para entrenar.
  • Profeta ha problemas de comprensión relaciones no lineales entre las características y su impacto en el objetivo. Este cruz de características cuestión está bien descrita en este artículo.
  • Llegamos al mismo rendimiento mientras que reduciendo en un factor de 10 el tiempo de formación.

Evaluación y límites

Evaluación

Como ya se ha dicho, en la previsión contrafactual no existe la verdad sobre el terreno, lo que hace que la evaluación del rendimiento sea más compleja que en la previsión clásica.

Sin embargo, hemos encontrado una forma de medir nuestro rendimiento, o más bien de estimarlo con la mayor precisión posible. He aquí cómo:

En la previsión clásica, normalmente medimos el rendimiento utilizando un validación cruzada estrategia (aquí, ventana expansible) en un determinado periodo de validación (por ejemplo, el último año de data disponible). Para este periodo de validación, la ventana real en la que medimos el rendimiento se desplaza en cada pliegue (“ventana de evaluación”), y el data anterior se utiliza para los rasgos de retraso (“Data utilizado para hacer predicciones”). En un caso de uso de promoción, añadimos algunos data después de la ventana de evaluación para reproducir el flujo de trabajo formación - inferencia descrito en la sección “Enfoque propuesto”.

Así pues, podemos aplicar esta estrategia de validación cruzada en la subconjunto de data donde no hay promoción, con la precisión de la previsión (FA) como métrica.

Con este enfoque, pudimos llegar a un precisión de previsión de casi 90% con una granularidad a nivel familiar de X días, lo que supone un rendimiento decente, comparable al que logramos en otros proyectos sobre previsión clásica.

Aunque este rendimiento puede ser satisfactorio, nuestro enfoque tiene algunas limitaciones.

Límites

  • En primer lugar, algunos factores externos son no se considera. Por ejemplo, las campañas en los medios de comunicación. Estos factores externos pueden tener un impacto (positivo) en las ventas y, por tanto, nos podría sobrestimar el elevar generados por la promoción estudiada.
  • En segundo lugar, el caso de promociones duraderas: Efectivamente elimina un número importante de fechas del formación dataset.

  • Por último, pero no por ello menos importante, el impacto global de la promoción podría mejorarse teniendo en cuenta efectos múltiples como canibalización, efecto halo, efectos de anticipación/almacenamiento, que se detallan en la última sección.

Ir más allá y próximos pasos

Mejorar la modelización

Podrían sumarse varios efectos para medir el impacto neto de una promoción :

  • Canibalización: El hecho de que un producto esté en promoción y sea por tanto más atractivo repercutirá negativamente en las ventas de un producto similar.

  • Halo: El hecho de que un producto esté en promoción y, por tanto, sea más atractivo, repercutirá positivamente en las ventas de los productos “que se compran juntos con frecuencia”.

  • Anticipación: Los clientes compran menos productos rebajados antes de una promoción, sabiendo que los precios serán más atractivos.

  • Almacenamiento: Los clientes compran menos productos rebajados después de una promoción, tras haber comprado más productos de lo habitual durante la promoción.

Los dos primeros efectos no se incluyeron en nuestro análisis debido a la granularidad elegida (nivel familiar) y los dos últimos eran difíciles de cuantificar a fondo con el tiempo de que disponíamos para este proyecto.

En resumen, el ventas adicionales netas de una promoción podría representarse con esta cascada:

Ir más allá del análisis a posteriori

Como ya se ha dicho, una vez realizado el análisis (posterior) de los ascensos anteriores (Fase A), entonces es posible ir más lejos por predecir la rentabilidad de futuro promociones (Etapa B) y finalmente proponer un optimización del plan de promociones (etapa C).

Por supuesto, predecir (una estimación de) la rentabilidad futura de una promoción es más difícil que estimar la rentabilidad de una promoción anterior porque tenemos no hay data disponibles en torno a la promoción. La idea es reutilice el modelo desarrollado en la fase A utilizando data que no es data histórico sino previsión de data a partir de un modelo de previsión clásico, como sigue:

En primer lugar, entrene el modelo de previsión clásico con los data disponibles (hasta hoy):

A continuación, realice las predicciones con este modelo (el periodo a pronosticar debe cubrir la gama de características temporales que utilizará el “modelo de referencia”):

Por último, utilice el modelo de base entrenado utilizando características temporales basadas en las previsiones del primer modelo y estime la línea de base, que dará el aumento de las ventas:

Por supuesto, este proceso tiene más incertidumbre por construcción, dado que los errores de los dos modelos apilados estarán correlacionados.

Por último, para poder optimizar el plan de promociones, la estrategia consiste en utilizar lo que se ha hecho en la etapa anterior para elija el mejor combinación de parámetros de promoción con el fin de optimice a métrica empresarial como el ROI.

Conclusión

Utilizando previsión contrafactual para resolver problemas empresariales es no es una tarea común que se pueden encontrar en la literatura.

Sin embargo, vimos que podría ser un herramienta poderosa para abordar el problema de evaluar a fondo la rendimiento de promociones anteriores, por previsión de ventas hipotéticas (línea de base) si no hubiera habido ningún ascenso. También exploramos las recomendaciones de ingeniería de rasgos para un modelo autorregresivo (Prophet) o de refuerzo de gradiente (XGBoost). Por último, detallamos algunas pautas para refinar aún más el análisis y también para ir más allá de hacer un análisis a posteriori.

Gracias a los compañeros de data que trabajaron conmigo en este proyecto: Kasra y Ombeline. Gracias también a los Artefactors que corrigió este artículo.

Medio Blog por Artefact.

Este artículo se publicó inicialmente en Medium.com.
¡Síganos en nuestro Medium Blog !