tutoriales.com

Análisis de Cestas de Compra con Power BI: Descubriendo Patrones de Venta

Este tutorial te guiará paso a paso en la creación de un análisis de cestas de compra utilizando Power BI. Descubrirás cómo identificar qué productos se compran juntos, permitiéndote tomar decisiones estratégicas sobre promociones, colocación de productos y recomendaciones. Aumenta tus ventas entendiendo mejor el comportamiento de tus clientes.

Intermedio20 min de lectura6 views
Reportar error

🛒 Introducción al Análisis de Cestas de Compra

El análisis de cestas de compra (Market Basket Analysis) es una técnica de minería de datos que revela relaciones entre los artículos que los clientes compran juntos. Es una herramienta poderosa para cualquier negocio minorista, ya que permite comprender el comportamiento del cliente, optimizar la disposición de productos, crear ofertas de paquetes atractivas y mejorar las estrategias de cross-selling y up-selling.

En este tutorial, exploraremos cómo implementar un análisis de cestas de compra utilizando Power BI, una de las herramientas de inteligencia de negocios más populares y robustas del mercado. No solo construiremos visualizaciones, sino que también prepararemos los datos de manera adecuada para este tipo de análisis.

¿Por qué es importante el Análisis de Cestas de Compra? 🤔

Comprender qué productos suelen ser comprados simultáneamente puede ofrecer insights valiosos:

  • Optimización de la disposición de la tienda: Colocar productos relacionados cerca el uno del otro puede aumentar las compras impulsivas.
  • Estrategias de cross-selling: Recomendar productos complementarios durante el proceso de compra.
  • Creación de ofertas y paquetes: Diseñar promociones donde la compra de un producto desbloquea descuentos en otro.
  • Gestión de inventario: Prever la demanda de productos complementarios para evitar roturas de stock.
  • Personalización: Ofrecer recomendaciones de productos más relevantes a los clientes.
💡 Consejo: Piensa en el clásico ejemplo de "cerveza y pañales". Aunque parezca contra-intuitivo, un estudio famoso encontró que estos dos productos a menudo se compraban juntos en supermercados, lo que llevó a nuevas estrategias de colocación de productos.

🛠️ Preparación de los Datos para el Análisis

El éxito de cualquier análisis en Power BI comienza con una buena preparación de datos. Para el análisis de cestas de compra, necesitamos datos a nivel de transacción, donde cada fila represente un artículo dentro de una cesta específica. Esto significa que si un cliente compra 3 artículos, habrá 3 filas distintas en nuestros datos, todas con el mismo identificador de transacción.

Estructura de Datos Requerida

Necesitamos una tabla que contenga, como mínimo, los siguientes campos:

  • ID_Transaccion: Un identificador único para cada cesta de compra (ej. ID de recibo).
  • ID_Producto: Un identificador único para cada producto comprado.
  • Nombre_Producto: El nombre descriptivo del producto.

Idealmente, también podríamos tener:

  • Fecha_Compra: La fecha y hora de la transacción.
  • Cliente_ID: El identificador del cliente.
  • Cantidad: La cantidad de cada producto.
  • Precio_Unitario: El precio de un solo producto.

Vamos a asumir que tenemos una tabla llamada Ventas con al menos ID_Transaccion y Nombre_Producto.

Carga de Datos en Power BI

  1. Abre Power BI Desktop.
  2. Ve a la pestaña "Inicio" y haz clic en "Obtener datos".
  3. Selecciona tu fuente de datos (ej. Excel, CSV, Base de datos SQL). Para este tutorial, asumiremos un archivo CSV.
  4. Navega y selecciona tu archivo. En la ventana de "Navegador", asegúrate de que tus datos se ven correctamente y haz clic en "Transformar datos" para abrir Power Query Editor.
Inicio Obtener Datos Seleccionar Fuente (CSV) Cargar Datos Transformar Datos Carga Directa Power Query

Limpieza y Transformación en Power Query 🧹

En Power Query Editor, es crucial asegurarnos de que nuestros datos estén en el formato correcto.

  1. Verificar tipos de datos: Asegúrate de que ID_Transaccion sea numérico o texto, Nombre_Producto sea texto.
  2. Eliminar duplicados (si aplica): Si tus datos ya están a nivel de transacción-producto y no hay cantidades, un ID_Transaccion y Nombre_Producto duplicado en la misma fila podría indicar un problema. Sin embargo, para cantidades mayores a uno, necesitarías una columna Cantidad.
  3. Renombrar columnas: Si tus columnas no tienen nombres claros como ID_Transaccion y Nombre_Producto, reonómbralas para mayor claridad.
🔥 Importante: Para el análisis de cestas de compra, cada fila DEBE representar una instancia de un producto dentro de una transacción. Si tienes una fila por transacción con todos los productos en una columna, tendrás que desnormalizarla.

Una vez que los datos estén limpios, haz clic en "Cerrar y aplicar" para cargar los datos en Power BI Desktop.

⚙️ Creación de un Modelo de Datos para el Análisis

Para realizar el análisis de cestas de compra, necesitamos una manera de relacionar cada producto en una transacción con todos los demás productos en la misma transacción. Esto a menudo se logra mediante una técnica de auto-unión o mediante el uso de tablas puente.

Auto-unión (Self-Join) en Power Query

Esta es la técnica más común y efectiva para preparar los datos para asociaciones de productos. Crearemos dos copias de nuestra tabla de ventas y las uniremos por ID_Transaccion.

  1. En Power BI Desktop, ve a "Transformar datos" para abrir Power Query Editor.
  2. Selecciona tu tabla de Ventas.
  3. Haz clic derecho en la tabla y selecciona "Referenciar". Renombra esta nueva tabla a Ventas_A.
  4. Haz clic derecho en la tabla Ventas original de nuevo y selecciona "Referenciar". Renombra esta a Ventas_B.

Ahora tenemos dos tablas idénticas (Ventas_A y Ventas_B) que referencian los mismos datos.

  1. Con Ventas_A seleccionada, ve a la pestaña "Inicio" y haz clic en "Combinar consultas" -> "Combinar consultas como nuevas".
  2. En la ventana "Combinar", selecciona Ventas_A como la tabla principal y Ventas_B como la tabla secundaria.
  3. Selecciona la columna ID_Transaccion en ambas tablas.
  4. Elige el tipo de combinación "Izquierda externa".
  5. Haz clic en "Aceptar". Renombra la nueva tabla combinada a Cestas_Analisis.

Ahora, la tabla Cestas_Analisis contendrá todas las combinaciones de productos dentro de cada transacción. Cada fila tendrá Ventas_A.Nombre_Producto (Producto 1) y Ventas_B.Nombre_Producto (Producto 2) de la misma transacción.

Filtrado y Limpieza de la Tabla Combinada

En la tabla Cestas_Analisis:

  1. Expande la columna Ventas_B haciendo clic en el icono de dos flechas y selecciona solo Nombre_Producto (renómbralo a Producto_Asociado).
  2. Filtra las filas donde Ventas_A.Nombre_Producto es igual a Producto_Asociado. Esto elimina las combinaciones de un producto consigo mismo, que no son útiles para el análisis de cestas. Para ello, selecciona la columna Ventas_A.Nombre_Producto, haz clic en el filtro y desmarca la opción de que sea igual a Producto_Asociado o crea un filtro personalizado.
    • Filtro de fila -> No es igual a -> [Producto_Asociado]
  3. Opcional: Si solo te interesan las combinaciones únicas (Producto A con Producto B, pero no Producto B con Producto A), puedes crear una columna condicional para ordenar los nombres de productos alfabéticamente y luego eliminar duplicados. Sin embargo, para visualizaciones interactivas, a menudo es útil mantener ambas direcciones.

Una vez terminada la preparación en Power Query, haz clic en "Cerrar y aplicar". Ahora tendrás tu tabla Cestas_Analisis lista en Power BI Desktop.

60% Preparación de Datos

📊 Creación de Métricas DAX Clave

Para el análisis de cestas de compra, las métricas más importantes son la Soporte, la Confianza y la Elevación.

Definición de Métricas

  • Soporte (Support): La frecuencia con la que un conjunto de productos aparece en el total de transacciones. P(A y B) = (Número de transacciones que contienen A y B) / (Número total de transacciones).
  • Confianza (Confidence): La probabilidad de que un cliente compre el Producto B dado que ya compró el Producto A. P(B|A) = (Número de transacciones que contienen A y B) / (Número de transacciones que contienen A).
  • Elevación (Lift): Indica la fuerza de la asociación entre A y B. Si Lift > 1, es una asociación positiva; si Lift < 1, es negativa; si Lift = 1, son independientes. Lift(A, B) = Confianza(A -> B) / Soporte(B).

Cálculo de Métricas en DAX

Primero, necesitamos el número total de transacciones únicas.

Total Transacciones = COUNTROWS(DISTINCT(Ventas[ID_Transaccion]))

Ahora, calcularemos las métricas para la tabla Cestas_Analisis:

1. Transacciones con Producto 1 y Producto 2 (para Soporte y Confianza)

Esta es la base. Necesitamos contar cuántas transacciones contienen una combinación específica de Producto_A y Producto_B. Sin embargo, dado nuestro modelo de auto-unión, cada fila de Cestas_Analisis ya representa una transacción que contiene Producto_A y Producto_B (donde Producto_A es Ventas_A.Nombre_Producto y Producto_B es Cestas_Analisis[Producto_Asociado]).

Para obtener el número de transacciones únicas para una combinación dada, podemos simplemente contar las filas donde los productos son distintos.

Transacciones_AB = 
CALCULATE(
    DISTINCTCOUNT(Cestas_Analisis[ID_Transaccion]),
    ALLSELECTED(Cestas_Analisis)
)
📌 Nota: Usamos `ALLSELECTED` para que el cálculo se ajuste a cualquier filtro aplicado en las visualizaciones (por ejemplo, si filtramos por un producto específico).

2. Soporte (Support)

Soporte AB = DIVIDE([Transacciones_AB], [Total Transacciones])

3. Transacciones con Producto 1 (para Confianza)

Necesitamos contar cuántas transacciones contienen solo el Producto_A (el producto en el contexto de la fila actual del visual). Esto se hace filtrando la tabla original Ventas.

Transacciones_A = 
VAR CurrentProductA = SELECTEDVALUE(Cestas_Analisis[Nombre_Producto])
RETURN
    CALCULATE(
        DISTINCTCOUNT(Ventas[ID_Transaccion]),
        FILTER(ALL(Ventas), Ventas[Nombre_Producto] = CurrentProductA)
    )
🔥 Importante: `SELECTEDVALUE` funciona mejor en visualizaciones donde solo hay un `Nombre_Producto` en el contexto. Si necesitas el cálculo para un filtro más complejo, tendrías que ajustar el contexto.

4. Confianza (Confidence)

Confianza A a B = DIVIDE([Transacciones_AB], [Transacciones_A])

5. Soporte de B (para Elevación)

Necesitamos el soporte del Producto_B (el Producto_Asociado) de manera independiente.

Soporte B = 
VAR CurrentProductB = SELECTEDVALUE(Cestas_Analisis[Producto_Asociado])
RETURN
    DIVIDE(
        CALCULATE(
            DISTINCTCOUNT(Ventas[ID_Transaccion]),
            FILTER(ALL(Ventas), Ventas[Nombre_Producto] = CurrentProductB)
        ),
        [Total Transacciones]
    )

6. Elevación (Lift)

Elevacion A a B = DIVIDE([Confianza A a B], [Soporte B])

📈 Visualizaciones Clave en Power BI

Una vez que tenemos nuestras métricas DAX, podemos crear visualizaciones potentes para explorar las asociaciones.

1. Matriz de Asociación de Productos

Una matriz es excelente para ver las asociaciones entre pares de productos.

  1. Arrastra un visual de "Matriz" al lienzo.
  2. En "Filas", arrastra Cestas_Analisis[Nombre_Producto].
  3. En "Columnas", arrastra Cestas_Analisis[Producto_Asociado].
  4. En "Valores", arrastra las métricas Confianza A a B, Soporte AB y Elevacion A a B.

Esto creará una tabla donde las filas son los productos de origen y las columnas son los productos asociados. Podrás aplicar formato condicional para resaltar las asociaciones más fuertes.

Matriz de Asociación de Productos Producto A Producto B Producto C Producto A Producto B Producto C Identidad A → B Confianza: 0.70 Soporte: 0.05 Elevación: 1.50 A → C Confianza: 0.40 Soporte: 0.02 Elevación: 1.10 B → A Confianza: 0.60 Soporte: 0.05 Elevación: 1.50 Identidad B → C Confianza: 0.55 Soporte: 0.08 Elevación: 1.80 C → A Confianza: 0.30 Soporte: 0.02 Elevación: 1.10 C → B Confianza: 0.45 Soporte: 0.08 Elevación: 1.80 Identidad Confianza (Probabilidad) Soporte (Frecuencia) Elevación (Correlación)

2. Gráfico de Barras para las Mejores Asociaciones

Para identificar rápidamente las asociaciones más fuertes, un gráfico de barras es ideal.

  1. Arrastra un visual de "Gráfico de barras apiladas" (o agrupadas).
  2. En "Eje", crea una nueva columna calculada combinando los nombres de los productos para la asociación:
Asociacion Producto = Cestas_Analisis[Nombre_Producto] & " -> " & Cestas_Analisis[Producto_Asociado]
Arrastra `Asociacion Producto` al "Eje".

3. En "Valores", arrastra Elevacion A a B. 4. Puedes añadir un filtro de "Top N" en el panel de filtros para mostrar solo las N asociaciones con mayor Elevación. 5. Aplica formato condicional para resaltar las asociaciones donde Elevacion A a B es mayor que 1.

3. Slicer para Filtrar por Producto Principal

Un slicer (segmentador de datos) es crucial para la interactividad.

  1. Arrastra un visual de "Segmentación de datos" al lienzo.
  2. Arrastra Cestas_Analisis[Nombre_Producto] al campo "Campo".

Ahora, cuando selecciones un producto en el slicer, todas las visualizaciones se actualizarán para mostrar las asociaciones relacionadas con ese producto específico.

💡 Consejo: Considera también crear un *slicer* para `Cestas_Analisis[Producto_Asociado]` para poder explorar en ambas direcciones.

🚀 Interpretación de los Resultados y Toma de Decisiones

Una vez que tengas tus visualizaciones, el siguiente paso es interpretar los datos y transformarlos en decisiones de negocio.

Entendiendo las Métricas

  • Elevación (Lift) > 1: Los productos se compran juntos con más frecuencia de lo que se esperaría por azar. Cuanto mayor sea el Lift, más fuerte es la asociación positiva. ¡Estas son las asociaciones que queremos explotar!
  • Elevación (Lift) = 1: No hay asociación entre los productos; son independientes.
  • Elevación (Lift) < 1: Los productos se compran juntos con menos frecuencia de lo esperado. Podrían ser productos sustitutos o simplemente no complementarios.

Ejemplos Prácticos de Aplicación

  • Promociones: Si el Lift entre "Café" y "Azúcar" es alto, puedes ofrecer un descuento en el azúcar cuando el cliente compra café.
  • Diseño de la tienda: Si "Pan" y "Mermelada" tienen un Lift alto, asegúrate de que estén ubicados cerca el uno del otro en el supermercado.
  • Recomendaciones online: Si un cliente añade "Leche" a su carrito, y sabes que "Cereales" tiene un Lift alto con "Leche", puedes sugerirle "Cereales".
  • Agrupación de productos: Crear paquetes como "Kit de Desayuno" con "Café", "Pan" y "Mermelada" si sus asociaciones son fuertes.
⚠️ Advertencia: Una alta elevación no siempre significa una relación de causa y efecto, solo una correlación. Siempre considera el contexto de negocio.

✨ Consejos Avanzados y Consideraciones

Filtrado por Soporte Mínimo

En ocasiones, una alta Elevacion puede surgir de un número muy bajo de transacciones (bajo Soporte). Es útil filtrar las asociaciones para que solo muestren aquellas con un Soporte mínimo, por ejemplo, Soporte AB > 0.01 (1% del total de transacciones) para asegurar que la asociación sea estadísticamente significativa y comercialmente relevante.

Excluir Productos de Baja Relevancia

Algunos productos, como "Bolsas de la compra" o "Artículos de oferta de un céntimo", pueden aparecer en casi todas las transacciones, generando falsos positivos. Exclúyelos de tu análisis de cestas en Power Query si no son relevantes.

Segmentación de Clientes

Realiza este análisis para diferentes segmentos de clientes (ej. clientes premium, clientes nuevos) o por diferentes categorías de productos. Las asociaciones pueden variar significativamente.

¿Cómo puedo añadir un filtro de soporte mínimo? Puedes aplicar un filtro visual en tus visualizaciones. Selecciona el visual (ej. el gráfico de barras), ve al panel de "Filtros", arrastra la medida `Soporte AB` a la sección "Filtros de este objeto visual" y establece un valor "es mayor o igual que" (ej. `0.01`).

✅ Conclusión

El análisis de cestas de compra en Power BI es una herramienta invaluable para cualquier negocio que busque profundizar en el comportamiento de compra de sus clientes. Al seguir los pasos de preparación de datos, creación de métricas DAX y visualización que hemos cubierto, estarás bien equipado para descubrir patrones ocultos y tomar decisiones estratégicas basadas en datos.

Recordemos que la clave está en una buena preparación de datos y una interpretación cuidadosa de las métricas de Soporte, Confianza y Elevación. ¡Ahora es tu turno de aplicar estos conocimientos y desbloquear el potencial de tus datos de ventas!

Tutoriales relacionados

Comentarios (0)

Aún no hay comentarios. ¡Sé el primero!