Qlik Community

Qlik Brasil

Group community for Brazil users. discussion only in Portuguese.

Highlighted
fabio_vallone
Contributor

Market Basket Analysis

Colegas, bom dia! Tudo bem?

Estou procurando a best practice para fazer uma análise semelhante àquelas feitas em Mercado, do tipo "quais produtos saem em conjunto no mesmo cupom" (market basket analysis).

No meu script, carregando a tabela uma única vez, ao selecionar o produto A, eu vou na dimensão dos "cupons", seleciono os possíveis, volto e desmarco a seleção de A; desta forma eu analiso "tudo que saiu nos cupons onde houve aparição do produto A". Funciona, mas gostaria de saber se existe uma forma mais simples/eficiente de fazer esta análise.

Pensei em carregar a tabela "duas vezes", renomeando todos os campos da segunda carga, deixando somente o Cupom como chave entre elas; assim, ao marcar o produto A na primeira tabela, terei selecionado, da segunda tabela, todos os cupons onde o item A apareceu (inclusive o próprio A, mas isto não tem problema).

Porém, isto significa carregar "duas vezes" a tabela cheia (e é uma tabela muito grande e cheia de dimensões selecionáveis).

Seria esta a melhor prática para tratar este tipo de análise, ou há uma solução mais sofisticada? Pesquisei alguns posts sobre usar as expressões P() e E() em Set Analysis, mas elas resolveriam mesmo que eu tenha muitas dimensões selecionáveis na tabela?

Desde já agradeço.

Fabio.

Tags (1)
1 Solution

Accepted Solutions
fernando_tonial
Valued Contributor

Re: Market Basket Analysis

Olá Fabio,

Tenho esses exemplos que podem ser úteis.

Um utiliza a função P() do Set Analysis.

Count({1<NomeProduto={'$(vProduto1)'}>} PedidoID)

Count({1<PedidoID=P({1<NomeProduto={'$(vProduto1)'}>})>} PedidoID)

Count({1<PedidoID=P({1<NomeProduto={'$(vProduto1)'}>}) * P({1<NomeProduto={'$(vProduto2)'}>})>} PedidoID)

O outro faz em Script.

Don't worry, be Qlik.

Tonial.

2 Replies
fernando_tonial
Valued Contributor

Re: Market Basket Analysis

Olá Fabio,

Tenho esses exemplos que podem ser úteis.

Um utiliza a função P() do Set Analysis.

Count({1<NomeProduto={'$(vProduto1)'}>} PedidoID)

Count({1<PedidoID=P({1<NomeProduto={'$(vProduto1)'}>})>} PedidoID)

Count({1<PedidoID=P({1<NomeProduto={'$(vProduto1)'}>}) * P({1<NomeProduto={'$(vProduto2)'}>})>} PedidoID)

O outro faz em Script.

Don't worry, be Qlik.

Tonial.

fabio_vallone
Contributor

Re: Market Basket Analysis

Tonial, entendi sua lógica, recupero o produto por variável e passo ele em Set Analysis para compor todos os possíveis cupons relacionados. Muito bom! Acredito que assim já resolve meu problema, e mantém o script leve.

Obrigado!