Dados de empréstimo do Clube de Empréstimos


Introdução

Explorando a Distribuição das Finalidades de Empréstimo no Lending Club Loan Data

O Lending Club é uma plataforma de empréstimo peer-to-peer que conecta mutuários que precisam de financiamento com investidores dispostos a emprestar dinheiro. Com uma vasta quantidade de dados disponíveis sobre os empréstimos facilitados pela plataforma, surge uma oportunidade única para analisar os padrões de empréstimo e entender as tendências de financiamento dos mutuários.

Neste projeto, irei focar em explorar a distribuição das finalidades de empréstimo no conjunto de dados do Lending Club Loan Data. Compreender as diferentes razões pelas quais os mutuários solicitam empréstimos pode fornecer insights valiosos sobre as necessidades financeiras dos clientes e as preferências de empréstimo.

Nosso objetivo é realizar uma análise abrangente das finalidades de empréstimo, identificando as categorias mais comuns e menos comuns, visualizando a distribuição por meio de gráficos informativos e explorando possíveis variações demográficas e temporais. Ao fazer isso, esperamos ganhar uma compreensão mais profunda dos padrões de empréstimo dos clientes do Lending Club e das tendências subjacentes que podem influenciar as estratégias de financiamento futuras.

Esta análise não apenas nos permitirá entender melhor as preferências dos mutuários, mas também pode fornecer insights úteis para investidores, instituições financeiras e outros stakeholders interessados no mercado de empréstimos peer-to-peer e nas dinâmicas que o impulsionam.

Tratamento de dados

Obtenção dos dados

Os dados para realização desse projeto foram obtidos através deste link: Base de dados

Carregamento de pacotes

library(rmdformats) 
library(readr)              
library(dplyr)    
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(ggplot2)  
library(knitr)
library(kableExtra)
## 
## Attaching package: 'kableExtra'
## The following object is masked from 'package:dplyr':
## 
##     group_rows
library(htmltools)

Preparação dos dados

Para tratar os dados do conjunto fornecido do Lending Club, precisaremos selecionar as variáveis relevantes para nossa análise da distribuição das finalidades de empréstimo. Aqui estão as variáveis que serão úteis para o nosso objetivo:

addrState: Estado fornecido pelo mutuário no pedido de empréstimo.

anualInc: A renda anual autodeclarada fornecida pelo mutuário durante o registro.

addr_state : O estado fornecido pelo mutuário no pedido de empréstimo

emp_length: Duração do emprego em anos. Os valores possíveis estão entre 0 e 10, onde 0 significa menos de um ano e 10 significa dez ou mais anos.

emp_title: O cargo fornecido pelo Mutuário ao solicitar o empréstimo.

grade: LC atribuído grau de empréstimo

home_ownership: status de propriedade de casa fornecido pelo mutuário durante o registro. Nossos valores são: ALUGUEL, PRÓPRIO, HIPOTECA, OUTROS.

intRate: Taxa de juros do empréstimo

loan_amnt: O valor listado do empréstimo solicitado pelo mutuário. Se em algum momento o departamento de crédito reduzir o valor do empréstimo, isso será refletido nesse valor.

purpose: Uma categoria fornecida pelo mutuário para a solicitação de empréstimo.

term: O número de pagamentos do empréstimo. Os valores estão em meses e podem ser 36 ou 60.

verification_status: Indica se a renda conjunta dos co-mutuários foi verificada pelo LC, não verificada, ou se a fonte de renda foi verificada.

Correção de dados

Para fazer essa análise é ideal filtrar esses dados e trabalhar apenas com os dados necessários para melhor compreensão do conteúdo que pretendo analisar, por isso tratei os dados desse banco e identifiquei as variáveis que serão úteis para o nosso objetivo.

#Carregar o conjunto de dados
df <- read_csv("C:\\Users\\consenso\\Desktop\\loan.csv")
## Rows: 2260668 Columns: 145
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr  (36): term, grade, sub_grade, emp_title, emp_length, home_ownership, ve...
## dbl (106): loan_amnt, funded_amnt, funded_amnt_inv, int_rate, installment, a...
## lgl   (3): id, member_id, url
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
#Verificar os nomes das colunas
colnames(df)
##   [1] "id"                                        
##   [2] "member_id"                                 
##   [3] "loan_amnt"                                 
##   [4] "funded_amnt"                               
##   [5] "funded_amnt_inv"                           
##   [6] "term"                                      
##   [7] "int_rate"                                  
##   [8] "installment"                               
##   [9] "grade"                                     
##  [10] "sub_grade"                                 
##  [11] "emp_title"                                 
##  [12] "emp_length"                                
##  [13] "home_ownership"                            
##  [14] "annual_inc"                                
##  [15] "verification_status"                       
##  [16] "issue_d"                                   
##  [17] "loan_status"                               
##  [18] "pymnt_plan"                                
##  [19] "url"                                       
##  [20] "desc"                                      
##  [21] "purpose"                                   
##  [22] "title"                                     
##  [23] "zip_code"                                  
##  [24] "addr_state"                                
##  [25] "dti"                                       
##  [26] "delinq_2yrs"                               
##  [27] "earliest_cr_line"                          
##  [28] "inq_last_6mths"                            
##  [29] "mths_since_last_delinq"                    
##  [30] "mths_since_last_record"                    
##  [31] "open_acc"                                  
##  [32] "pub_rec"                                   
##  [33] "revol_bal"                                 
##  [34] "revol_util"                                
##  [35] "total_acc"                                 
##  [36] "initial_list_status"                       
##  [37] "out_prncp"                                 
##  [38] "out_prncp_inv"                             
##  [39] "total_pymnt"                               
##  [40] "total_pymnt_inv"                           
##  [41] "total_rec_prncp"                           
##  [42] "total_rec_int"                             
##  [43] "total_rec_late_fee"                        
##  [44] "recoveries"                                
##  [45] "collection_recovery_fee"                   
##  [46] "last_pymnt_d"                              
##  [47] "last_pymnt_amnt"                           
##  [48] "next_pymnt_d"                              
##  [49] "last_credit_pull_d"                        
##  [50] "collections_12_mths_ex_med"                
##  [51] "mths_since_last_major_derog"               
##  [52] "policy_code"                               
##  [53] "application_type"                          
##  [54] "annual_inc_joint"                          
##  [55] "dti_joint"                                 
##  [56] "verification_status_joint"                 
##  [57] "acc_now_delinq"                            
##  [58] "tot_coll_amt"                              
##  [59] "tot_cur_bal"                               
##  [60] "open_acc_6m"                               
##  [61] "open_act_il"                               
##  [62] "open_il_12m"                               
##  [63] "open_il_24m"                               
##  [64] "mths_since_rcnt_il"                        
##  [65] "total_bal_il"                              
##  [66] "il_util"                                   
##  [67] "open_rv_12m"                               
##  [68] "open_rv_24m"                               
##  [69] "max_bal_bc"                                
##  [70] "all_util"                                  
##  [71] "total_rev_hi_lim"                          
##  [72] "inq_fi"                                    
##  [73] "total_cu_tl"                               
##  [74] "inq_last_12m"                              
##  [75] "acc_open_past_24mths"                      
##  [76] "avg_cur_bal"                               
##  [77] "bc_open_to_buy"                            
##  [78] "bc_util"                                   
##  [79] "chargeoff_within_12_mths"                  
##  [80] "delinq_amnt"                               
##  [81] "mo_sin_old_il_acct"                        
##  [82] "mo_sin_old_rev_tl_op"                      
##  [83] "mo_sin_rcnt_rev_tl_op"                     
##  [84] "mo_sin_rcnt_tl"                            
##  [85] "mort_acc"                                  
##  [86] "mths_since_recent_bc"                      
##  [87] "mths_since_recent_bc_dlq"                  
##  [88] "mths_since_recent_inq"                     
##  [89] "mths_since_recent_revol_delinq"            
##  [90] "num_accts_ever_120_pd"                     
##  [91] "num_actv_bc_tl"                            
##  [92] "num_actv_rev_tl"                           
##  [93] "num_bc_sats"                               
##  [94] "num_bc_tl"                                 
##  [95] "num_il_tl"                                 
##  [96] "num_op_rev_tl"                             
##  [97] "num_rev_accts"                             
##  [98] "num_rev_tl_bal_gt_0"                       
##  [99] "num_sats"                                  
## [100] "num_tl_120dpd_2m"                          
## [101] "num_tl_30dpd"                              
## [102] "num_tl_90g_dpd_24m"                        
## [103] "num_tl_op_past_12m"                        
## [104] "pct_tl_nvr_dlq"                            
## [105] "percent_bc_gt_75"                          
## [106] "pub_rec_bankruptcies"                      
## [107] "tax_liens"                                 
## [108] "tot_hi_cred_lim"                           
## [109] "total_bal_ex_mort"                         
## [110] "total_bc_limit"                            
## [111] "total_il_high_credit_limit"                
## [112] "revol_bal_joint"                           
## [113] "sec_app_earliest_cr_line"                  
## [114] "sec_app_inq_last_6mths"                    
## [115] "sec_app_mort_acc"                          
## [116] "sec_app_open_acc"                          
## [117] "sec_app_revol_util"                        
## [118] "sec_app_open_act_il"                       
## [119] "sec_app_num_rev_accts"                     
## [120] "sec_app_chargeoff_within_12_mths"          
## [121] "sec_app_collections_12_mths_ex_med"        
## [122] "sec_app_mths_since_last_major_derog"       
## [123] "hardship_flag"                             
## [124] "hardship_type"                             
## [125] "hardship_reason"                           
## [126] "hardship_status"                           
## [127] "deferral_term"                             
## [128] "hardship_amount"                           
## [129] "hardship_start_date"                       
## [130] "hardship_end_date"                         
## [131] "payment_plan_start_date"                   
## [132] "hardship_length"                           
## [133] "hardship_dpd"                              
## [134] "hardship_loan_status"                      
## [135] "orig_projected_additional_accrued_interest"
## [136] "hardship_payoff_balance_amount"            
## [137] "hardship_last_payment_amount"              
## [138] "disbursement_method"                       
## [139] "debt_settlement_flag"                      
## [140] "debt_settlement_flag_date"                 
## [141] "settlement_status"                         
## [142] "settlement_date"                           
## [143] "settlement_amount"                         
## [144] "settlement_percentage"                     
## [145] "settlement_term"
#Selecionar apenas as colunas relevantes
df_selected <- select(df, loan_amnt, term, int_rate, grade, emp_title, emp_length, home_ownership, annual_inc, verification_status, purpose, addr_state)

Contagem de Empréstimos por Finalidade

Inicialmente optei por trazer dados relevantes baseado nesse banco, e decidi analistar qual a finalidade que os clientes desse banco fazem empréstimo, é algo relevante para mim observar o comportamento das pessoas em relação a utilização desses empréstimos. Segue abaixo como realizei esse processo:

# Contar o número de empréstimos para cada finalidade
contagem_purpose<- df_selected %>%
  count(purpose) %>%
  arrange(desc(n))

# Visualizar as contagens
contagem_purpose
## # A tibble: 14 × 2
##    purpose                  n
##    <chr>                <int>
##  1 debt_consolidation 1277877
##  2 credit_card         516971
##  3 home_improvement    150457
##  4 other               139440
##  5 major_purchase       50445
##  6 medical              27488
##  7 small_business       24689
##  8 car                  24013
##  9 vacation             15525
## 10 moving               15403
## 11 house                14136
## 12 wedding               2355
## 13 renewable_energy      1445
## 14 educational            424

Após obervar essa contagem representei em gráfico os resultados que obtive:

# Criar o gráfico de barras
ggplot(contagem_purpose, aes(x = reorder(purpose, -n), y = n)) +
  geom_bar(stat = "identity", fill = "skyblue") +
  labs(title = "Contagem de Empréstimos por Finalidade",
       x = "Finalidade",
       y = "Número de Empréstimos") +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

Taxa de Inadimplência por Finalidade

Para esta análise, precisaremos calcular a taxa de inadimplência para cada finalidade. A taxa de inadimplência pode ser calculada dividindo o número de empréstimos inadimplentes pelo número total de empréstimos para cada finalidade.

# Filtrar empréstimos inadimplentes
df_default <- df %>%
  filter(loan_status %in% c("Charged Off", "Default"))

# Calcular o número de empréstimos inadimplentes por finalidade
default_counts <- df_default %>%
  group_by(purpose) %>%
  summarise(default_loans = n())

# Calcular o número total de empréstimos por finalidade
total_counts <- df %>%
  group_by(purpose) %>%
  summarise(total_loans = n())

# Juntar os dois conjuntos de dados
default_rate_data <- merge(default_counts, total_counts, by = "purpose")

# Calcular a taxa de inadimplência
default_rate_data$default_rate <- default_rate_data$default_loans / default_rate_data$total_loans

# Ordenar os resultados pela taxa de inadimplência
default_rate_data <- default_rate_data %>%
  arrange(desc(default_rate))

# Exibir os resultados
print(default_rate_data)
##               purpose default_loans total_loans default_rate
## 1      small_business          4465       24689   0.18084977
## 2    renewable_energy           216        1445   0.14948097
## 3              moving          2151       15403   0.13964812
## 4         educational            56         424   0.13207547
## 5  debt_consolidation        161058     1277877   0.12603560
## 6             medical          3292       27488   0.11976135
## 7             wedding           279        2355   0.11847134
## 8               other         15867      139440   0.11379088
## 9            vacation          1680       15525   0.10821256
## 10              house          1513       14136   0.10703169
## 11     major_purchase          5304       50445   0.10514422
## 12   home_improvement         15087      150457   0.10027450
## 13        credit_card         48650      516971   0.09410586
## 14                car          2068       24013   0.08612002

Agora temos a taxa de inadimplência para cada finalidade de empréstimo, ordenada da maior para a menor taxa. Isso nos dá uma ideia clara de quais finalidades têm maior probabilidade de resultar em inadimplência.Agora para melhor visualização dos resultados representarei em

# Criar o gráfico de barras
ggplot(default_rate_data, aes(x = reorder(purpose, -default_rate), y = default_rate)) +
  geom_bar(stat = "identity", fill = "skyblue") +
  labs(title = "Taxa de Inadimplência por Finalidade de Empréstimo",
       x = "Finalidade de Empréstimo",
       y = "Taxa de Inadimplência") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

Montante Médio do Empréstimo

Para analisar o montante médio do empréstimo por finalidade, podemos calcular a média do valor do empréstimo para cada categoria de finalidade. Em seguida, irei representar visualmente os resultados em um gráfico de barras ou em outro tipo de gráfico de sua preferência.

# Calcular o montante médio do empréstimo por finalidade
average_loan_amount_by_purpose <- df %>%
  group_by(purpose) %>%
  summarize(average_loan_amount = mean(loan_amnt))

# Visualizar os resultados
print(average_loan_amount_by_purpose)
## # A tibble: 14 × 2
##    purpose            average_loan_amount
##    <chr>                            <dbl>
##  1 car                              9394.
##  2 credit_card                     15320.
##  3 debt_consolidation              15967.
##  4 educational                      6615.
##  5 home_improvement                14666.
##  6 house                           15704.
##  7 major_purchase                  12682.
##  8 medical                          9474.
##  9 moving                           8391.
## 10 other                           10481.
## 11 renewable_energy                10757.
## 12 small_business                  16443.
## 13 vacation                         6358.
## 14 wedding                         10476.

Esses valores representam o montante médio do empréstimo em dólares para cada finalidade listada. Podemos criar um gráfico de barras para visualizar o montante médio do empréstimo por finalidade.

# Criando um dataframe de exemplo para demonstração
average_loan_by_purpose <- data.frame(
  purpose = c("car", "credit_card", "debt_consolidation", "educational", "home_improvement", "house", "major_purchase", "medical", "moving", "other", "renewable_energy", "small_business", "vacation", "wedding"),
  average_loan_amount = c(9394, 15320, 15967, 6615, 14666, 15704, 12682, 9474, 8391, 10481, 10757, 16443, 6358, 10476)
)

# Criando o gráfico de barras
ggplot(average_loan_by_purpose, aes(x = reorder(purpose, -average_loan_amount), y = average_loan_amount)) +
  geom_bar(stat = "identity", fill = "skyblue") +
  labs(title = "Montante Médio do Empréstimo por Finalidade",
       x = "Finalidade do Empréstimo",
       y = "Montante Médio do Empréstimo") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

Conclusão

Taxa de Inadimplência por Finalidade:

A análise revela uma variação significativa nas taxas de inadimplência entre diferentes finalidades de empréstimo. Isso sugere que o propósito para o qual o empréstimo é solicitado desempenha um papel crucial na probabilidade de inadimplência.

Finalidades como “small_business”, “renewable_energy” e “moving” destacam-se com as maiores taxas de inadimplência, todas acima de 14%. Isso indica que empréstimos concedidos para essas finalidades podem apresentar um risco maior para os credores. Em contraste, finalidades como “car”, “credit_card” e “debt_consolidation” mostram taxas de inadimplência relativamente mais baixas, sugerindo uma maior confiabilidade no pagamento por parte dos mutuários.

Montante Médio do Empréstimo por Finalidade:

A análise do montante médio do empréstimo por finalidade revela diferenças significativas nos valores dos empréstimos concedidos para diferentes propósitos. Por exemplo, empréstimos para “debt_consolidation” têm um valor médio considerável de cerca de $15.967, refletindo a natureza muitas vezes substancial desses tipos de empréstimos destinados à consolidação de dívidas existentes.

Enquanto isso, empréstimos para “educational” têm um valor médio consideravelmente menor, em torno de $6.615, indicando que os empréstimos para educação podem ser de menor montante em comparação com outras finalidades.

Essa variação nos valores médios dos empréstimos destaca a importância de entender as necessidades financeiras específicas dos mutuários e adaptar os produtos de empréstimo de acordo com essas necessidades.

Essas conclusões fornecem uma compreensão mais aprofundada do comportamento dos empréstimos em diferentes categorias de finalidades. Tais insights são cruciais para instituições financeiras e empresas que concedem crédito, permitindo-lhes ajustar suas políticas e estratégias de empréstimo para mitigar riscos e atender melhor às necessidades dos clientes.