Customer churn: como prever e evitar perder clientes
Este é o terceiro de uma série de artigos que escrevi dedicada ao tema Customer Analytics. Anteriormente, mostrei como extrair conhecimento dos dados de uma base de clientes através de um modelo de clustering e como identificar que produtos se vendem melhor em conjunto do que separadamente com um algoritmo de regras de associação. Desta vez, tentarei descrever um modelo de Churn, com a capacidade de prever que clientes abandonarão a empresa num determinado período de tempo.
O objetivo da demonstração Customer Analytics é combinar modelos preditivos e de extração de conhecimento dos dados com as visualizações interativas do Power BI. Os modelos podem ser depostos numa plataforma na cloud e ser consumidos via API pelo Power BI permitindo o melhor de dois mundos.
O que é Churn?
De uma forma resumida, Churn é a perda de um cliente. A análise de Churn é tão mais relevante quanto mais recorrente for a natureza do negócio.
Por exemplo, um ginásio pode adotar um modelo de subscrição anual que incentive a permanência dos seus clientes por períodos de um ano. Neste cenário, Churn poderia ser definido como um cliente que não renova a sua subscrição anual.
Noutros casos, quando o padrão de consumo é mais discricionário, a definição de Churn poderá ser diferente. Uma grande superfície comercial conta com a fidelização dos seus clientes de produtos de consumo de primeira necessidade, mas não dispõe de um contrato que torne permanente a sua relação com o cliente. Neste tipo de situações, Churn poderá considerar aqueles clientes que não compram durante 3 ou 6 meses seguidos.
As definições de Churn variam e é importante que a empresa estipule os seus critérios de cálculo de forma consistente. O Churn mede-se sob a forma de taxa: divide-se o número de clientes perdidos (“churnados”) pelo número total de clientes num determinado momento no tempo.
Seja qual for o tipo de negócio em questão, dispor de um modelo preditivo de Churn é valioso. Se o modelo for preciso, a empresa poderá agir atempadamente, evitando que os clientes abandonem a empresa. Se pensarmos no valor de um cliente ao longo de toda a sua vida útil, talvez se justifique investir na preservação dos clientes atuais.
As empresas sabem disto e é precisamente por isso que desenvolvem ações específicas de manutenção de clientes: vales de desconto, contactos mais personalizados para avaliar a satisfação dos clientes, campanhas, organização de eventos são alguns exemplos de ações que se podem desenvolver para preservar os clientes. O modelo permite aumentar a eficácia deste tipo de ações.
O modelo preditivo
Vamos recorrer a um modelo de classificação binária com a capacidade de prever que clientes vão “churnar” e que clientes vão permanecer. O resultado do modelo será 1 ou 0, respetivamente.
Antes de analisarmos os dado que vão treinar este modelo, vamos fazer um corte no tempo de forma retrospetiva, para que seja possível identificar que clientes “churnaram” e “não-churnaram”. No nosso modelo, Churn será calculado com base nos clientes que não compram durante 6 meses seguidos, pelo menos.
Uma visão geral sobre os dados
As features que vamos utilizar na construção do modelo são as seguintes: número de transações, volume de vendas, quantidade, produto mais comprado, margem percentual, se é ou não distribuidor, a que cluster pertence, o país onde está localizado, a antiguidade em meses e o número de reclamações.
A variável a prever corresponde à coluna “Churn” que será igual a 0 ou 1 consoante o cliente não tenha “churnado” ou “churnado” durante o período em análise. Portanto, é por esta razão que o problema a resolver é do tipo classificação binária.
Nesta tabela, cada linha corresponde a um cliente, cuja identificação é dada pela coluna “CustomerID” e cada coluna a uma feature que será incorporada no modelo, exceto, como referido, a coluna “Churn” que é a que estamos a prever.
Análise descritiva
Numa visão muito rápida sobre o atual desempenho, é relativamente fácil verificar que, de um universo de 7.691 clientes, 20,1% abandonaram a empresa. No gráfico seguinte, é possível ver esta distribuição por país:
Também é possível verificar que existe uma correlação forte entre o número de reclamações e a propensão a abandonar.
Por outro lado, os distribuidores parecem abandonar menos do que os não-distribuidores.
Desenvolvimento do modelo preditivo
Para resolver este problema, testámos um conjunto de modelos de classificação. Nos dados de treino, estes modelos apresentaram os seguintes resultados:
Como podemos verificar, o melhor modelo em termos de accuracy é o Light Gradient Boosting Machine (lightgbm) com um resultado de 93.98%. Este resultado indica que o modelo é capaz de prever com 93.98% de precisão que clientes vão abandonar e que clientes vão permanecer na empresa.
Nada mau para uma primeira abordagem aos dados de treino!
Em segundo lugar, em termos de desempenho medido pela accuracy, ficou o algoritmo Random Forest (rf) com 94,07%.
Ambos os algoritmos são “ensembles”, isto é, são combinações de vários modelos, que através de um sistema de voto, escolhem os parâmetros e atributos que conduzem ao melhor desempenho, de acordo com uma medida de perda ou erro.
Resumidamente, boosting é uma técnica que, de forma sequencial, acrescenta modelos baseados em árvores de decisão procurando a cada modelo corrigir as falhas do modelo anterior, tornando-o mais preciso a cada interação.
Random forest também se baseia em árvores de decisão, mas segue uma lógica diferente. Desenvolve muitos modelos de árvores de decisão (por exemplo, 100, 500 ou 1.000 modelos) escolhendo aleatoriamente um subconjunto de features em cada um. Como resultado final, o modelo escolhe o resultado mais frequente de todos os submodelos.
Embora os resultados destes modelos pareçam muito bons, à primeira vista, é necessário ter em consideração que estamos a lidar com dados de treino ainda. O modelo ainda não foi testado em dados que não conhece e é provável que ocorra over-fitting, ou seja, que o modelo se ajuste excessivamente aos dados de treino e que não seja tão eficaz a prever em dados novos, que ainda não viu.
Por outro lado, como métrica, a accuracy pode não ser a mais indicada para lidar com um problema de classificação binária em que os dados estão desbalanceados, isto é, para lidar com dados em que uma das classes (0) é muito mais frequente do que a outra (1). Como vimos, taxa de Churn é de 20,1%, portanto, se previrmos que 100% dos clientes não vão abandonar, estaremos a errar em 20,1%, o que corresponde a uma taxa de accuracy de 79,9%.
Um modelo tão básico como este parece bastante eficaz, quando na verdade não é.
Assim, vale a pena analisar também as seguintes medidas:
- Recall. Mede o número de previsões positivas acertadas (true positives) em proporção do número total de casos positivos efetivamente verificados.
- Precision. Mede o número de true positives em proporção do número total de casos positivos previstos.
Como é mais penalizador para a empresa prever que um cliente vai manter-se fiel, quando ele de facto abandona a empresa do que prever que um cliente vai abandonar quando ele se mantém fiel, os erros têm custos diferentes, os falsos negativos são mais penalizadores do que os falsos positivos. Portanto, na afinação do modelo, vamos ter em consideração esta diferenciação.
Fast-forward para o modelo final
Vamos avançar um pouco mais rápido agora, porque o espaço é curto e não serei capaz de o manter atento até aqui se me perder em todos os detalhes técnicos. Por uma série de razões, optei por afinar e escolher o random forest como o modelo preferido. (Se estiver interessado em conhecer os detalhes desta decisão, contacte-me e fornecerei os pormenores).
Os resultados obtidos – desta vez com dados de teste, isto é, com dados diferentes daqueles utilizados na construção (ou treino) do modelo são os seguintes para 2308 clientes:
Como referido, optei por privilegiar o recall por forma a diferenciar os custos dos dois tipos de erros. Na matriz de confusão abaixo é possível analisar onde o modelo acertou e onde falhou:
Como vemos, o modelo acertou em 1.659 clientes, prevendo que se iriam manter e que de facto se mantiveram. Também acertou em 417 clientes que abandonaram a empresa. Portanto, a accurarcy é de (1659+417)/(1659+417+189+43) = 89.95%.
Já sabemos que o recall é importante. Não queremos correr o risco de perder clientes quando o modelo prevê que eles se mantenham fiéis. Por isso, o modelo foi afinado para o máximo de recall e temos 417/(43+417) = 90.65%. O modelo acertou em 90.65% dos clientes que efetivamente “churnaram”.
Por outro lado, a precision é igual a 417/(189+417) = 68.81%. Dos 606 clientes que o modelo previu “Churn”, acertou em 68.81%.
É fácil aumentar a precision à custa do recall e vice-versa. Basta prever que todos os clientes vão “churnar” e o recall seria de 100%. No entanto, a precision baixaria para 19.93%. O modelo escolhido parece equilibrar bem as diversas métricas.
Valorizar os true positives
Quando este modelo é colocado em prática, pode ler os dados de novos clientes e apontar uma previsão. Com esta nova ferramenta, é possível encaminhar os clientes com previsão “Churn” para um conjunto de ações de fidelização, como campanhas ou vales de desconto. Neste momento, a empresa pode medir quantos clientes consegue recuperar e quantificar o seu valor.