Como Calcular WoE e IV: Guia Completo para Regressão Logística
O Weight of Evidence (WoE) e o Information Value (IV) são métricas amplamente utilizadas em problemas de credit scoring, seleção de variáveis e modelos de regressão logística.
Essas técnicas são especialmente populares no mercado financeiro por permitirem medir o poder discriminatório de uma variável em relação a um evento de interesse.
Tradicionalmente, os registros são divididos entre:
- bons (good) - clientes adimplentes;
- maus (bad) - clientes inadimplentes.
Neste artigo, utilizaremos o conjunto de dados da competição Titanic do Kaggle para demonstrar, passo a passo, como calcular WoE e IV de maneira visual e intuitiva.
Nosso objetivo é transformar conceitos frequentemente vistos como abstratos em algo intuitivo, interpretável e facilmente aplicável na prática.
Base de Dados Utilizada
Para demonstrar o cálculo do Weight of Evidence (WoE) e do Information Value (IV), utilizaremos a variável gênero (female e male) do dataset Titanic em relação à sobrevivência dos passageiros.
A tabela abaixo apresenta a distribuição da variável alvo:
| Segmento | Não Sobreviveu (target₀) | Sobreviveu (target₁) |
|---|---|---|
| female | 81 | 233 |
| male | 468 | 109 |
| Total | 549 | 342 |
Onde:
target₀representa os passageiros que não sobreviveram;target₁representa os passageiros que sobreviveram.
Percentual de Cada Classe por Segmento
O percentual de uma classe dentro de um segmento corresponde à proporção daquele grupo em relação ao total da respectiva classe. Essas proporções representam a distribuição de não‑eventos (target₀) e eventos (target₁) em cada segmento.
Para a classe target₀:
Considerando o segmento female:
\[\%survived_{0,female} = \frac{81}{81 + 468} = \frac{81}{549} \approx 0.1475\]Ou seja, aproximadamente 14,75% dos passageiros que não sobreviveram eram mulheres.
Para a classe target₁:
No segmento female:
\[\%survived_{1,female} = \frac{233}{233 + 109} = \frac{233}{342} \approx 0.6813\]Assim, aproximadamente 68,13% dos passageiros sobreviventes eram mulheres.
Distribuição Percentual por Segmento
| Segmento | target₀ | target₁ | % target₀ | % target₁ |
|---|---|---|---|---|
| female | 81 | 233 | 0.1475 | 0.6813 |
| male | 468 | 109 | 0.8525 | 0.3187 |
| Total | 549 | 342 | 1.0 | 1.0 |
Observe que a soma das proporções de cada classe é igual a 1:
\[\sum \%target₀ = 1 \quad\text{e}\quad \sum \%target₁ = 1\]Essas distribuições serão utilizadas posteriormente no cálculo do Weight of Evidence (WoE) e do Information Value (IV).
Percentual da População por Segmento
O percentual populacional representa a participação de cada segmento em relação ao total da amostra. Essa medida será utilizada posteriormente no cálculo da razão entre distribuições, componente essencial do WoE.
Essa métrica é calculada por:
\[\%population_{segment_i} = \frac{population_{segment_i}}{population}\]Para o segmento female:
\[\%population_{female} = \frac{81 + 233}{81 + 233 + 468 + 109} = \frac{314}{891} \approx 0.3524\]Portanto, mulheres representam aproximadamente 35,24% da população analisada, ou seja, cerca de 35 a cada 100 passageiros.
Distribuição Populacional por Segmento
| Segmento | População | % População |
|---|---|---|
| female | 314 | 0.3524 |
| male | 577 | 0.6476 |
| Total | 891 | 1.0 |
Essa distribuição ajuda a entender a representatividade de cada segmento dentro da base de dados, sendo útil na interpretação do Weight of Evidence (WoE) e do Information Value (IV).
Ela será comparada às distribuições de target₀ e target₁ para identificar diferenças entre a população geral e o comportamento das classes.
Razão entre Distribuições (Distribution Ratio)
A razão entre distribuições compara a participação de um segmento entre as classes target₀ e target₁.
Ela é definida por:
\[Distr_{segment_i} = \frac{ \%target_{0,segment_i} }{ \%target_{1,segment_i} }\]Valores menores que 1 indicam que o segmento é proporcionalmente mais associado ao evento target₁, enquanto valores maiores que 1 indicam maior associação ao não‑evento target₀.
| Distribution Ratio | Interpretação |
|---|---|
| Distr < 1 | o segmento é menos representado entre os não‑eventos (target₀) |
| Distr > 1 | o segmento é mais representado entre os não‑eventos (target₀) |
Para o segmento female:
\[Distr_{female} = \frac{0.1475}{0.6813} \approx 0.2166\]Isso indica que a participação das mulheres entre os passageiros que não sobreviveram é proporcionalmente muito menor do que entre os passageiros que sobreviveram, ou seja, female está mais associada ao evento (target₁).
Razão entre Distribuições por Segmento
| Segmento | % target₀ | % target₁ | Distr |
|---|---|---|---|
| female | 0.1475 | 0.6813 | 0.2166 |
| male | 0.8525 | 0.3187 | 2.6745 |
| Total | 1.0 | 1.0 | — |
Valores:
- menores que
1indicam maior concentração relativa emtarget₁; - maiores que
1indicam maior concentração relativa emtarget₀.
Weight of Evidence (WoE)
O Weight of Evidence (WoE) é obtido aplicando o logaritmo natural à razão entre distribuições. Ele quantifica a evidência de que um segmento está mais associado ao evento (target₁) ou ao não‑evento (target₀).
O uso do logaritmo torna a escala simétrica em torno de zero, o que facilita a interpretação e melhora a estabilidade em modelos lineares como a regressão logística.
Sua definição é dada por:
\[WoE_{segment_i} = \ln\left( Distr_{segment_i} \right)\]Substituindo a definição de Distr:
Para o segmento female:
\[WoE_{female} = \ln(0.2166) \approx -1.5299\]O valor negativo indica que o segmento female possui maior concentração relativa em target₁ do que em target₀, ou seja, há evidência a favor do evento.
Weight of Evidence por Segmento
| Segmento | Distr | WoE |
|---|---|---|
| female | 0.2166 | -1.5299 |
| male | 2.6745 | 0.9834 |
| Total | — | — |
Interpretação:
WoE < 0: maior concentração relativa emtarget₁;WoE > 0: maior concentração relativa emtarget₀;WoE ≈ 0: distribuição semelhante entre as classes.
Information Value (IV)
O Information Value (IV) mede o poder preditivo de uma variável em relação à variável alvo. Ele combina a intensidade da evidência (WoE) com o tamanho da diferença entre as distribuições, capturando tanto a força quanto a relevância estatística do segmento.
A contribuição de cada segmento para o IV é calculada por:
\[IV_{segment_i} = WoE_{segment_i} \times \left( \%target_{0,segment_i} - \%target_{1,segment_i} \right)\]Substituindo a definição de WoE:
Para o segmento female:
\[IV_{female} = -1.5299 \times (0.1475 - 0.6813) \approx 0.8166\]Contribuição do IV por Segmento
| Segmento | WoE | IV |
|---|---|---|
| female | -1.5299 | 0.8166 |
| male | 0.9834 | 0.5244 |
| Total IV | — | 1.3410 |
O Information Value total da variável é obtido pela soma das contribuições de todos os segmentos:
\[IV = \sum_i IV_{segment_i}\]Como o IV é aditivo, variáveis com muitos segmentos podem inflar artificialmente o valor total.
Em geral:
IV < 0.02: variável sem poder preditivo;0.02 ≤ IV < 0.1: poder fraco;0.1 ≤ IV < 0.3: poder médio;0.3 ≤ IV < 0.5: poder forte;IV ≥ 0.5: poder muito forte.
No exemplo apresentado, a variável gênero possui um IV igual a 1.3410, indicando altíssimo poder discriminatório, valores tão elevados podem inclusive sugerir data leakage em cenários reais.
Considerações Importantes
Ao utilizar Weight of Evidence (WoE) e Information Value (IV), alguns cuidados são importantes:
- categorias com baixa frequência podem gerar valores instáveis;
- divisões por zero devem ser tratadas adequadamente;
- variáveis com IV excessivamente alto podem indicar data leakage;
- o WoE é amplamente utilizado em regressão logística por favorecer relações mais lineares entre as variáveis e o logit;
- processos de binning podem impactar significativamente os valores de WoE e IV.
Embora WoE tenha sido criado para regressão logística, ele também pode ser útil em modelos de árvore ao reduzir cardinalidade e ruído.
Recursos Complementares
Caso queira aprofundar seus conhecimentos sobre WoE e IV:
Referências
Anderson, Raymond. The Credit Scoring Toolkit: Theory and Practice for Retail Credit Risk Management and Decision Automation. Oxford University Press, 2007.
Siddiqi, Naeem. Credit Risk Scorecards: Developing and Implementing Intelligent Credit Scoring. Wiley, 2006.
Thoppay, Sudarson Mothilal (2015). woe: Computes Weight of Evidence and Information Values. R package version 0.2.
https://CRAN.R-project.org/package=woeEichenberg, Thilo (2018). woeBinning: Supervised Weight of Evidence Binning of Numeric Variables and Factors. R package version 0.1.6.
https://CRAN.R-project.org/package=woeBinning