1. Contexto do Negócio e o Dilema Estratégico
A Aurora Crédito Digital é uma instituição financeira focada em operações de Crédito Direto ao Consumidor (CDC) que vivenciava um clássico atrito de governança corporativa: o embate estrutural entre a Diretoria Comercial/Produtos (orientada a metas agressivas de originação e expansão da carteira) e a Diretoria de Risco e Crédito (focada na preservação de capital e estancamento de perdas).
A máxima que rege o mercado bancário é contundente: "um único cliente inadimplente consome a margem de lucro de dezenas de operações saudáveis". Na Aurora, a concessão de crédito opera sob uma profunda assimetria de perdas econômicas:
Aprovar um proponente inadimplente acarreta na perda integral do principal financiado, acrescido dos custos de cobrança judicial e provisão de liquidez.
Recusar indevidamente um bom pagador representa a perda de oportunidade da receita líquida de juros (spread financeiro) esperada do contrato.
Essa desproporção de 10 para 1 inviabiliza políticas comerciais baseadas em regras de corte intuitivas ou no limiar estatístico padrão de 50%. A base histórica acumulava taxa de inadimplência de 6,68% (atrasos de 90+ dias em 2 anos). Nosso desafio como liderança analítica foi construir uma esteira automatizada de Machine Learning orientada não apenas à acurácia algorítmica, mas à maximização da rentabilidade líquida esperada.
2. Objetivos do Projeto e Critérios de Sucesso
Para responder com precisão executiva às demandas do Comitê de Crédito e Riscos, o projeto estabeleceu três pilares de entrega:
- Poder Discriminatório Robusto (ROC AUC ≥ 0,85): Superar os modelos lineares legados e classificar confiavelmente proponentes sob alta assimetria de classes, validado por reamostragens Bootstrap (N=500).
- Otimização Econômica do Ponto de Corte (Cutoff): Realizar varredura computacional exaustiva da matriz de perdas financeiras (Custo = R$ 5.000 × FN + R$ 500 × FP) para identificar a régua de corte operacional de menor custo monetário total.
- Explicabilidade Algorítmica e Conformidade Regulatória: Utilizar valores de Shapley (SHAP) para auditar decisões individuais, gerando as justificativas formais de recusa (Adverse Action Reasons) exigidas pelo Banco Central (Resolução CMN 4.966) e Código de Defesa do Consumidor (Art. 43).
3. Dados, Limpeza Técnica e Engenharia de Atributos (ETL)
A extração contemplava uma base cadastral e transacional com 150.000 registros e 10 variáveis explicativas, com a
variável-alvo inadimplente_2anos. A fase de exploração estatística
identificou distorções estruturais que comprometeriam severamente modelos de gradiente caso fossem
alimentados diretamente:
- Tratamento de Códigos Sentinela: As colunas de atrasos históricos apresentavam valores 96 e 98 (códigos operacionais de sistemas legados para proponente sem histórico de atraso registrado). Foram sanitizados e imputados como 0 atrasos reais.
- Capping Estatístico de Atrasos: Aplicação de limite superior em 20 atrasos nas variáveis temporais para mitigar alavancagem desmedida em splits de árvores.
- Imputação por Mediana sem Data Leakage: A coluna
renda_mensalpossuía 29.731 valores ausentes (19,82%) edependentespossuía 3.924 nulos. As imputações foram calculadas estritamente a partir do conjunto de treino e aplicadas deterministicamente no teste. - Capping de Renda Mensal: Corte superior em R$ 50.000,00 para estabilização de variância contra valores atípicos.
- Engenharia de Atributos (Feature Engineering):
Criação do indicador
sobra_de_caixaatravés da fórmularenda × (1 - razão_gastos), mapeando a capacidade líquida de amortização mensal do cliente.
import numpy as np
import pandas as pd
from sklearn.pipeline import Pipeline
from xgboost import XGBClassifier
# Pipeline com sanitização de sentinelas, imputação e engenharia de sobra de caixa
def transformar_dados(df, parametros_treino):
df_proc = df.copy()
# 1. Correção dos códigos sentinela 96 e 98
cols_atraso = ['vezes_passou_de_30_59_dias', 'numero_de_atrasos_ultimos_60_89_dias', 'numero_de_vezes_passou_de_90_dias']
for col in cols_atraso:
df_proc[col] = df_proc[col].replace([96, 98], 0).clip(upper=20)
# 2. Imputação de nulos sem vazamento de dados (mediana do treino)
df_proc['renda_mensal'] = df_proc['renda_mensal'].fillna(parametros_treino['mediana_renda']).clip(upper=50000.0)
df_proc['dependentes'] = df_proc['dependentes'].fillna(parametros_treino['mediana_dependentes'])
# 3. Engenharia de Atributo Financeiro: Capacidade de Amortização
df_proc['sobra_de_caixa'] = df_proc['renda_mensal'] * (1.0 - df_proc['razao_gastos'].clip(0.0, 1.0))
return df_proc
4. Benchmark Comparativo dos Modelos de Machine Learning
Submetemos a base particionada (75% treino / 25% teste, estratificada) ao treinamento rigoroso de 5
abordagens com semente controlada (SEED = 42). Para garantir solidez
estatística, avaliamos não apenas acurácia (métrica enviesada pelo desbalanceamento), mas
ROC AUC, Precision-Recall AUC (PR AUC) e simulação Bootstrap com 500
iterações:
| Modelo Algorítmico | ROC AUC (Teste) | PR AUC | Log Loss | Bootstrap (IC 95%) |
|---|---|---|---|---|
| Classificador Dummy (Baseline) | 0,5000 | 0,0668 | 2,408 | [0,500 - 0,500] |
| Árvore de Decisão (max_depth=6) | 0,8367 | 0,3450 | 0,2080 | [0,827 - 0,846] |
| Random Forest (d=7, balanced) | 0,8587 | 0,3812 | 0,3854 | [0,850 - 0,867] |
| XGBoost Classifier (Campeão) | 0,8686 | 0,4325 | 0,1742 | [0,861 - 0,876] |
| LightGBM Classifier | 0,8679 | 0,4311 | 0,1750 | [0,860 - 0,875] |
O modelo XGBoost consagrou-se campeão absoluto com ROC AUC de 0,8686 no conjunto de teste independente
(sem sobreajuste perceptível frente aos 0,8772 do treino), exibindo a menor perda logarítmica (0,1742) e maior precisão na separação da cauda de risco.
5. Otimização Econômica do Ponto de Corte (Threshold Optimization)
Em concessão de crédito, o ponto de corte de 50% é um erro executivo comum. Se o custo do calote é 10 vezes maior do que a margem do bom cliente recusado, o limiar de decisão deve ser calibrado pela curva de custo esperado.
Varremos computacionalmente 100 pontos de corte (de 0,01 a 0,99). O ponto ótimo de mínimo custo global para o XGBoost ocorreu na probabilidade de corte de 0,590 (59,0%).
Mínimo custo atingível sob matriz 10:1 (37.500 contratos avaliados).
Redução direta de perdas frente à Árvore de Decisão calibrada (R$ 6,61M).
Blindagem de capital frente à política ingênua de aprovação em massa.
Diagnóstico Humano da Decisão (Conjunto de Teste: 37.500 Proponentes)
- 30.287 Bons Pagadores Aprovados (86,55% da carteira saudável): Operações legítimas que geram receita e giro para a instituição.
- 1.756 Inadimplentes Bloqueados com Sucesso (70,07% da inadimplência contida): O modelo antecipou 7 de cada 10 calotes potenciais, evitando R$ 8,78 Milhões em perdas diretas.
- 4.707 Bons Clientes Recusados (Falsos Positivos — 13,45% de atrito comercial): Custo de oportunidade controlado de R$ 2.353.500 em nome da higidez de caixa.
- 750 Calotes Concedidos (Falsos Negativos — 29,93% de fuga residual): Perda de R$ 3.750.000,00, plenamente absorvida pelo spread da carteira saudável.
6. Governança, Conformidade Regulatória e Explicabilidade com SHAP
No setor financeiro moderno, um modelo de alta performance não pode operar como caixa-preta. A Resolução CMN nº 4.966 do BACEN e o Artigo 43 do Código de Defesa do Consumidor (CDC) exigem que qualquer recusa de crédito apresente fundamentação clara e auditável ao cliente.
Implementamos a metodologia SHAP (Shapley Additive Explanations) através do
algoritmo otimizado TreeExplainer. Com isso, resolvemos
simultaneamente dois níveis de governança:
Importância Global (Para Auditoria & Riscos)
A análise dos valores médios absolutos |SHAP| e (+SHAP)
revelou que as 3 variáveis mais determinantes para o risco sistêmico são:
- utilizacao_linhas_descobertas (Comprometimento de limite)
- numero_de_vezes_passou_de_90_dias (Histórico severo)
- idade (Estabilidade demográfica do tomador)
Explicabilidade Local (Adverse Action Reasons)
Para cada proponente recusado pela esteira, o sistema calcula os maiores empurrões positivos de probabilidade (+SHAP) e gera automaticamente as Razões Adversas legíveis para envio ao consumidor:
Perspectivas Integradas
7. Insights de Negócio & Portfólio Comercial
O modelo comprovou que aprovar crédito com base puramente em volume bruto de vendas é financeiramente destrutivo. Clientes com mais de 2 atrasos recentes de 90 dias possuem probabilidade de inadimplência superior a 68%.
A esteira analítica permite agora uma política de Risk-Based Pricing (Precificação Baseada em Risco): clientes com probabilidade estimada abaixo de 10% recebem taxas atrativas e aprovação instantânea, enquanto faixas intermediárias (entre 25% e 55%) são direcionadas para limites menores ou exigência de garantias adicionais.
8. Perspectiva Contábil, PDD e IFRS 9
Sob a ótica de balanço, a inadimplência não é apenas perda de caixa; ela acarreta na necessidade imediata de alocar capital para a Provisão para Devedores Duvidosos (PDD / Perda Esperada), impactando negativamente o EBITDA e o patrimônio líquido da financeira.
Ao prever matematicamente a Probabilidade de Default (PD) no horizonte de 24 meses, a instituição adequa suas demonstrações contábeis às exigências do padrão internacional IFRS 9 / Resolução CMN 4.966, trocando o modelo reativo de perdas incorridas pelo provisionamento antecipado e inteligente de perdas esperadas.
9. Perspectiva Jurídica, Risco e Compliance Fiduciário
Diferente de financiamentos imobiliários ou automotivos com alienação fiduciária de bens tangíveis, o Crédito Direto ao Consumidor (CDC) constitui "crédito limpo", onde o inadimplemento resulta em perdas de dificílima recuperação judicial.
Nota de Governança e Ética Algorítmica: O pipeline foi estruturado sem o uso de variáveis discriminatórias (como gênero, etnia ou localização geográfica restritiva), em estrita consonância com a LGPD e o Código de Defesa do Consumidor. A transparência propiciada pelos valores SHAP assegura à instituição plena capacidade de defesa técnica e fiduciária perante auditorias externas do Banco Central do Brasil.
10. Qualidade dos Dados, Limitações e Monitoramento Contínuo
Todo modelo estatístico em produção está sujeito à degradação temporal por mudanças macroeconômicas. Estruturamos duas salvaguardas essenciais para o ciclo de vida do modelo:
-
Monitoramento de Data Drift & Concept Drift:
Aplicação mensal do teste estatístico Kolmogorov-Smirnov (KS) e do Population Stability
Index (PSI) nas variáveis de entrada. Qualquer desvio com
PSI > 0,25dispara retreino automático com novas safras maduras. - Limitações Mapeadas: A base atual é puramente comportamental e cadastral interna, não capturando choques exógenos macroeconômicos (como aumentos bruscos na taxa SELIC ou inflação de alimentos) nem dados do Cadastro Positivo externo de birôs (Serasa/Boa Vista). A inclusão dessas fontes externas figura como prioridade para a versão 2.0.
11. Impacto Estratégico, ROI e Recomendações Executivas
A implementação da esteira de Machine Learning orientada a custo trouxe ganhos expressivos e mensuráveis para a alta liderança:
Economia de R$ 513,5k
Redução líquida de perdas financeiras na carteira de teste frente a modelos tradicionais baseados em árvores simples.
70,07% de Calotes Evitados
Contenção de mais de 7 em cada 10 inadimplentes em potencial, blindando a liquidez e a tesouraria.
Decisão em < 100ms
Inferência preditiva em tempo real com rastreabilidade completa e geração instantânea de justificativas formais.
12. Conclusão
Este case simboliza o ápice da integração entre a Ciência de Dados Avançada, a Engenharia de Software e a Inteligência Contábil e Tributária. Não nos limitamos a treinar um classificador para maximizar métricas estatísticas abstratas; investigamos anomalias de negócio, expurgamos dados sentinela, modelamos a esteira sob restrições econômicas reais e resolvemos a barreira regulatória através da explicabilidade com SHAP.
O diferencial de um profissional de Dados e Inteligência Fiscal Sênior reside na capacidade de traduzir algoritmos complexos em decisões que geram caixa, blindam o balanço patrimonial e asseguram conformidade jurídica irrepreensível perante os órgãos reguladores.