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]