Probablemente os habréis preguntado muchas veces qué combinación ganadora de productos genera más ventas en su tienda física o en el catálogo de su tienda online.

Esta información puede ser aprovechada para numerosos fines. Entre otros:

  • Cross-selling de productos.
  • Redistribución del catálogo o del escaparate (en caso de tratarse de una tienda física): colocar los artículos que puedan co-ocurrir juntos uno cerca del Basket Market Analysisotro.
  • Campañas de email marketing: ofrecer promociones/descuentos/sugerencias de productos relacionados con el que ya sabemos que han comprado.

Pero, ¿y si además pudiéramos conocer la probabilidad de que, habiendo comprado cierto(s) producto(s), el cliente termine comprando otro(s)?

Existe una metodología llamada Market Basket Analysis que nos ayudará en la búsqueda de estos insights.

Market Basket Analysis

En el mundo online acumulamos una enorme base de datos de las transacciones de compra. Cada transacción consiste en una serie de productos que se han comprado de manera conjunta.

Pero, ¿qué productos se compran conjuntamente con más frecuencia? Mediante la metodología del Basket Market Analysis podemos responder preguntas tales como: ¿Existen relaciones entre ciertos productos, que al comprarlos influyen significativamente en la compra de otros productos? Esto lo entendemos como reglas de asociación entre productos.

Podemos entender estas reglas de asociación como “Si compras A y B, entonces es probable que compres C”.

Una medida de la bondad de estas relaciones son los estadísticos Support, Confidence y Lift:

  • Support: proporción del total de compras en las que X e Y se han comprado conjuntamente.

4

  • Confidence: proporción de compras con X donde también se compró Y. En términos estadísticos, se trata de una probabilidad condicional.

5

  • Lift: Un valor de Lift > 1 indica que los productos X e Y se compran conjuntamente más veces de lo esperado. Por tanto, estamos interesados en aquellas relaciones con un valor de Lift>1.

6

Un ejemplo ficticio de los resultados que podríamos obtener de un análisis de este tipo nos lo proporciona la siguiente tabla:

3

La manera de leer la tabla anterior es, por ejemplo, para la primera entrada: “Los productos A y B se han comprado conjuntamente en el 0.23% del total de las transacciones, y además, en el 95% de las transacciones que contienen el producto B también se ha comprado A”. A priori, puede parecer poco un valor para Support del 0.23%: ¡Solamente esta proporción del total de las transacciones contienen A y B!. Pero suponed que tenemos registradas 12K transacciones, ¡se darían 2760 con los productos A y B!

Implementación en R

Utilizamos el algoritmo apriori para encontrar las reglas de asociación que comentábamos anteriormente. Únicamente se ha de instalar en R el paquete arules y ¡manos a la obra!

Todas las funciones necesarias para el análisis las podemos encontrar cargando dicha librería. En caso de obtener numerosas reglas de asociación (todo depende del tipo de estudio que se realice y de la cantidad de transacciones con las que se trabaje), es de gran ayuda el paquete arulesViz. Este añade características adicionales al paquete arules: se apoya en gráficos muy curiosos de las reglas de asociación, permitiéndonos estudiarlas de una manera más cómoda.

Como curiosidad, y para hacernos una ligera idea de cómo trabaja el algoritmo apriori, primero encuentra las transacciones unitarias (es decir, transacciones que contienen un único producto) más frecuentes. A continuación, estudia todas las combinaciones posibles (dos a dos) de las transacciones unitarias, y se queda con las transacciones que contengan dichas combinaciones y que se dan con más frecuencia. Así, iterativamente, el algoritmo continúa hasta que hallan sido generados todos los conjuntos de ítems más frecuentes con k productos y no se obtengan más conjuntos frecuentes dentro de las transacciones.

Si os encontráis en vuestros inicios con R, que no cunda el pánico. Se ha desarrollado un package interactivo de R que os enseñará a sacarle partido a la herramienta. Para más información: Como empezar a usar R statistics, de mi compañera Anna Fernández.

Los pasos a seguir para llevar a cabo el Basket Market Analysis en R son:

    1. Leemos el Dataset. Únicamente necesitamos una tabla en la que cada fila contenga el ID de transacción y el nombre del producto.7
    2. Agregar por ID de transacción todos los productos comprados. Existe una función de la librería data.table (llamada del mismo modo) que hace las agregaciones de manera muy eficaz:8Otra alternativa para hacer la agregación, mediante la función split:9
    3. Convertir los datos agregados en tipo de objeto “transacción”:10
    4.  Arrancamos el algoritmo mediante la función a priori de la librería arules.11Notad que los campos de los parámetros para Support y Confidence están vacíos. La definición de estos umbrales mínimos depende de la cantidad de transacciones que manejemos. Para definir el umbral mínimo para Support nos podemos apoyar en el siguiente gráfico: frecuencia del producto en las transacciones.13El código de R para obtener el gráfico anterior:12

      Nótese como aparece el artículo más frecuente en menos del 0.3% de las transacciones. La línea roja indica donde hemos decidido fijar el umbral mínimo para Support. Este umbral debe ser lo suficientemente pequeño para que entren en juego varios productos en el análisis (en caso de proporcionar un valor muy grande para Support, es posible que el algoritmo no sea capaz de encontrar association rules).

    5.  Finalmente, visualizaremos las reglas de asociación de productos mediante el siguiente código: inspect(rules).  Así, obtendremos una tabla análoga a la del ejemplo. En el caso de no disponer de reglas de asociación, siempre se puede jugar “relajando” los umbrales mínimos de los parámetros Support y Confidence.

Consideraciones

Resulta muy interesante también estudiar las relaciones entre productos más débiles.

Si el análisis muestra que dos artículos no están relacionados fuertemente, y sin embargo, se encuentran muy próximos en el catálogo online (porque puedan pertenecer a la misma categoría de producto, por ejemplo) cabría replantearse una re-estructuración del catálogo.


¡Y listo!

Indagando en estos resultados, ¡podríamos llevarnos muchas sorpresas analizando únicamente las transacciones!.

¿No has probado este tipo de análisis? ¡Anímate!

Y cualquier pregunta que se os presente, no dudéis en comentar 🙂

 

Basket Market Analysis

2 Comments

  1. Pingback: Basket Market Analytics – M4P

  2. Pingback: Basket Market Analysis - M4P

Leave Comment

Your email address will not be published. Required fields are marked *