Política V3
Introdução
Este documento foi elaborado pela equipe de risco da Sol Agora. Todas as informações são estritamente confidenciais.
O presente trabalho tem como objetivo desenvolver o primeiro modelo de crédito da Sol Agora, visando minimizar a inadimplência e maximizar a produção. Atualmente, utilizamos os scores negativo e positivo padrões da Boa Vista. Para aprimorar nosso modelo de crédito, introduzimos o score HVA3 do Serasa e novos scores da Boa Vista, criando alternativas aos modelos de prateleira por aqueles mais alinhados ao modelo de negócio de financiamento de placas solares.
Para isso, utilizamos um modelo linear generalizado (GLM), que, em comparação aos modelos de machine learning, oferece maior facilidade de interpretação e monitoramento. A análise rigorosa de dados históricos e a introdução de novas variáveis permitem identificar padrões e prever com maior precisão a probabilidade de inadimplência.
Além disso, incorporamos informações sobre o uso de produtos de alto e baixo risco do Banco Central (SCR) e dados públicos fornecidos pelo Big Data Corp, como vínculo empregatício na RAIS, recebimento de benefícios sociais ligados ao combate da extrema pobreza e declaração de imposto de renda. Embora essas informações não tenham sido diretamente úteis na modelagem, elas podem ser valiosas na decisão de derivação para a mesa de crédito.
Análise de Dados
Scores
A modelagem terá como alvo de classificação a marcação de inadimplência após 60 dias da primeira parcela. Embora a métrica de perda esperada seja baseada na inadimplência de 30 dias (First Payment Default), optamos por usar 60 dias para obter maior estabilidade, pois acreditamos que este prazo adicional proporciona uma visão mais precisa do comportamento de pagamento dos clientes.
Foram utilizados dados de três fontes principais: Quod, Boa Vista Serviços (BVS) e Serasa. A diversidade dessas fontes nos permitiu explorar diferentes aspectos do comportamento de crédito dos clientes. Entre os scores analisados, o score HVA3 (Score de Varejo Serasa) do Serasa foi o que apresentou o melhor desempenho, independentemente do tipo de modelo e combinação utilizada. Este desempenho é particularmente interessante, uma vez que a marcação de inadimplência foi baseada apenas em contratos internos que passaram pela aprovação dos scores positivo e negativo da BVS.
Esse resultado sugere que, apesar do viés teórico em favor dos scores da BVS, o score HVA3 do Serasa foi mais eficaz na previsão de inadimplência. Isso levanta questões importantes sobre a adequação dos scores atualmente utilizados e aponta para a necessidade de considerar uma abordagem mais diversificada na avaliação de crédito. A incorporação de diferentes fontes de dados e a análise de múltiplos scores podem contribuir significativamente para uma modelagem mais robusta e para a mitigação dos riscos de crédito.
| Score | KS |
|---|---|
| HVA3 | 32.7 |
| Positivo P5 BVS | 30.3 |
| Credito Pessoal BVS | 27.4 |
| Veículos BVS | 27.0 |
| Positivo P6 BVS | 26.8 |
| HSV3 | 26.4 |
| Score Quod | 26.4 |
| Moveis + Eletro BVS | 26.0 |
| Vest. + Acessórios BVS | 26.0 |
| HFI3 | 25.9 |
| Cartao Credito BVS | 24.4 |
| HSPN | 23.7 |
| Fintechs BVS | 22.4 |
| Negativo BVS | 13.9 |
Modelagem
Para a modelagem, utilizou-se um modelo linear generalizado (GLM). Os principais motivos para a escolha dessa técnica foram a facilidade de interpretação e a simplicidade na implementação e deploy. No entanto, os modelos GLM possuem algumas limitações, como a suposição de linearidade entre os parâmetros, o que pode não capturar todas as nuances dos dados.
Treinamos todas as combinações possíveis de modelos com no mínimo três variáveis e no máximo sete, limitando a inclusão de no máximo duas variáveis da Boa Vista para economizar custos. Em cada rodada de treino, criamos um algoritmo que aplicava hard filters em cada variável, eliminando o pior decil em termos de inadimplência antes de modelar. Isso resultou em modelos mais confiáveis, apesar de um KS menor, já que a cauda de pior inadimplência era filtrada.
Feature selection
Um modelo válido deveria ter parâmetros negativos para os scores, indicando que quanto maior o score, menor a probabilidade de default. Caso contrário, considerava-se que o modelo não captava corretamente os efeitos esperados. Além disso, exigimos que todos os parâmetros tivessem p-valor <= 5%.
Levamos em conta a estabilidade do KS tanto no treino quanto no teste. Como não utilizamos validação out of time, a estabilidade entre as bases era essencial para garantir a confiabilidade do modelo. Exigimos que os modelos apresentassem um KS mínimo de 30 (calculado sobre 7 faixas) tanto no treino quanto no teste.
Além disso, consideramos a estabilidade dos clusters. Entre as 7 faixas, um critério de desempate foi a não inversão das PDs por faixa, ou seja, o cluster 6 deveria ter menor inadimplência que o 5, e assim por diante. Este não foi um critério eliminatório em caso de uma única inversão, devido às limitações quantitativas, mas mais de uma inversão indicava que o modelo poderia introduzir muito ruído em produção.
| Variável | Contagem |
|---|---|
| Valor Solicitado (Log) | 34 |
| Dummy - Região Sudeste, Sul e Centro-Oeste | 14 |
| Renda Presumida V3 (Log) | 11 |
| HVA3 | 11 |
| Negativo BVS | 9 |
| Cartao Credito BVS | 8 |
| Positivo P6 BVS | 7 |
| Fintechs BVS | 6 |
| Positivo P5 BVS | 5 |
| Veículos BVS | 5 |
| Score Quod | 4 |
| Dummy - Possui Produtos Virtuosos SCR (Imob + Veículos) | 3 |
Abaixo apresentamos a frequência com que cada variável apareceu nos modelos selecionados. Embora isso não represente necessariamente um ranking das melhores para as piores variáveis, algumas lições interessantes podem ser observadas.
Primeiramente, o valor solicitado se destaca como a variável que mais discrimina risco. Isso ocorre porque valores solicitados a partir de 40-50 mil reais geralmente indicam perfis específicos, tais como: 1. Financiamento para imóveis de grandes dimensões. 2. Financiamento para múltiplos imóveis pessoais. 3. Financiamento para habitação familiar, com múltiplas residências. 4. Financiamento misto entre habitação e negócio. 5. Financiamento para negócios em nome de pessoa física.
Em todos os modelos, o valor solicitado foi determinante para uma correta mensuração do risco. Uma melhoria futura poderia ser a criação de políticas separadas para pessoas físicas com alto ticket e para residências tradicionais.
Além disso, outras variáveis constantes nos modelos foram a região, a renda presumida e o score HVA3. A renda presumida, especificamente, muitas vezes adicionava pouco ou nada a modelos equivalentes quando suprimida.
O Score Quod, apesar de produzir modelos com altos valores de KS, apresentou significativa instabilidade. Por fim, os demais modelos selecionados apresentavam KS na faixa de 36-39. Devido à alta correlação entre os scores da BVS e a linearidade do modelo GLM utilizado, a seleção das variáveis se baseou em critérios de estabilidade e complementaridade.
O modelo selecionado foi:
\[\begin{equation} \begin{aligned} \text{logit}(\hat{p}) = & -7.209093 -0.003084 \times \text{HVA3} -0.003538 \times \text{Veiculos BVS} \\ & -0.735112 \times \text{Dummy Sul Sudeste} + 0.694754 \times \text{Valor Solicitado (Log)} \end{aligned} \end{equation}\]Este modelo foi escolhido por sua capacidade de discriminar risco de forma estável e complementar, levando em consideração as diferentes dimensões de avaliação de crédito.
Cálculo de hard filters
Após a seleção do modelo, definimos os hard filters para conferir maior estabilidade ao modelo linear generalizado (GLM). Dividimos a base de dados em decis e eliminamos o decil com maior inadimplência, o que ajuda a estabilizar o modelo ao remover outliers problemáticos. Esses filtros também reduzem custos ao minimizar consultas redundantes que não seriam aprovadas pelo modelo final, otimizando recursos e melhorando a eficiência do processo de crédito. Essa abordagem garante que o modelo retenha dados representativos, reforçando a confiabilidade das previsões de inadimplência.
| Variável | Hard Filter |
|---|---|
| HVA3 | 443 |
| Veículos BVS | 427 |
Após definido o modelo e seus hard filters, passamos à definição do ponto de corte. Simulamos mais de 800 cenários de pontos de corte para identificar o melhor equilíbrio entre produção e inadimplência. O gráfico abaixo ilustra esse trade-off, excluindo as Pessoas Jurídicas (PJs). O ponto de corte final foi determinado pela máxima produção possível, garantindo uma redução de inadimplência de 20% em relação à política V2 (fevereiro de 2024).
O score mínimo do novo modelo foi definido em 486. Sua distribuição aparece abaixo.
Resultados
A tabela resumo abaixo nos mostra o impacto da FPD 30 (First Payment Default em 30 dias) em termos financeiros e quantitativos, bem como a variação na produção.
Em relação à política V2, observamos um avanço significativo: embora essa política tenha reduzido consideravelmente a produção, aprendemos que o valor do ticket é o principal definidor de risco. Com base nisso, hoje conseguiríamos, na mesma base, um aumento de 15% na produção com uma redução de 20% na inadimplência.
Comparando com a política vigente, ao backtestar no período de agosto a dezembro, verificamos que a produção teve uma redução de apenas 2%, enquanto a inadimplência caiu 12,6%. Este cenário, no entanto, pode diferir da realidade, pois o mix de carteira atual está desbalanceado, favorecendo um público com alta característica de seleção adversa. Como aumentamos significativamente a taxa de aprovação, temos atraído clientes que não são aprovados por outras financeiras, o que pode impactar negativamente a inadimplência final.
Essa situação, entretanto, destaca uma vantagem importante na mudança para um modelo de score que pode ser calibrado ponto a ponto. Isso nos permite ajustar as aprovações de forma mais precisa, sem a necessidade de aprovar ou negar grandes grupos de clusters, evitando saltos bruscos na taxa de aprovação. Esse ajuste fino proporciona um melhor controle sobre o trade-off entre produção e inadimplência, conforme apresentado anteriormente.
| Versão | Total | Média 4T | Quant | Valor | Quant | Valor | Prod. | Inad. | PE |
|---|---|---|---|---|---|---|---|---|---|
| V0 | 234.3 | 50.7 | 2.38 | 4.02 | 1.44 | 2.40 | 0.0 | 0.0 | 9.1 |
| V1 | 181.3 | 40.1 | 1.87 | 2.91 | 1.06 | 1.56 | -22.6 | -27.6 | 6.2 |
| V2 | 147.9 | 32.7 | 1.61 | 2.48 | 0.92 | 1.44 | -18.4 | -14.9 | 5.8 |
| V2.5 | 226.2 | 50.7 | 2.37 | 3.21 | 1.37 | 1.89 | 53.0 | 29.6 | 7.3 |
| Nova Política | 196.5 | 43.9 | 1.87 | 2.39 | 1.12 | 1.46 | -13.1 | -25.4 | 5.9 |
Swaps e clusters
A medida dos swaps e seu tamanho nos deixam bastante confortáveis com o novo modelo. Para o período de agosto a dezembro, ao backtestar a política vigente, verificamos que teríamos menos de 10% da produção em Swap Ins, um número bastante aceitável. Esse percentual provavelmente seria ainda menor, pois parte do público com alta inadimplência tende a estar negativado e, portanto, seria filtrado pelos hard filters. No entanto, como estamos trabalhando apenas com scores e não com a marcação de negativação, essa dimensão não pode ser corretamente inferida.
O Swap Out, entretanto, é um ponto de atenção, pois inclui parte do público de seleção adversa mencionado anteriormente. Esse público, com maior risco, é aprovado devido à alta taxa de aprovação atual. Em produção, o tamanho do swap out pode ser muito maior.
| Versão | Total (ago-dez) | Média 4T | Quantidade | Valor |
|---|---|---|---|---|
| Swap In | 34.2 | 7.1 | 2.89 | 3.87 |
| Swap Out | 11.7 | 2.2 | 5.60 | 8.69 |
| Keep In | 162.3 | 36.8 | 1.38 | 1.61 |
| Keep Out | 26.2 | 4.6 | 8.27 | 11.62 |
Clusters
ara definição dos clusters, inicialmente dividimos os dados em vários grupos com o objetivo de criar 4 faixas distintas. No entanto, enfrentamos falta de estabilidade entre as safras, o que comprometeu a consistência dos resultados. Devido a essa instabilidade, optamos por reduzir para apenas 3 faixas: A e B com 40% de participação cada, e C com os 20% restantes.
A diminuição do grupo de maior risco (faixa C) foi uma escolha estratégica para permitir a realização de operações de derivação à mesa utilizando variáveis exógenas, sem comprometer toda a capacidade operacional.
| Faixa | Rating | Participação | FPD 30 |
|---|---|---|---|
| [0-486) | ZZ | 23.67 | 7.05 |
| [446,621] | C | 7.64 | 3.73 |
| (621,712] | C | 7.64 | 2.45 |
| (712,776] | B | 7.63 | 3.04 |
| (776,823] | B | 7.64 | 1.08 |
| (823,861] | B | 7.63 | 1.86 |
| (861,891] | A | 7.64 | 1.18 |
| (891,917] | A | 7.63 | 1.28 |
| (917,938] | A | 7.64 | 0.59 |
| (938,961] | A | 7.63 | 0.39 |
| (961,995] | A | 7.64 | 0.59 |
É possível observar que, para cada cluster, os valores médios e medianos de cada variável utilizada estão alinhados com as expectativas. Isso indica que a segmentação foi eficaz em discriminar diferentes níveis de risco e perfis de clientes, validando a consistência e a eficácia do modelo na definição dos clusters.
| Rating | Média | Mediana | Média | Mediana | Média | Mediana |
|---|---|---|---|---|---|---|
| A | 20.5 | 17 | 787 | 809 | 714 | 706 |
| B | 26.4 | 20 | 645 | 642 | 606 | 599 |
| C | 32.3 | 24 | 571 | 550 | 553 | 542 |
Fura-folha
Outro aspecto que contribui para a robustez do modelo é a comparação com dados exógenos do SCR, Big Data Corp, além de outros scores da Boa Vista e Quod.
Entre as variáveis da Big Data Corp (BDC), notamos que informações de ocupação e declaração de IR perdem sua capacidade de discriminação de inadimplência, uma vez que o modelo já consegue captar bem esses efeitos. A única variável da BDC que apresenta capacidade de discriminação é o recebimento de auxílios de combate à miséria, como o Bolsa Família, o que era esperado em certa medida.
O score positivo da BVS revelou-se uma variável com capacidade de discriminação, especialmente quando utilizado como um hard filter. Considerando que atualmente consultamos dois datasets e passaríamos a consultar apenas um, poderíamos usar o score positivo como uma métrica de derivação para a mesa de crédito. Ou seja, caso o score seja muito baixo, poderíamos realizar uma derivação para uma análise mais detalhada.
No SCR, encontramos uma possível discriminação nos clientes que fazem uso de produtos rotativos. A princípio, seria interessante derivar esses clientes para observar seu comportamento e avaliar seu risco de forma mais precisa.
Por fim, a análise do Quod não apresentou resultados significativos, e até mesmo confundiu a inadimplência em alguns casos.
| Variável | A | B | C | A | B | C | A | B | C |
|---|---|---|---|---|---|---|---|---|---|
| Total | 0.76 | 2.24 | 3.77 | 0.33 | 1.23 | 2.70 | 4212 | 2520 | 1657 |
| BDC | |||||||||
| Emprego Formal | 0.75 | 2.42 | 3.93 | 0.36 | 1.28 | 3.10 | 2937 | 1511 | 852 |
| Declarou IR - 2 Anos | 0.55 | 2.75 | 4.34 | 0.30 | 1.06 | 3.68 | 1842 | 816 | 469 |
| Recebeu Auxílio - 12m | 1.32 | 2.04 | 3.98 | 0.82 | 1.36 | 3.00 | 169 | 172 | 152 |
| SCR | |||||||||
| Produtos Virtuosos | 0.54 | 2.38 | 4.26 | 0.29 | 1.64 | 2.81 | 1659 | 638 | 264 |
| Vencidos Bacen > 300 | 0.00 | 2.64 | 19.06 | 0.00 | 0.00 | 19.06 | 44 | 48 | 31 |
| Produtos Alto Risco | 1.05 | 3.95 | 4.50 | 0.20 | 1.11 | 3.34 | 714 | 387 | 237 |
| BVS | |||||||||
| Renda < 1500 | 1.68 | 2.40 | 3.76 | 1.68 | 1.79 | 2.54 | 75 | 149 | 180 |
| Score Positivo BVS < 450 | 0.00 | 4.26 | 2.95 | 0.00 | 5.04 | 2.40 | 70 | 130 | 146 |
| Quod | |||||||||
| Score Quod < 650 | 0.52 | 3.90 | 4.04 | 0.19 | 1.08 | 2.92 | 331 | 605 | 654 |
Extra: Simulação prática em Julho/24
Em julho de 2024, colocamos o modelo em produção em modo shadow, ou seja, sem tomada de decisão direta. O objetivo era analisar o funil de acordo com a produção observada no período corrente. Além disso, realizamos algumas simulações de cenários de FPD (First Payment Default) e produção estimada para facilitar a tomada de decisão futura.
| Score Mínimo | Variação Produção | Taxa de aprovação | Produção Estimada (MM) | FPD 30 (R$) | FPD 60 (R$) | PE |
|---|---|---|---|---|---|---|
| 200 | -14.37 | 31.65 | 57.7 | 3.02 | 1.96 | 7.6 |
| 240 | -15.37 | 31.28 | 57.0 | 2.99 | 1.93 | 7.5 |
| 280 | -16.82 | 30.74 | 56.1 | 2.94 | 1.89 | 7.4 |
| 320 | -18.49 | 30.12 | 55.0 | 2.88 | 1.84 | 7.2 |
| 360 | -20.13 | 29.52 | 53.9 | 2.83 | 1.80 | 7.0 |
| 400 | -22.29 | 28.72 | 52.5 | 2.76 | 1.74 | 6.8 |
| 440 | -24.49 | 27.91 | 51.1 | 2.68 | 1.67 | 6.6 |
| 480 | -26.96 | 27.00 | 49.5 | 2.57 | 1.54 | 6.2 |
| 520 | -29.68 | 25.99 | 47.7 | 2.54 | 1.49 | 6.0 |
| 560 | -33.15 | 24.71 | 45.5 | 2.39 | 1.31 | 5.4 |
| 600 | -36.95 | 23.30 | 43.0 | 2.23 | 1.23 | 5.1 |
| 640 | -41.33 | 21.68 | 40.1 | 1.94 | 1.04 | 4.5 |
| 680 | -45.93 | 19.99 | 37.1 | 1.80 | 0.94 | 4.1 |
| 720 | -51.44 | 17.95 | 33.6 | 1.64 | 0.85 | 3.8 |
| 760 | -58.53 | 15.33 | 29.0 | 1.37 | 0.58 | 2.9 |
| 800 | -65.97 | 12.58 | 24.1 | 1.15 | 0.48 | 2.6 |
Precificação por cluster
| Rating Atribuído | FPD 60 (R$) | PE | Spread para 20% ROE |
|---|---|---|---|
| A | 0.33 | 1.2 | CDI + 10% |
| B | 1.23 | 4.6 | CDI + 11% |
| C | 2.70 | 10.1 | CDI + 12% |