Table des matières

Transcription

Table des matières
Table des matières
1 Modélisation d’être mauvais payeur
1.1 Description . . . . . . . . . . . . . .
1.2 Enoncé . . . . . . . . . . . . . . . . .
1.3 Graphiques . . . . . . . . . . . . . .
1.4 Solutions . . . . . . . . . . . . . . .
1.4.1 Solution SAS arbre 2 feuilles
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2
2
2
5
5
5
Université de CAEN
1
M2-IAD MI5 Statistiques
Modélisation d’être mauvais payeur
1.1
Description
Cet exercice est très largement inspiré d’un document que M. Grégoire de Lassence de la société SAS m’a transmis.
Il est intitulé Guide de démarrage avec SAS Entreprise Miner 4.3 et de la documentation trouvée sur le site de
SAS Data Mining Using SAS Entreprise Miner : A case study Approach Second Edition. Une banque, dans
le cadre de son service de prêts, désire pouvoir prédire la non solvabilité d’un client ayant contracté un prêt en fonction des covariables explicatives : Loan, ... , Debtinc. Pour ceci elle constitue une base de données constituées de
l’historique de 5960 clients ayant contracté un prêt qui au jour de l’étude aurait du être complètement remboursé.
Cette table nommée hmeq se trouve dans la librairie Sampsio.hmeq.
Bad
Loan
Mortdue
Value
Reason
Job
Yoj
Derog
Deling
Clage
Ninq
Clno
Debtinc
1.2
qualitatif
quantitatif
quantitatif
quantitatif
qualitatif
qualitatif
quantitatif
quantitatif
quantitatif
quantitatif
quantitatif
quantitatif
quantitatif
la personne a remboursé son crédit sans incident(Bad=0) avec incidents (Bad=1)
montant du prêt
montant du sur l’hypothèque
valeur de la propriété
motif du prêt : Consolidation financière Debtcon ,prêt immobilier Homelmp.
profession Mgr,Office, Other, ProfXexe, Sales, Self, manque
nombre d’années dans le travail actuel
nombre de demande de report d’échéances de prêt
nombre de litiges
Age du plus ancien crédit en mois
nombre de demandes récentes de crédit
nombre de crédits dans la banque
Ratio dette sur revenu
Enoncé
Feuille diagramme On construit un programme SAS comme un arbre, la racine de cet arbre est la source de
données, les noeuds sont les modules, et une relation d’un module père vers un module fils dit que certaines
données produites par le module père sont nécessaires au module fils pour l’évaluation du module fils.
Tools C’est l’ensemble des noeuds de calculs SAS ou procédures. les paramètres d’un module s’obtienne en double
cliquant ou par le bouton de droite
1. On définit la source des données à l’aide du module Input Data Source.
– Déposer le module Input Data Source sur le diagramme, et accéder à ces propriétés.
– Dans l’onglet Data, choisir comme Source Data la table SAMPSIO.HMEQ
– L’onglet Variable définit les attributs des variables. Chaque variables à cinq attributs : Model Role, Measurement,
Type, Format, Informat, Label. Définir l’attribut Model Role de la variable BAD comme Target, c’est la
variable que l’on cherche à expliquer. Que doit être l’attribut Measurment de la variable DEROG, le corriger
éventuellement.
2. Dans cette question on veut construire une base d’apprentissage constituée de 60% des emprunteurs et d’une base
de validation des 40% de clients restants en utilisant le module Data Partition, copier ce module et relier le
module source Input Data Source au module destination Data Partition. Définir alors les bonnes propriétés
de ce module.
3. Dans cette question on veut étudier graphiquement le lien qu’il y a entre les variables explicatives et la variable
que l’on cherche à expliquer. Plusieurs modules d’exploration multidimensionelle graphique sont disponibles
Distribution Explorer, Insight. Déposer ces deux modules et les relier à la table HMEQ.
Distribution Explorer Etudier l’histogramme des fréquences en croisant les deux variables DEBINC, BAD.
Qu’en concluez vous ?
Insight Faire une ACP des variables quantitatives. Qu’en conclure.
4. On modélise la variable BAD grâce à un arbre de décision, calculé grâce au module Tree. Poser ce module et le
relier au module Data Partition calculant les bases d’apprentissage et de test.
– Sélectionner le module Tree, et avec le bouton de droite sélectionner l’action Run et faire exécuter les calculs
nécessaires : branche du module Input Data Source au module Tree sélectionné.
– Pour étudier les résultats, vous pouvez alors répondre Yes à la suite de l’exécution, ou en sélectionnant le
module, choisir l’action results. Les menus principaux sont alors dépendant des fenêtres sélectionnées.
– Dans le menu View sélectionner l’option Tree pour afficher l’arbre. Les feuilles de cet arbre sont composées
d’un tableau de cinq lignes et trois colonnes. Les colonnes sont :
1ere Cette colonne indique les libellés des lignes (valeurs de la variable à expliquer BAD et Total).
2eme Cette colonne colonne indique les résultats pour la base de test.
LATEX2e 26 novembre 2009
2
[email protected]
Université de CAEN
M2-IAD MI5 Statistiques
3eme Cette colonne indique les résultats pour la base de test.
– On peut donner une couleur à chaque feuille proportionnelle à la proportion de bons payeurs grâce à des palettes
pré déterminées. De puis un clic droit sélectionner l’action Define Colors et choisir les bonnes options.
5. On va définir deux autres modélisation par arbre de décision avec différents paramètres.
Arbre 4 En ouvrant les propriétés d’un de ces arbres et en sélectionnant Basic choisir comme nombre maximum
de branche pour un noeud 4. Et enregistrer le modèle Model Name avec le nom arbre 4
Gini Sélectionner une méthode de segmentation de type Gini. Et nommer ce modèle Gini.
Faire exécuter les deux modèles, étudier les résultats.
6. Pour comparer ces trois modèles on va construire la courbe ROC associé à ces trois modèles grâce au module
Assessment. La courbe Roc représente en fonction d’une population dépendant d’un paramètre scalaire s ( par
exemple score > s), la proportion de clients mauvais payeurs (sensitivité) en fonction de la proportion de bons
clients dans cette même population ( 1 -spécificité).
– Connecter les modules Tree au module Assessment
– Faire exécuter et analyser les résultats.
– Sélectionner les 3 modèles
– Dans le menu Tool visualiser les courbes ROC Reciever Operating Characteristic et Lift Chart pour la base
d’apprentissage et la base de test. Comparer les trois modèles.
– Dans l’onglet result choisir alors le modèle qui servira de modèle pour les traitements suivants.
7. Dans cette question, on va utiliser le module Replacement permettant de remplacer par différents algorithmes
les valeurs manquantes.
– Relier le module Data Partition au module Replacement.
– Ouvrir les propriétés de ce module et sélectionner l’onglet des variables quantitatives Interval variables.
Quel est l’algorithme par défaut proposé ? Sélectionner toutes les variables sauf DEBTINC et sélectionner l’algorithme d’estimation des valeurs manquantes Tree Imputaion des propriétés Select Method.
– Définir la valeur de emplacement 50 pour la variable Debintc.
– Quel est l’algorithme de remplacement des valeurs manquantes des variables quantitatives Class Variables ?
8. Dans cette question on va modéliser la probabilité d’être mauvais payeur en fonction des variables explicatives
grâce à un modèle de régression logistique. le module correspondant est regression.
– Ajouter le module Regression
– Relier le module Replacement au module Regression puis au module Assessment.
– Ouvrir les propriétés du module Regression, quel est le type de régression utilisée par défaut.
– Comparer alors les quatre méthodes grâce à la courbe ROC.
9. On veut estimer la probabilité d’être mauvais payeur d’une nouvelle base de données constituée de clients ayant
actuellement des prêts. Le résultat du module Score et par défaut le code SAS permettant d’estimer cette
probabilité d’être mauvais payeur.
– Définir une nouvelle source de données grâce au module Input Data Source associé à la même table HMEQ.
Définir le rôle de cette table (onglet Data, Role=Score).
– Relier le module Assessment au nouveau module Score, relier le module Input Data Source au module
Score, ouvrir les propriétés du module Score, et spécifiez depuis l’onglet Settings que l’on veut calculer les
scores à partir du modèle estimé à partir de base d’apprentissage Apply training data code to score.
– Ajouter un nouveau module Insight.
– Relier le module Score au module Insight
– Le module score va transmettre plusieurs table au module fils Insight : les tables provenant de la conception
du modèle : les tables Taining, Validation, Test ; ainsi que la table de prédiction calculée à partir de la
table de scoring. Dans le module Insight, il faut sélectioner la table que l’on beut étudier grâce au menu
select. On choisira la table dont la description est Score Data.
– Faire exécuter le module Insight
10. Cette dernière étape consiste à sauvegarder les résultats
Sauvegarde du scoring On veut exporter au format excel les résultats du scoring.
– Sélectionner le module Insight relié au module Score et ouvrir les résultats.
– Sélectionner la colonne P_BAD0 probabilité pour que le client soit un bon payeur.
– Trier les données depuis le menu accessible en sélectionnant toute la base.
– Exporter les données au format Excel.
Programme SAS de Scoring – Sélectionner le module Score et ouvrir les résultats.
– Copier le code
– Sélectionner une fenêtre autre que celle d’Entreprise Miner
– Depuis le menu principal de SAS ouvrir l’éditeur Affichage –> Editeur. Le programme à exécuter est
le suivant :
LATEX2e 26 novembre 2009
3
[email protected]
Université de CAEN
M2-IAD MI5 Statistiques
Data work.toto; /* nom de la table de sortie */
Set sampsio.hmeq /* table à scorer */
/* copier le code ici */
run;
Programme C/Java de Scoring Ce module permet de créer des applications autonomes (sans SAS), ce qui
peut être intéressant pour le client final.
– Relier le module Assessment au nouveau module Score Converter
– Le faire exécuter.
– Je ne sais pas compiler le java ni le C, je compte sur vous.
Report Le module Report permet de générer un rapport automatique. Relier ce module au module Assessment,
le faire exécuter et analyser les résultats. On peut préciser le repertoire de sauvegarde, il est par defaut
dans le répertoire du projet.
LATEX2e 26 novembre 2009
4
[email protected]
Université de CAEN
1.3
M2-IAD MI5 Statistiques
Graphiques
Fig. 1 – Graphe
1.4
1.4.1
Solutions
Solution SAS arbre 2 feuilles
Data work.hmeqsc;
set sampsio.hmeq;
*-------------------------------------------------------------*;
LATEX2e 26 novembre 2009
5
[email protected]
Université de CAEN
M2-IAD MI5 Statistiques
* START_CHUNK 1547027255.7:T03F46M1
*;
*-------------------------------------------------------------*;
*
;
* TOOL : Input Data Source
;
* TYPE : SAMPLING
;
* NODE : SAMPSIO.HMEQ [T03F46M1]
;
*
;
*-------------------------------------------------------------*;
*-------------------------------------------------------------*;
* END_CHUNK 1547027255.7:T03F46M1
*;
*-------------------------------------------------------------*;
*-------------------------------------------------------------*;
* START_CHUNK 1551056604.8:T3BXMJZC
*;
*-------------------------------------------------------------*;
* END_CHUNK 1551056604.8:T3BXMJZC
*;
*-------------------------------------------------------------*;
*-------------------------------------------------------------*;
* START_CHUNK 1551065918.1:T3USDNSE
*;
*-------------------------------------------------------------*;
*
;
* TOOL : Tree
;
* TYPE : MODEL
;
* NODE : Tree [T3USDNSE]
;
*
;
*-------------------------------------------------------------*;
*
;
* MODEL NAME : Untitled
;
* DESCRIPTION :
;
*
;
* TARGET : BAD
;
*-------------------------------------------------------------*;
****************************************************************;
****** DECISION TREE SCORING CODE ******;
****************************************************************;
****** LENGTHS OF NEW CHARACTER VARIABLES ******;
LENGTH I_BAD $ 12;
LENGTH F_BAD $ 12;
LENGTH _WARN_ $ 4;
****** LABELS FOR NEW VARIABLES ******;
LABEL _NODE_ = ’Node’;
LABEL _LEAF_ = ’Leaf’;
LABEL P_BAD1 = ’Predicted: BAD=1’;
LABEL P_BAD0 = ’Predicted: BAD=0’;
LABEL I_BAD = ’Into: BAD’;
LABEL U_BAD = ’Unnormalized Into: BAD’;
LABEL F_BAD = ’From: BAD’;
LABEL R_BAD1 = ’Residual: BAD=1’;
LABEL R_BAD0 = ’Residual: BAD=0’;
LABEL _WARN_ = ’Warnings’;
****** TEMPORARY VARIABLES FOR FORMATTED VALUES ******;
LENGTH _ARBFMT_12 $ 12;
DROP _ARBFMT_12;
_ARBFMT_12 = ’ ’;
/* Initialize to avoid warning. */
_ARBFMT_12 = PUT( BAD , BEST12.);
%DMNORMCP( _ARBFMT_12, F_BAD );
****** ASSIGN OBSERVATION TO NODE ******;
IF NOT MISSING(DEBTINC ) AND
DEBTINC < 45.1848045236243 THEN DO;
IF NOT MISSING(VALUE ) AND
VALUE < 299746 THEN DO;
IF NOT MISSING(DELINQ ) AND
5.5 <= DELINQ THEN DO;
_NODE_ = 9;
_LEAF_ = 2;
P_BAD1 = 1;
P_BAD0 = 0;
I_BAD = ’1’;
U_BAD = 1;
END;
ELSE DO;
_NODE_ = 8;
_LEAF_ = 1;
P_BAD1 = 0.06177325581395;
P_BAD0 = 0.93822674418604;
I_BAD = ’0’;
U_BAD = 0;
END;
END;
ELSE DO;
_NODE_ = 5;
_LEAF_ = 3;
P_BAD1 = 0.76;
P_BAD0 = 0.24;
I_BAD = ’1’;
U_BAD = 1;
END;
END;
ELSE DO;
IF NOT MISSING(DELINQ ) AND
LATEX2e 26 novembre 2009
6
[email protected]
Université de CAEN
M2-IAD MI5 Statistiques
0.5 <= DELINQ THEN DO;
_NODE_ = 7;
_LEAF_ = 7;
P_BAD1 = 0.82926829268292;
P_BAD0 = 0.17073170731707;
I_BAD = ’1’;
U_BAD = 1;
END;
ELSE DO;
IF NOT MISSING(CLAGE ) AND
178.2 <= CLAGE THEN DO;
IF NOT MISSING(DEROG ) AND
0.5 <= DEROG THEN DO;
_NODE_ = 17;
_LEAF_ = 6;
P_BAD1 = 0.60869565217391;
P_BAD0 = 0.39130434782608;
I_BAD = ’1’;
U_BAD = 1;
END;
ELSE DO;
_NODE_ = 16;
_LEAF_ = 5;
P_BAD1 = 0.3046357615894;
P_BAD0 = 0.69536423841059;
I_BAD = ’0’;
U_BAD = 0;
END;
END;
ELSE DO;
_NODE_ = 10;
_LEAF_ = 4;
P_BAD1 = 0.66060606060606;
P_BAD0 = 0.33939393939393;
I_BAD = ’1’;
U_BAD = 1;
END;
END;
END;
***** RESIDUALS R_ *************;
IF F_BAD NE ’1’
AND F_BAD NE ’0’ THEN DO;
R_BAD1 = .;
R_BAD0 = .;
END;
ELSE DO;
R_BAD1 = -P_BAD1;
R_BAD0 = -P_BAD0;
SELECT( F_BAD );
WHEN( ’1’ ) R_BAD1 = R_BAD1 +1;
WHEN( ’0’ ) R_BAD0 = R_BAD0 +1;
END;
END;
****************************************************************;
****** END OF DECISION TREE SCORING CODE ******;
****************************************************************;
*-------------------------------------------------------------*;
* END_CHUNK 1551065918.1:T3USDNSE
*;
*-------------------------------------------------------------*;
run;
LATEX2e 26 novembre 2009
7
[email protected]