dataPreprocess catTrans

Optimisation de Score de Crédit par Weight of Evidence (WOE)

Scénario de test & Cas d'usage

Contexte Métier

Une banque souhaite développer un nouveau modèle de risque pour les demandes de crédit à la consommation. L'objectif est de transformer des variables catégorielles (Profession, Type de Logement) en valeurs numériques prédictives (WOE) basées sur leur relation avec le défaut de paiement (Target), afin de maximiser la Valeur d'Information (IV) avant la modélisation logistique.
À propos du Set : dataPreprocess

Nettoyage, imputation et préparation des données.

Découvrir toutes les actions de dataPreprocess
Préparation des Données

Simulation d'un portefeuille de 5000 clients avec une variable cible binaire (Defaut_Paiement) et des variables explicatives catégorielles corrélées.

Copié !
1 
2DATA casuser.credit_risk;
3call streaminit(123);
4LENGTH Profession $20 Type_Logement $15 Defaut_Paiement $1;
5DO i = 1 to 5000;
6u = rand('Uniform');
7/* Simulation Profession */ IF u < 0.3 THEN Profession = 'Fonctionnaire';
8ELSE IF u < 0.6 THEN Profession = 'Salarie_Prive';
9ELSE IF u < 0.8 THEN Profession = 'Independant';
10ELSE Profession = 'Retraite';
11/* Simulation Logement */ IF rand('Uniform') < 0.5 THEN Type_Logement = 'Proprietaire';
12ELSE Type_Logement = 'Locataire';
13/* Creation Target corrélée */ score_risque = 0;
14IF Profession = 'Independant' THEN score_risque = score_risque + 0.4;
15IF Type_Logement = 'Locataire' THEN score_risque = score_risque + 0.3;
16IF rand('Uniform') + score_risque > 0.8 THEN Defaut_Paiement = '1';
17ELSE Defaut_Paiement = '0';
18OUTPUT;
19END;
20 
21RUN;
22 

Étapes de réalisation

1
Calcul du WOE et génération du code de scoring pour déploiement
Copié !
1PROC CAS;
2 dataPreprocess.catTrans
3 TABLE={name='credit_risk'}
4 inputs={'Profession', 'Type_Logement'}
5 targets={{name='Defaut_Paiement'}}
6 events={'1'}
7 method='WOE'
8 evaluationStats=true
9 code={RESULT='scoring_code'}
10 casOut={name='credit_risk_woe', replace=true}
11 casOutBinDetails={name='woe_mapping', replace=true};
12RUN;
2
Vérification des statistiques d'évaluation (Information Value)
Copié !
1 
2PROC PRINT
3DATA=casuser.woe_mapping;
4where _IV_ > 0.02;
5 
6RUN;
7 

Résultat Attendu


L'action doit générer une table transformée où 'Profession' et 'Type_Logement' sont remplacées ou complétées par leurs valeurs WOE respectives. La table 'woe_mapping' doit montrer un IV significatif pour la profession 'Independant'. Le code SAS de scoring doit être disponible dans le résultat pour être appliqué en production.