Bank Marketing — Uma análise exploratória de dados

André Lopes
7 min readApr 22, 2024

--

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.

Photo by Jonathan Cooper on Unsplash

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.

Descrição das colunas do conjunto de dados.

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:

  1. Entender o perfil dos clientes do banco e identificar características que influenciam a aceitação dos produtos oferecidos;
  2. 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()
Output
# 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()
Output
# 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()
Output

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 grande massa de cliente está entre seus 20 e 60 anos de idade.
Estão em posições de trabalho braçal, funções técnicas e de gerência.
A maioria concluiu o segundo grau ou a graduação.
O maior volume é de clientes que está em um casamento.
Uma quantidade ínfima está em débito com o banco.
Maioria mantém saldo em conta de até 3000 euros.
Mais da metade dos clientes possui financiamento de imóvel, pessoas sem este tipo de divida tem maior potencial para adquirir produtos do bancário.
Existe uma margem muito grande de pessoas sem um empréstimo contratado, o que aponta possível disponibilidade de crédito para contratar produtos bancários.

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.

Profissão x Aceitação do Produto
Taxa de conversão por Profissão.

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.

Idade x Aceitação do Produto.

Consumidores mais velhos tem maior tendência de aceitar o produto bancário, especialmente aqueles entre 30 e 50 anos de idade.

Estado Civil x Aceitação do Produto.
Taxa de conversão por Estado Civil.

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.

Escolaridade x Aceitação do Produto.
Taxa de Conversão por Nível de Educação.

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.

Balanço x Aceitação do Produto.

Maior balanço em conta indica maior espaço no orçamento para um investimento, é outro público que deve ser focado.

Financiamento Imobiliário x Aceitação do Produto.
Taxa de Conversão por Financiamento Imobiliário.

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.

Empréstimos x Aceitação do Produto.
Taxa de Conversão por Empréstimo.

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.

Maioria dos contatos foi feito através de celular. Existe a necessidade de um tracking melhor, por conta dos dados desconhecidos.
Distribuição do Número de Contatos por Mês.
Distribuição da duração das ligações. Maioria está entre 0 e 4 minutos de duração.
Número de ligações para cada cliente. A maior parte foi contatada entre 1 e 2 vezes.

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.

Meio de Contato x Aceitação da Campanha.
Taxa de conversão por meio de contato.

A maior taxa de sucesso e volume de sucesso está nos contatos por celular.

Mês do Contato x Aceitação da Campanha.
Taxa de conversão por mês de contato.

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.

Número de Contatos x Aceitação da Campanha.
Taxa de sucesso por número de ligações.

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.
Photo by Eduardo Soares on Unsplash

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:

--

--