Segmentar Clientes usando a Análise RFM (Recency, Frequency and Monetary) com R

Reinaldo Zezela
10 min readJul 30, 2022

--

Photo by dlxmedia.hu on Unsplash

No presente Post, vamos explorar alguns conceitos e análises relacionados com os parâmetros RFM (Recency, Frequency and Monetary).

Vamos abordar sobre o que é RFM e como podemos usar esses parâmetros para segmentar os clientes e orientar as campanhas de marketing com base no RFM scores. Portanto, vamos começar por definir o que é RFM e por que é importante.

1.0 Introdução

1.1 O que é RFM?

RFM é um método usado para analisar o valor do cliente. RFM provém de Recency, Frequency and Monetary, isto é Recente, Frequência e Valor Monetário.

Recency: pretendemos saber há quanto tempo o cliente visitou nosso site ou há quanto tempo um cliente comprou o nosso produto?

Frequência: com que frequência os clientes visitam o nosso site ou com que frequência compram os nossos produtos?

Valor Monetário: quanto os clientes gastam quando compram os nossos produtos?

1.2 Qual é a importância de Análise RFM?

A Análise RFM é uma estrutura de marketing usada para entender e analisar o comportamento do cliente com base nos três factores acima descritos, Recente, Frequência e Valor Monetário (RFM).

Essa técnica ajuda as empresas a segmentar sua base de clientes em diferentes grupos homogêneos para que possam dedicar-se e direccionar diferentes estratégias de marketing para cada grupo.

1.3 Aplicação de Análise RFM em uma Base de Dados

Para demonstrar a aplicabilidade de Análise RFM, seleccionamos a seguinte base de dados disponível publicamente em https://www.kaggle.com/datasets/vijayuv/onlineretail.

Este conjunto de dados contém todas as compras feitas em uma empresa de venda à Retalho online com sede no Reino Unido durante um período de 12 meses.

Portanto, vamos nos concentrar em segmentar os clientes com base nos seus comportamentos de compras, isto é vamos determinar os parâmetros RFM de cada cliente tendo em conta as suas transacções históricas.

2.0 Análise RFM

Vamos carregar os dados em R.

2.1 Examinar os Dados

Examinando os dados notamos que, a variável InvoiceDate deve ser transformada para o tipo date(). E, optamos por criar uma nova variável created_at para manipularmos os dados.

Também, vamos converter o tipo de dados da variável CustomerID para factor, visto que este não será usado para efeitos de cálculos.

Também, podemos obter o resumo das principais estatísticas usando a função summary().

Entretanto, há 135,080 registos cujo CustomerID possui valores nulos (NA’s). Portanto, estes registos serão removidos usando a função complete.cases().

2.2 Análise Exploratória de Dados

Pretendemos avaliar o nível de vendas e o número de pedidos ou ordens de compra por categoria de produtos. Portanto, vamos usar o pacote ggplot2 para visualizar os dados.

Devido a um elevado número de categórias de produtos, Description, retornamos apenas os Top 50 produtos com maior receita nos 12 meses do periódo em análise.

Contudo, REGENCY CAKESTAND 3 TIERé o produto mais rentável com um montante de 132,870 GBP. De seguida, é o WHITE HANGING HEART T-LIGHT HOLDERcom 93,824 GBPe assim por diante.

Graficamente, podemos representar de modo seguinte:

Top 50 produtos mais rentaveis

Por um lado, temos os produtos mais rentáveis, isto é com mais valor (valor = preço * quantidade), como tratado acima. Por outro, queremos saber quais são os produtos mais solicitados pelos clientes. Em outras palavras, produtos solicitados com maior frequência.

Entretanto, para responder a essa pergunta devemos avaliar o número de pedidos ou ordens de compra feitas pelos clientes, independentemente da quantidade solicitada.

Também, vamos representar graficamente.

Top 50 produtos mais solicitados

Como podemos observar, a sequência ou ordem de produtos mais solicitados pelos clientes difere com a dos produtos mais rentáveis.

Ademais, podemos verificar qual é a região com maior base de clientes.

E, graficamente:

Base de Clientes por paises

O output mostra que, há mais clientes no Reino Unido (United Kingdom)com aproximadamente 4,000, seguida de, Alemanha (Germany) e França (France) com 95 e 87, respectivamente.

2.3 Determinar os parâmetros RFM

Primeiro, vamos definir o periódo em análise bem como a data de referência para as análises.

O output mostra transacções desde ”2010–12–01" para ”2011–12–09". Então, vamos considerar data de referência para análise o dia 2011–12–10.

Portanto, vamos calcular a diferença entre a data de referência, 2011–12–10 e as datas dos pedidos de compras.

Portanto, agora podemos calcular os parâmetros RFM.

Recency (recente) é a diferença entre a data de referência e a data em que o cliente fez a sua última compra, isto é a sua compra mais recente.

Vamos obter a Frequency (Frequência) somando o número de pedidos feitos por cliente.

Monetary (Valor Monetário) será calculado somando o valor total gasto por cliente durante o periódo em análise.

Vamos examinar os dados da tabela customer_analysis_tbl.

O output mostra que o seguinte:
Recency (Recente): há clientes que não fazem compra há mais de 374 dias, portanto o periódo mais longo. E, o valor mediano é de 50 dias;
Frequency (Frequência): há clientes que efectuaram próximo de 8,000 pedidos durante os 12 meses do periódo em análise. O valor mediano é de 43 pedidos por cliente.
Monetary (Valor Monetário): há um cliente que gastou um valor total em compras na ordem de 279,489.00 GBP nos 12 meses do periódo em análise. O valor mediano gasto por cliente é de 658.30 GBP. Também, mostra que 75% dos clientes gastam menos de 1,627.10 GBP.
first_purchase: será útil para identificar os novos clientes.

Usamos o valor mediano, visto que o valor médio pode ser influenciado pelos valores extremos.

Portanto, vamos usar o histograma para visualizar graficamente os parâmetros RFM.

2.3.1 Histograma com parâmetro Recency (Recente)

Histograma para Recency (Recente)

Verifica-se que, há muitos clientes que realizam compras dentro dos últimos100 dias em relação à data de referência. Contudo, também há clientes que não fazem compras há mais de 300 dias.

Desta forma, podemos identificar os clientes e direcioná-los de forma diferente. Mas, é muito cedo para definir tendo apenas usado o parâmetro Recency.

2.3.2 Histograma com parâmetro Frequency (Frequência)

Histograma para Frequency (Frequência)

Nota-se uma difereça abismal entre as frequências de compras dos clientes. Por exemplo, existe um cliente com 8,000 pedidos é um valor extremamente elevado e distante da maioria dos clientes.

Entretanto, muitos são os clientes com frequências de pedidos de compras reduzidas.

2.3.3 Histograma com parâmetro Monetary (Valor Monetário)

Aqui também, o output mostra o quanto a distribuição é afectada pelos valores extremos. Portanto, a maioria dos clientes gastou menos de 1,000 GBP durante o periodo em análise.

2.3.4 Diagrama de Dispersão

Quando temos mais de duas variáveis, escolhemos um gráfico de dispersão para analisar.

Recency vs Frequency

Podemos constatar que, há muitos clientes a realizarem suas compras nos últimos 100 dias.

Frequency vs Monetary

O output mostra que, muitos clientes efectuam compras no valor abaixo de 1000 GBP. No entanto, existem compras outliers, isto é com valores fora do comum.

2.4 Como Segmentar os Clientes?

Não podemos chegar a nenhuma conclusão com base em apenas os parâmetros RFM de forma independente. Portanto, temos que tomar em conta todos os 03 factores.

O objectivo principal é segmentar os nossos clientes e encontrar os mais valiosos. Por isso, vamos adoptar o princípio de Pareto 80/20, de que 80% do nosso resultado provém de 20% do nosso esforço. Traduzindo para o marketing, significa que 80% da nossa receita é resultado de 20% de nossos clientes mais valiosos.

Agora, vamos ver como encontrar os clientes mais valiosos.

2.4.1 Determinar Percentil

Para determinar os RFM scores vamos usar os quartis ou percentis. Portanto, vamos dividir o conjunto de dados em 05 partes iguais, ou seja divisão em 20% cada parte. O objectivo é encontrar os Top 20 clientes mais valiosos fazendo jus a lei de pareto 80/20.

Monetary (Valor Monetário)

O output mostra que, durante o periódo em análise:

  • os clientes Top20 gastaram um valor acima de 2023.00 GBP ;
  • os 20% seguintes gastaram entre 920.00 e 2023.00 GBP; e
  • os últimos 20% dos clientes gastaram menos de 246.00 GBP.

Frequency (Frequência)

O output mostra o seguinte:

  • os clientes Top20 compraram mais de 125 vezes ao longo do periódo em análise;
  • os seguintes 20% dos clientes compraram entre 59 e 125 vezes; e
  • os últimos 20% dos clientes compraram menos de 14 vezes durante o periódo em análise.

Recency (Recente)

E, finalmente analisamos a actividade mais recente para cada cliente. Para esse parâmetro em particular recency, a ordem de classificação é inversa, isto é os Top20 clientes são os primeiros 20% do percentil. Portanto, o output mostra que:

  • os Top20 clientes fizeram compras nos últimos 12 dias;
  • os seguintes 20% de clientes compraram no intervalo entre 12 e 32 dias; e
  • os últimos 20% de clientes ficaram mais de 174 dias sem efectuar nenhum compra, isto é a sua última compra foi há aproximadamnete 6 meses atrás.

2.4.2 Calcular o RFM scores

Para calcular os RFM score, vamos usar o percentil 20 (P20), isto é dividir a série de dados em 05 partes iguais. Em outras palavras, significa que os Top20 clientes ficam com pontuação máxima de 5 (cinco) pontos, enquanto que os últimos 20% ficam com a pontuação mínima de 1 (um) ponto.

Caso particular, vai para o parâmetro R (Recency), onde a ordem deve ser invertida, isto é os valores baixos levam pontuação máxima (5 pontos) enquanto que, os valores altos ficam com a pontuação minima (1 ponto).

Portanto, o melhor cliente tem a pontuação máxima de 555 pontos (RFM score) e o pior com pontuação mínima de 111 (RFM score) pontos. Mas, para obtermos uma pontuação de três digitos, fazemos a combinação da pontuação dos parâmetros RFM, usando a fórmula seguinte:

  • RFM_score = Recency_score * 100 + Frequency_score * 10 + Monetary_score.

Note que, os clientes com elevado RFM score apresentam valores altos para os parâmetros Frequency e Monetary e baixos para Recency. Por exemplo, o CustomerID = 12347 com RFM_score 555 é considerado melhor cliente, enquanto que o cliente CustomerID=12353 com RFM_score 111 é o pior cliente.

Portanto, para clientes com valores RFM score intermédios precisam de uma análise mais cuidadosa. Como será verificado a seguir.

2.4.3 Definir a Segmetação de Clientes

A segmentação dos clientes será feita usando RFM score. Por isso, precisamos cuidadosamente de definir e analisar os intervalos dos RFM scores. Assegurando a não duplicação dos clientes em vários segmentos, isto é cada cliente pertence exclusivamente a um único segmento.

Como podem ter constatado essa abordagem gera 125 segmentos se considerarmos cada RFM score individualmente como sendo um segmento. O que tornaria o processo muito dificil de analisar.

De um modo geral, o parâmetro Monetary é visto como uma métrica agregadora para sumarizar as transações. Assim, dos 125 segmentos (RFM score) podem ser reduzidos para 25 segmentos apenas usando os parâmetros Recency e Frequency.

Ademais, se fizermos a combinação destes 25 podemos alcançar segmentos mais manejáveis e intuitivos, reduzindo deste modo para 6-8 segmentos.

Está foi a fase mais delicada de todo o processo. Encontrar um critério para definir a segmentação de clientes que faça sentido para o seu negócio. Alguns artigos sugerem a definição dos segmentos com base no bom senso e na natureza do negócio. Então, não conformado com essa abordagem, tentei encontrar um critério que fosse geral e independente da natureza do negócio.

Com ajuda da Tabela 1 abaixo, definimos os segmentos usando o seguinte critério:

Tabela 1: Definição de Segmentos

2.4.4 Distribuição dos Clientes por Segmentos

Vamos avaliar como os clientes foram distribuidos pelos segmentos definidos.

O output mostra a quantidade de clientes distribuidos pelos segmentos definidos.

Podemos também, agregar os dados por segmentos.

3.0 Visualização de Dados

Para visualizar os dados, vamos apresentar 02 tipos de gráficos:

  • treemap (recomendado); e
  • gráfico de barras.

3.1 Treemap

Treemap

3.2 Gráfico de Barras

Gráfico de Barras

4.0 Conclusão

No presente post foi demonstrado como aplicar a técnica RFM usando a ferramenta R para segmentar os clientes com base nos seus hábitos de consumo.

Portanto, esse é um instrumento bastante valioso para um expert em marketing para definir estratégias de como actuar para os diferentes segmentos, independentemente da indústria em que estiver envolvido.

Aplicamos também, o princípio de Pareto 80/20 para identificar os Top 20 clientes mais valiosos que contribuem com 80% da receita.

5.0 Referência

  1. https://www.r-bloggers.com/customer-segmentation-using-rfm-analysis/
  2. https://www.r-bloggers.com/customer-segmentation-part-1-k-means-clustering/
  3. https://www.putler.com/rfm-analysis/
  4. https://blog.rsquaredacademy.com/customer-segmentation-using-rfm-analysis/
  5. https://earlconf.com/2017/downloads/london/presentations/EARL2017_-_London_-_Alexander_Campbell_-_Customer_segmentation.pdf
Logo

--

--