Sobre Mim Projetos Artigos Experiência Formação Contato
Currículo PDF Mudar para Inglês 🇺🇸
Voltar para Projetos
MACHINE LEARNING RISK & COMPLIANCE FINANCIAL DATA SCIENCE

Modelagem Preditiva de Risco de Crédito: Inteligência Algorítmica, Otimização Econômica e Explicabilidade Regulatória

Case Prático FNAT | Aurora Crédito Digital — Engenharia de dados sobre 150.000 contratos anonimizados (LGPD), calibração XGBoost vs Random Forest vs Árvore de Decisão, otimização de limiar assimétrico em 59,0% e conformidade BACEN via SHAP.

Mar 2026 14 min de leitura XGBoost, Scikit-Learn, SHAP, Streamlit, Risco de Crédito

Simulador Preditivo de Concessão de Crédito em Tempo Real

Ambiente interativo de inferência online conectado ao pipeline serializado em produção

Modelo: XGBoost Otimizado | Cutoff: 59,0%
💡 Nota: Por estar hospedado no plano comunitário da nuvem, o simulador pode entrar em repouso por inatividade. Caso veja o aviso 'Zzzz', basta clicar em 'Yes, get this app back up!' para reativá-lo em poucos segundos.
Aplicação Streamlit Cloud Explicabilidade Local SHAP em Tempo Real Compliance BACEN & Art. 43 CDC
Aurora Risk Intelligence © 2026

Tech Stack Utilizada neste Projeto

Python (Pandas & NumPy)
Scikit-Learn Pipelines
XGBoost & LightGBM
SHAP (TreeExplainer)
Streamlit Cloud
Governança BACEN & CDC

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:

Custo do Falso Negativo (FN): R$ 5.000,00

Aprovar um proponente inadimplente acarreta na perda integral do principal financiado, acrescido dos custos de cobrança judicial e provisão de liquidez.

Custo do Falso Positivo (FP): R$ 500,00

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_mensal possuía 29.731 valores ausentes (19,82%) e dependentes possuí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_caixa através da fórmula renda × (1 - razão_gastos), mapeando a capacidade líquida de amortização mensal do cliente.
Python / Scikit-Learn Pipeline
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%).

Custo Total no Teste R$ 6.103.500

Mínimo custo atingível sob matriz 10:1 (37.500 contratos avaliados).

Economia vs Árvore +R$ 513.500

Redução direta de perdas frente à Árvore de Decisão calibrada (R$ 6,61M).

Economia vs Concessão Cega +R$ 6.426.500

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:

  1. utilizacao_linhas_descobertas (Comprometimento de limite)
  2. numero_de_vezes_passou_de_90_dias (Histórico severo)
  3. 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:

"Proposta recusada: (1) Utilização de cheque especial acima de 95%; (2) Ocorrência prévia de 2 atrasos acima de 90 dias."

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,25 dispara 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.

Gostou da profundidade analítica deste projeto?

Compartilhe este case de Machine Learning e Risco de Crédito com sua rede profissional.

Sua organização precisa alinhar Ciência de Dados, Modelagem de Risco e Governança?

Falar com Darlan