Market Basket Analysis

Conceitos de Market Basket Analysis
Rstats
Author
Published

June 3, 2023

Market Basket Analysis ou Análise de Cesta de Compras (também é conhecida como Association Rule Mining - mineração de regras de associação) permite a análise de associações de elementos.

O valor desta técnica é descobrir associações não-óbvias que sirvam de insumo para a tomada de decisões.

Para apresentar os principais conceitos vamos utilizar um universo de transações compostas por 6 transações cada uma com os itens:

Principais conceitos para análise de associações

Para realizarmos a análise vamos utilizar alguns conceitos.

O primeiro dele é o de Regra de Associação, ou simplesmente regra. Uma regra é uma relação entre 2 ou mais produtos. A regra A -> B significa a associação dos dois produtos A e B serem comprados juntos. Ou ainda (A,C) -> B significa a análise se a compra de B e C está associada à compra de B.

Na regra A -> B, A é chamado LHS (Left Hand Side) e B é chamado de RHS (Right Hand Side).

Para um produto ou uma regra podemos determinar as seguintes medições:

  1. Suporte (Support)
  2. Confiança (Confidence)
  3. Sustentação (Sustentação)
  4. Convicção (Conviction)

Vamos analisar o significado de cada um deles.

Suporte

Suporte é a probabilidade com que um produto ou regra de aparecer no universo de transações analisadas.

\[ \begin{aligned} \begin{split} Support & = \frac{Número\ de\ transações\ na\ qual\ X\ aparece}{Número\ total\ de\ transações}\\ & = P(X) \end{split} \end{aligned} \]

Suporte também pode ser calculado para regras.

O suporte de uma regra indica a probabilidade de uma regra aparecer dentro do conjunto de todas as transações.

\[ supp(A\ \rightarrow\ B) = P(A \cap B) \]

Por exemplo, podemos calcular o supporte para as seguintes regras do nosso exemplo:

  • supp((shirt, umbrella) -> headphones) = ?

  • supp(flask, radio) -> shirt) = ?

  • supp(headphone -> radio) =?

Um conceito derivado do suporte é o do limite do suporte (support threashold).

Chamamos de limite do suporte ao valor do suporte de um item ou regra que possua valor significativo para os lucros.

Neste caso, consideraremos apenas as demais regras e items que estejam acima deste limite.

Confiança

A confiança de uma regra indica a probabilidade condicional de A e B serem comprados dado que A é comprado.

\[ \begin{equation} \begin{split} Confidence(A\ \rightarrow\ B) & = \frac{Support(A, B)}{Support(A)}\\ & = \frac{P(A \cap B)}{P{A}}\\ & = P(B|A) \end{split} \end{equation} \]

No nosso exemplo, podemos perguntar “Qual a confiança de que quando umbrella e headphones são comoprados, radio também será comprado”?

\[ Confidence((umbrella, headphones)\ \rightarrow\ radio) = ? \]

Confiança é uma medida que traz um pequeno problema.

Eventualmente o produto RHS (right hand side) possui um forte poder de venda por si só.

Neste caso, a informação sobre a confiança não é necessariamente verdadeira: não sabemos se RHS (right hand side) está sendo comprado em função de LHS (left hand side) ou por si só.

Para resolvermos isto, utilizamos outra medição chamada Sustentação (lift).

Sustentação

A sustentação mede se a ocorrência da regra \(A\ \rightarrow\ B\) é maior do que as ocorrências de \(A\) e \(B\) individualmente.

O valor da sustentação indica quantas vezes é mais provável encontrarmos a regra do que seus componentes. Isto significa que se o valor for maior que 1, a regra é significativa. Se o valor for menor do que 1 a regra não é significativa.

\[ \begin{equation} \begin{split} Lift(A\ \rightarrow\ B) & = \frac{Confiança(A\ \rightarrow\ B)}{Support(B)}\\ & = \frac{P(A \cap B)}{P(A)\ *\ P(B)} \end{split} \end{equation} \]

Convicção

Convicção mede se a associação entre RHS (right hand side) e LHS(left hand side).

Conviction = \frac{1\ -\ Support(Y)}{1\ -\ Confidence(X->Y)}

Algoritmo arules

Arules é um algoritmo que mapeia todas as associações possíveis entre as variáveis existentes e assim permite que seja feita uma análise de mineração de regras significativas.

Citation

BibTeX citation:
@misc{abreu2023,
  author = {Abreu, Marcos},
  title = {Market Basket Analysis},
  date = {2023-06-03},
  url = {https://abreums.github.io/posts/2023-06-03-Market-Basket-Analysis/},
  langid = {pt-br}
}
For attribution, please cite this work as:
Abreu, Marcos. 2023. “Market Basket Analysis.” June 3, 2023. https://abreums.github.io/posts/2023-06-03-Market-Basket-Analysis/.