Leonardo Karpinski

Leonardo Karpinski

Mestre do Power BI, criador do Curso Express de Power BI e Curso Completo de Power BI. Formou mais de 16 mil alunos nos últimos anos e participou de projetos em grandes empresas nacionais e multinacionais.

Market Basket Analysis: Análise de Cesta de Carrinho com DAX no Power BI

No curso presencial do último sábado mostrei um tópico bem avançado de DAX, onde realizamos operações de conjuntos através da interseção entre tabelas para encontrar clientes recorrentes e também para encontrar clientes potenciais. Para isso utilizamos as funções INTERSECT e EXCEPT, junto da função CALCULATETABLE.

E o mais legal é que no dia seguinte, segunda-feira, já recebi um feedback de um participante que conseguiu aplicar essas funções para resolver um problema de negócio muito interessante. Muito legal mesmo!

Neste artigo eu resgato uma aula do meu curso Completo onde também uso a função CALCULATETABLE, porém para outro objetivo: realizar Análise de Cesta de Carrinho (Market Basket Analysis) com DAX. Esta técnica faz uso de regras de associação para identificar hábitos de compras dos clientes, fornecendo uma visão da combinação de produtos dentro das cestas de compras dos clientes analisados.

Conhecer o perfil de compra do público-alvo é muito importante para aumentar o potencial de recomendação, ajudando a melhorar as vendas. E, apesar do nome “cesta de carrinho” sugerir compras de supermercados, esta técnica vale para qualquer tipo de vendas que incluem a combinação de diferentes produtos ou serviços.

Para quem ainda não viu o vídeo, dá uma olhada abaixo:

Revendo esse vídeo após o curso presencial, eu mudaria um pouco a medida para utilizar a função INTERSECT e deixá-la um pouco maior, porém mais fácil de ser lida e entendida. Nesta nova abordagem ela ficaria da seguinte forma:

Qde Vendas Produto Filtrado = 

VAR VendasLHS = VALUES('Vendas Internet'[Número Venda]) //Left-Hand-Side

VAR VendasRHS = //Right-Hand-Side
CALCULATETABLE(
    VALUES('Vendas Internet'[Número Venda]);
    ALL(Produto); 
    USERELATIONSHIP(Produto[ID Produto]; 'Produto Filtrado'[ID Produto])    
)

VAR CarrinhoAmbos = INTERSECT(VendasLHS; VendasRHS)

RETURN

COUNTROWS(CarrinhoAmbos)

//Estou ignorando a condicional de "mesma seleção" nesta nova medida

Eu gosto muito de utilizar a função INTERSECT para encontrar valores em comum entre dois conjuntos de dados, sendo que esse padrão acima pode ser usado em diversos cenários, como análise de Cross-Sell, clientes recorrentes, clientes que deram Churn, ou qualquer outro tipo de análise em que você tenha que saber quantas ocorrências fizeram tal coisa e também outra coisa, ou então quantas fizeram tal coisa mas não fizeram outra coisa.

Aliás, com base na medida acima, como você determinaria a quantidade de vendas que possuem determinado produto (LHS) mas não possuem outro determinado produto (RHS)? Deixe seu comentário abaixo!

Exercite-se: essas funções podem lhe fornecer análises muito poderosas!

Grande abraço,
Leonardo

COMPARTILHE ESSE POST

Compartilhar no facebook
Compartilhar no linkedin
Compartilhar no twitter
Compartilhar no pinterest