Bank Marketing — Uma análise exploratória de dados
Este projeto será baseado no Dataset Bank Marketing encontrado na UC Irvine — Machine Learning Repository e disponibilizado por S. Moro, R. Laureano e P. Cortez, com demandas simuladas por mim com auxilio do Gemini e linguagem Python.
Buscando o perfil dos clientes e insights sobre uma campanha de marketing
Os dados são relacionados com campanhas diretas de marketing de uma instituição bancária portuguesa. A campanha de marketing foi baseada em ligações telefônicas, por vezes mais de uma para o mesmo cliente, para saber se o produto financeiro (termo de depósito bancário) seria aceito ou não.
Como recém chegado no time de dados, o gestor nos fez algumas solicitações a partir dos dados dessa campanha após requisição do time de marketing para otimizar as próximas campanhas:
- Entender o perfil dos clientes do banco e identificar características que influenciam a aceitação dos produtos oferecidos;
- Avaliar a eficácia da campanha de marketing direto para depósitos a prazo, identificando os melhores canais de contato e o perfil do público-alvo mais receptivo.
Portando nosso objetivo será:
- Buscar a relação entre as variáveis, e como elas influenciam na aceitação dos produtos;
- Identificar o perfil dos clientes mais propensos a fechar negócios após as campanhas;
- Entender como e quais os fatores da campanha que influenciam na aceitação das ofertas.
Bibliotecas Python utilizadas neste projeto
# Manipulação de dados
import pandas as pd
import numpy as np
# Análise Exploratória de Dados
import matplotlib.pyplot as plt
import seaborn as sns
# Configurações do notebook
import warnings
warnings.filterwarnings('ignore')
plt.style.use('ggplot')
my_palette = sns.color_palette(["#497178","#58aba1","#d5b881","#c59781","#b47580","#6e7091","#284261","#33343d", "#f5f5f7"])
sns.set_palette(my_palette)
pd.set_option('display.max_rows', 20)
pd.set_option('display.max_columns', 40)
Tratando os outliers
Após conferir a estrutura dos dados através do método shape, head(), tail() e info() percebi a necessidade de também checar possíveis outliers que pudessem afetar a análise.
# Visualizando os extremos na coluna 'balance' com um boxplot
fig, ax = plt.subplots(figsize = (8, 6))
sns.boxplot(df, x = 'balance')
ax.set_title('Boxplot de "balance"', fontsize = 15, pad = 12, loc = 'left')
ax.set_xlabel('Balanço em €', fontsize = 10)
plt.show()
# Visualizando os extremos em 'duration' com um boxplot
fig, ax = plt.subplots(figsize = (8, 6))
sns.boxplot(df, x = 'duration')
ax.set_title('Boxplot de "duration"', fontsize = 15, pad = 12, loc = 'left')
ax.set_xlabel('Duração das ligações em segundos', fontsize = 10)
plt.show()
# Visualizando os extremos na coluna 'duration' com um boxplot
fig, ax = plt.subplots(figsize = (8, 6))
sns.boxplot(df, x = 'campaign')
ax.set_title('Boxplot de "campaign"', fontsize = 15, pad = 12, loc = 'left')
ax.set_xlabel('Número de ligações feitas', fontsize = 10)
plt.show()
Após confirmar a presença de dados extremos, removi todos utilizando essa estrutura de código em cada coluna.
# Calculando os quartis, e o intervalo interquartil
Q1 = df['campaign'].quantile(0.25)
Q3 = df['campaign'].quantile(0.75)
IQR = Q3 - Q1
# Calculando os limites inferior e superior
limite_inf = Q1 - 1.5 * IQR
limite_sup = Q3 + 1.5 * IQR
# Remoção dos outliers no campaign
df = df[(df['campaign'] >= limite_inf) & (df['campaign'] <= limite_sup)]
df.reset_index(inplace = True, drop = True)
df.info()
Com os dados devidamente limpos dei inicio à análise exploratória.
O perfil dos clientes
O primeiro passo para entender o perfil dos clientes da instituição bancária foi analisar cada aspecto demográfico presente no conjunto de dados. Idade, emprego, nível de educação, estado civil e situação financeira.
A partir dessas informações já conseguimos ter entendimento de como “parecem” nossos clientes. Agora é o momento de buscar o perfil do cliente que fecha o contrato do produto bancário.
O cálculo da taxa de conversão foi feita a partir de:
- Clientes que Contrataram / (Cliente que Contrataram + Clientes que não Contrataram) * 100.
Usarei esse cálculo durante o prosseguimento da análise. Estudantes são os clientes com maior taxa de conversão, seguidos por aposentados, desempregados e pessoas em função de gerencia. Estudantes e desempregados tem uma capacidade de endividamento baixa, e podem no futuro se tornar inadimplentes.
Consumidores mais velhos tem maior tendência de aceitar o produto bancário, especialmente aqueles entre 30 e 50 anos de idade.
Apesar do maior volume maior de aceitação do produto estar entre os clientes casados, a taxa de conversão é maior entre solteiros e divorciados.
A taxa de conversão é maior em indivudos com nível superior completo e com nível educacional desconhecido, o maior volume se divide em nível de superior e de ensino médio completo.
Maior balanço em conta indica maior espaço no orçamento para um investimento, é outro público que deve ser focado.
A taxa de conversão sobre pessoas sem um financiamento imobiliário é o triplo das que tem, além do volume também ser maior.
Pessoas sem empréstimos, claramente, tem maior potencial para adquirir novos produtos financeiros.
Algumas conclusões
O cliente mais inclinado a contratar o produto tem:
- Entre 30 e 50 anos de idade;
- Maior balanço em conta;
- É solteiro ou divorciado;
- Não empréstimos ou financiamentos imobiliários ativos;
- Tem escolaridade de nível superior ou secundária;
- É estudante, aposentado ou está em cargos de gerencia;
A partir desses pontos, o time de marketing tem uma segmentação parar criar campanhas direcionadas para estes públicos.
Buscando entender a campanha
Primeiro vamos buscar compreender novamente a distribuição dos dados relacionados a campanha dentro do conjunto de dados.
A partir disso já é possível entender várias coisas sobre a campanha. Como o momento onde mais contatos foram feitos e os meios. Chegou o momento de ver a conversão da campanha.
A maior taxa de sucesso e volume de sucesso está nos contatos por celular.
Os meses com as maiores taxas de sucesso em conversão são dezembro, março, outubro e setembro. A época de fim de ano parece propicia para campanhas direcionadas. Podemos pensar isso também em campanhas segmentadas para os públicos com maior porcentagem de sucesso na contratação do produto.
A taxa de sucesso é maior na primeira ligação, a segunda e a terceira tem uma taxa de sucesso semelhante e uma grande quantidade em mais contatos.
Alguns insights sobre a campanha
- É necessário treinar a equipe para melhorar o convencimento na primeira ligação. Focar nos grupos mais suscetíveis ao aceite do produto, poderá trazer melhores resultados;
- O tempo de ligação também é um fator, romper a barreira dos 3 minutos traz maior probabilidade de fechamento;
- Os meses de março, setembro, outubro e dezembro são onde se tem maior taxa de conversão, campanhas bem segmentadas combinadas com essas datas podem trazer bons resultados.
Conclusões
Ao fim foi possível traçar um perfil de clientes em potencial para contratação de serviços do banco, além de buscar entender fatores que possam aumentar a efetividade das próximas campanhas. Entender o comportamento dos consumidores e o seu perfil é essencial para auxiliar o marketing a otimizar seus resultados e diminuir seus custos, além de naturalmente aumentar os resultados comerciais.
Até mais!
Venho buscando usar mais o Medium como meio de escrever e me comunicar, e o objetivo é trazer mais projetos pra cá. Você pode me encontrar no: