Cervejas e Fraldas, e essa estranha (cor)relação

Fernanda Monteiro
adap-nord
Published in
5 min readAug 16, 2020
Photo by Markus Spiske on Unsplash

Muitas pessoas entram no mundo da análise de dados e big data se deparam com a história da correlação de compra entre cervejas e fraldas. Uma rede americana de varejo teria descoberto, através do seu grande volume de dados e de técnicas de mineração e processamento, que esses dois tipos de produtos tem uma grande correlação entre si.

A história é amplamente divulgada no meio, servindo talvez como maior exemplo de como a mineração de dados pode gerar insights interessantes, inesperados e valiosos sobre o comportamento dos clientes de uma empresa e seus hábitos de compras.

Mas de onde vem essa história?

Pode parecer algo recente pelo boom da área de ciência de dados, mas em 1998 a Forbes publicou um artigo [1] já mencionando o tal folclore e avisando às empresas os possíveis problemas de se investir em infraestrutura para análise dos dados, algo que era muito caro para a época.

Entretanto, essa história teve origem um pouco antes, em 1992, quando um consultor da empresa Teradata buscava uma correlação com itens de bebês para aumentar as vendas. Eis que apenas com consultas em SQL chegou a tal conclusão, sem estatística ou análises avançadas de Big Data.

Sendo tão difundida, é de se esperar que esse tipo de correlação apareça também ao se analisar os dados de uma empresa com uma abrangência tão grande de clientes quanto é o Nordestão. Será que isso é verdade? Vamos analisar!

Photo by Nathália Rosa on Unsplash

Análise dos dados de compras no Nordestão e técnicas

Para isso iremos utilizar o algoritmo apriori que é comumente utilizado para fazer análise de cesta.

Em um artigo de 1994 foi proposto uma solução baseada em regras para análise de cestas e que é bastante usada entre as grandes empresas de varejo. Esse algoritmo identifica a frequência de compras de um item ou um conjunto de itens em relação a outro.

É usada a notação:

{A} => {B}

Significa que ao se comprar o tem A existe uma boa probabilidade de o tem B também ser comprado na mesma cesta.

Para se ter o resultado desejado é necessário preparar a base de dados. Eles precisam estar no seguinte formato: cada linha representando a transação de compra, as colunas terão todos os materiais possíveis de se aparecer em uma compra, os valores das células serão valores que representam se um material estava ou não em determinada transação de compra.

E como resultado se tem alguns indicadores, o support, confidence e lift:

  • Support: é a razão entre a quantidade de vezes que o item A e B aparecem juntos em uma compra pela quantidade total de transações.
  • Confidence: é a relação entre o valor de support obtido pela probabilidade de compras do item B.
  • Lift: o resultado mais importante, ele mostra quais são as chances de comprar o item A e B juntos em vez do item A sozinho. É calculado utilizando o valor de confidence obtido dividido pela probabilidade de compra dos itens A. Assim, um valor de lift abaixo de 1 representa uma correlação negativa e acima de 1 representaria uma correlação positiva.

Usando R e Python

A implementação desse algoritmo pode ser encontrada nas bibliotecas arules para o R e no MLxtend para o Python.

Na biblioteca do python é necessário apenas o uso de duas funções a apriori e a association_rules, onde a função apriori recebe a base e calcula os supports e a associonation_rules calcula os outros indicadores. Essas funções recebem parâmetros para filtrar o resultado, como o valor mínimo do support ou o valor mínimo do lift.

Formato do banco de entrada

Usando o python e o MLxtend, para alguns dias de vendas temos que para:

{Fralda} => {Cerveja}

Support = 0.011

Confidence = 9.34 x 10^-7

Lift = 4.34 x 10^-7

Ou seja, temos uma correlação negativa na compra, ela pode até existir, mas é muito raro em relação a tantas combinações.

Photo by David Veksler on Unsplash — o possível culpado das compras entre cervejas e fraldas

Mas quais itens têm mais probabilidade de saírem juntos na mesma cesta com fralda ou cerveja? Vemos que quem compra fralda infantil têm mais probabilidade de levar leite em pó ou iogurte, materiais mais relacionados a alimentação infantil do que o consumo de materiais para adultos.

Já considerando a cerveja como item antecedente, se vê itens para acompanhamentos como salgadinhos e queijos. Também se vê o pães e afins, um material que é mais do dia-a-dia, algo que não se espera muito relacionar com cerveja.

Conclusões

Hoje vimos que a correlação entre fralda e cerveja é um folclore baseado em fatos reais. A história acabou ficando famosa por ser inusitada e por criar uma relação com os pais que precisam ir ao supermercado e acabam comprando cerveja, tornando a história fácil de acreditar. Ponto é que, mesmo não sendo real, ela serviu para impulsionar as empresas a abrirem as portas para análise de dados.

--

--