Análise Exploratória de Dados (EDA): Um Estudo de Caso com Python e Pandas

Python 29 de Jan de 2024

Texto de Paulo Clemente
Desenvolvedor na Rocketseat

Em um mundo cada vez mais competitivo, entender os fatores que influenciam a retenção de clientes é crucial para qualquer negócio. A análise de churn, que é a taxa de clientes que deixam de usar um serviço, pode oferecer insights valiosos para a tomada de decisão estratégica. Neste artigo, exploraremos um conjunto de dados de contratos de serviço usando Python e a biblioteca Pandas para entender melhor o churn de clientes.

NLW unite | Evento gratuito de programação na prática | Rocketseat
Desafie-se em uma nova tecnologia criando um projeto completo em 3 aulas no maior evento online e gratuito de programação na prática para todos os níveis da Rocketseat.

O que vamos fazer aqui:

Utilizaremos o conjunto de dados "churn_contracts.csv", que inclui informações como duração do contrato, tipo de contrato, se o cliente opta por faturamento eletrônico, método de pagamento, encargos mensais, encargos totais e se o cliente deixou o serviço (churn).

Tenha acesso ao código aqui

Passo 1: Carregamento e Exploração Inicial dos Dados Primeiramente, carregamos o conjunto de dados em um DataFrame do Pandas e realizamos uma análise exploratória inicial para entender sua estrutura:

import pandas as pd

# Carregamento dos dados
df_churn = pd.read_csv('churn_contracts.csv')

# Visualização inicial dos dados
print(df_churn.head())

Após carregar o conjunto de dados, utilizamos df_churn.head() para exibir as primeiras linhas.

💡
Este comando nos mostrou as colunas disponíveis, como 'customerID', 'tenure', 'Contract', entre outras, e nos deu uma ideia inicial sobre os tipos de dados em cada coluna (numéricos e categóricos).

Passo 2: Análise Estatística Descritiva Após carregar os dados, realizamos uma análise estatística descritiva para obter um entendimento básico das variáveis numéricas:

descricao_estatistica = df_churn.describe()
print(descricao_estatistica)

Com o comando df_churn.describe(), obtivemos um resumo estatístico das colunas numéricas, que incluiu:

  • 'Tenure': A média de duração dos contratos era de 32.37 meses, indicando que a maioria dos clientes estava com a empresa há cerca de 2 a 3 anos.
  • 'MonthlyCharges': Os encargos mensais tinham uma média de $64.76, com um desvio padrão de $30.09, mostrando uma variação significativa nos encargos mensais entre os clientes.

Passo 3: Verificação de Valores AusentesVerificamos se havia valores ausentes que pudessem afetar nossa análise:

valores_ausentes = df_churn.isnull().sum()
print(valores_ausentes)
O resultado de df_churn.isnull().sum() indicou que não havia valores ausentes em nenhuma das colunas do conjunto de dados. Isso é importante, pois valores ausentes podem exigir tratamento especial durante a análise.

Passo 4: Análise da Relação entre Churn e Variáveis Categóricas Examinamos como diferentes fatores como tipo de contrato, faturamento eletrônico e método de pagamento influenciam a taxa de churn:

relacao_churn_contract = df_churn.groupby('Contract')['Churn'].value_counts(normalize=True).unstack()
relacao_churn_paperless = df_churn.groupby('PaperlessBilling')['Churn'].value_counts(normalize=True).unstack()
relacao_churn_payment = df_churn.groupby('PaymentMethod')['Churn'].value_counts(normalize=True).unstack()

print(relacao_churn_contract)
print(relacao_churn_paperless)
print(relacao_churn_payment)

Tenha acesso ao código aqui nesse Notebook

Aqui, exploramos a relação entre a taxa de churn e diferentes variáveis categóricas:

  • Tipo de Contrato ('Contract'):
  • Contratos de mês a mês mostraram uma taxa de churn de 42.71%, indicando uma tendência de clientes com esse tipo de contrato a deixarem o serviço com mais frequência do que aqueles com contratos mais longos.
  • Faturamento Eletrônico ('PaperlessBilling'):
  • Clientes que optam por faturamento eletrônico têm uma taxa de churn de 33.57%, sugerindo que essa opção pode estar associada a uma maior propensão de churn.
  • Método de Pagamento ('PaymentMethod'):
  • O método 'Electronic check' apresentou a maior taxa de churn (45.29%), destacando-se como um possível indicador de maior risco de churn.

Nossa análise revelou insights importantes, durante todo o processo concluimos que:

  • A duração média do contrato (tenure) é de 32.37 meses, com encargos mensais médios de $64.76.
  • Não identificamos valores ausentes no conjunto de dados.
  • A taxa de churn é significativamente mais alta para contratos de mês a mês, clientes que optam por faturamento eletrônico e aqueles que usam cheque eletrônico como método de pagamento.

Esta análise demonstra como o uso de ferramentas de análise de dados como Python e Pandas pode fornecer insights valiosos sobre o comportamento do cliente. Compreender os fatores que influenciam o churn pode ajudar as empresas a desenvolver estratégias mais eficazes para retenção de clientes.

Concluindo com um próximo passo:

A relação entre Inteligência Artificial (IA) e as estratégias de análise de churn, como a que realizamos com o conjunto de dados nesse artigo, é profunda e multifacetada. A IA pode ser utilizada para levar essas análises a um nível mais avançado, principalmente por meio de técnicas de aprendizado de máquina. E, um desses meios pode ser a modelagem preditiva por exemplo:

  • Previsão de Churn: Utilizando algoritmos de aprendizado de máquina, é possível construir modelos que preveem a probabilidade de churn de um cliente com base em seus dados. Modelos comuns incluem regressão logística, árvores de decisão, florestas aleatórias e máquinas de vetores de suporte (SVM).
  • Identificação de Fatores Importantes: Esses modelos podem também identificar quais variáveis são mais influentes na previsão do churn, o que pode fornecer insights valiosos para a tomada de decisões estratégicas.

Marcadores