Data Mining. Modèle d attrition Modeling Phase & Evaluation Phase. Modeling. IUT de Caen - Département STID Responsable : Alain LUCAS



Documents pareils
Crédit Scoring. Master 2 SRO. Année scolaire 2009/2010. Professeur : RICHARD EMILION. Réalisé par : MAHAMAT OUMAR ALHABO et OULD EL HADDAD CHEIKH

INITIATION AU LOGICIEL SAS

Étude de cas Assurance (d après une étude de Philippe Périé, CISIA)

Formation au logiciel SAS Statistical Analysis System

1 Modélisation d être mauvais payeur

SAS de base : gestion des données et procédures élémentaires

L export de SAS vers Excel expliqué à ma fille

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

Le Data Mining au service du Scoring ou notation statistique des emprunteurs!

Projet SINF2275 «Data mining and decision making» Projet classification et credit scoring

Exemples d application

distribution quelconque Signe 1 échantillon non Wilcoxon gaussienne distribution symétrique Student gaussienne position

Introduction au logiciel SAS François-Xavier LEJEUNE

Analyse statistique de données qualitatives et quantitatives en sciences sociales : TP RÉGRESSION LOGISTIQUE (MODÈLES CHAPITRE 1)

1 Imputation par la moyenne

Scénario: Score d appétence de la carte visa premier

Introduction aux outils BI de SQL Server Fouille de données avec SQL Server Analysis Services (SSAS)

Spécificités, Applications et Outils

Exemple PLS avec SAS

Initiation au logiciel SAS(9) pour Windows

Validation probabiliste d un Système de Prévision d Ensemble

Web Mining. YOUSSOUF Kamal LACHAAL Rafik. [Tapez le résumé du document ici. Il s agit généralement d une courte synthèse du document.

TP: Représentation des signaux binaires. 1 Simulation d un message binaire - Codage en ligne

Analyse discriminante et régression logistique: application au cas de l innovation pour les entreprises du Canton du Tessin

INF6304 Interfaces Intelligentes

TP SAS initiation IUP MIAGE L3

TP Bases de données réparties

INTRODUCTION AU DATA MINING

L'intelligence d'affaires: la statistique dans nos vies de consommateurs

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

Master Exploration Informatique des données Data Mining & Business Intelligence. Evelyne CHARIFOU Priscillia CASSANDRA

Amélioration de la fiabilité d inspection en CND grâce à la fusion d information : applications en rayons X et ultrasons

Scénario: Données bancaires et segmentation de clientèle

SAS ENTERPRISE MINER POUR L'ACTUAIRE

Utilisation du Logiciel de statistique SPSS 8.0

Exploiter les statistiques d utilisation de SQL Server 2008 R2 Reporting Services

MANIPULATION ET VISUALISATION DE GROSSES BASES DE DONNÉES AVEC R

Paginer les données côté serveur, mettre en cache côté client

Transmission d informations sur le réseau électrique

données en connaissance et en actions?

ODS : organiser et diffuser des sorties

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

Manipulation de données avec SAS Enterprise Guide et modélisation prédictive avec SAS Enterprise Miner

Un exemple de régression logistique sous

Introduction à la présentation graphique avec xmgrace

LA NOTATION STATISTIQUE DES EMPRUNTEURS OU «SCORING»

Changer la source d'une requête dans SAS Enterprise Guide. Ce document explique comment changer la table source de la tâche Filtre et requêtes.

BIRT (Business Intelligence and Reporting Tools)

Guide pour les chercheurs. Version 1.0

Surveillance de Scripts LUA et de réception d EVENT. avec LoriotPro Extended & Broadcast Edition

RapidMiner. Data Mining. 1 Introduction. 2 Prise en main. Master Maths Finances 2010/ Présentation. 1.2 Ressources

Cours 7 : Utilisation de modules sous python

2 Serveurs OLAP et introduction au Data Mining

Deuxième Licence en Informatique Data Warehousing et Data Mining La Classification - 1

# let rec concat l1 l2 = match l1 with [] -> l2 x::l 1 -> x::(concat l 1 l2);; val concat : a list -> a list -> a list = <fun>

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

Cours iguess. inotes v10.1

TP : Gestion d une image au format PGM

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

TD d économétrie appliquée : Introduction à STATA

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Algorithmique et programmation : les bases (VBA) Corrigé

Travaux pratiques avec RapidMiner

1 Objectifs. Traitement statistique des données d enquête avec introduction à SPSS. Plan

COMPRENDRE LES DIFFERENTS TYPES DE CONNEXION LORS DE LA

Partie I : Créer la base de données. Année universitaire 2008/2009 Master 1 SIIO Projet Introduction au Décisionnel, Oracle

Ordonnance sur le paiement à un enfant ou à une personne qui n est pas saine d esprit. Infant or Person of Unsound Mind Payment Order CODIFICATION

Annexe commune aux séries ES, L et S : boîtes et quantiles

Programmation Web. Madalina Croitoru IUT Montpellier

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS

Table des matières L INTEGRATION DE SAS AVEC JMP. Les échanges de données entre SAS et JMP, en mode déconnecté. Dans JMP

Gnuplot. Chapitre Lancer Gnuplot. 3.2 Options des graphes

LES MODELES DE SCORE

TP JAVASCRIPT OMI4 TP5 SRC

Introduction à R. Florence Yerly. Dept. de mathématiques, Université de Fribourg (CH) SP 2011

Séance 11 : Typologies

STS SE. FreeRTOS. Programmation réseau WIFI. Programmation réseau. Socket Tcp. FlyPort smart Wi-Fi module

ESSEC. Cours «Management bancaire» Séance 3 Le risque de crédit Le scoring

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

I. Programmation I. 1 Ecrire un programme en Scilab traduisant l organigramme montré ci-après (on pourra utiliser les annexes):

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

EmonCMS sur EWATTCH Cloud

Plan 1/9/2013. Génération et exploitation de données. CEP et applications. Flux de données et notifications. Traitement des flux Implémentation

Introduction à MATLAB R

AWS avancé. Surveiller votre utilisation d EC2

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

CALCUL D UN SCORE ( SCORING) Application de techniques de discrimination LES OBJECTIFS DU SCORING

Recherche dans un tableau

Déroulement d un projet en DATA MINING, préparation et analyse des données. Walid AYADI

Electricité : caractéristiques et point de fonctionnement d un circuit

Manuel de l Administrateur

1 Introduction et installation

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Lire ; Compter ; Tester... avec R

REPORTING MÉTIERS SAS APPLICATIONS AVEC. Mettre en forme et diffuser vos résultats avec SAS 9 et SAS 9 BI. Olivier Decourt. Préface de Philippe Letren

Allo Support et services électroniques

1. Structure d'un programme FORTRAN 95

Etude des propriétés empiriques du lasso par simulations

Transcription:

IUT de Caen - Département STID Responsable : Alain LUCAS Data Mining Modèle d attrition Modeling Phase & Evaluation Phase STID 2ème année Le travail de compréhension et d appropriation des données («Data Understanding Phase»), ainsi que le travail de préparation des données («Data Preparation Phase») ayant tous deux été menés, il reste à réaliser dans l ordre les phases «Modeling» et «Evaluation». La phase «Modeling» a pour objet dans le cas présent de construire un ou plusieurs modèles permettant d estimer la probabilité d un client de la banque de partir à la concurrence. Dans ce cadre, menant à une modélisation supervisée binaire, on fera usage du modèle de la régression logistique en considérant comme variable cible la variable de churn. Quant à la phase de «Validation», elle a pour objectif d évaluer la qualité du ou des modèles, et le cas échéant de déterminer le meilleur, autrement dit celui que l on va être amené à conserver en vue de détecter en amont les clients susceptibles de partir à la concurrence. Dans le cadre d une modélisation supervisée binaire, comme c est le cas ici, des outils numériques tels que «Error Rate», «Sensitivity» ou encore «Specificity», ainsi que des outils graphiques tels que «Lift Chart», «Gain Chart» ou encore «ROC Curves» sont couramment employés dans l évaluation de la qualité du ou des modèles en concurrence. Modeling 1. Lancer le logiciel SAS, puis créer une fenêtre EDITOR nommée Modeling - Evaluation. 2. Dans la fenêtre ainsi créée, écrire les lignes de commande suivantes : dm clear log ; dm clear output ; options linesize=120 nodate nonumber; 3. Créer à la suite du code la librairie DM via l instruction libname (adapter si besoin la lettre du disque!) : libname DM C :\Datamining ; 4. Vérifier que la table BDS est bien présente dans le répertoire Datamining. Afin de visualiser les caractéristiques de la table, écrire les lignes de code suivantes : title1 Modeling Phase ; proc contents data=dm.bds; title3 Caractéristiques du Business Data Set ; Compiler le programme, puis observer les caractéristiques du fichier : nombre de clients? nombre de variables explicatives? Présence de la variable cible? Le type de la variable Balance Bin est-il compatible avec la variable? Justifier votre réponse. 5. On décide de modifier le type de la variable Balance Bin afin de la rendre qualitative. Dans ce but, écrire le code suivant : data copy; set DM.BDS ; tmp=put(balance Bin,1.) ; drop Balance Bin; 1 data copy; set copy ; Balance Bin = tmp; drop tmp ; proc contents data=copy; title3 Contrôle changement de type ; Compiler le programme, puis vérifier le succès de l opération. 6. On décide de contrôler la distribution de la variable Cancel afin de vérifier que la table BDS est bien en accord avec les résultats obtenus dans la précédente phase. Dasnce but, écrire les lignes suivantes : proc freq data=copy; title3 Informations sur la variable Cancel ; table Cancel ; Compiler, puis vérifier le succès de l opération. 7. Dans le but de construire les modèles puis d en évaluer la qualité, on décide de séparer le «Business Data Set» en deux échantillons, nommés respectivement «Training Data Set» et «Validation Data Set», via un tirage aléatoire sans remise selon la répartition 70%-30%. L échantillon d apprentissage permet de construire les différents modèles tandis que l échantillon de validation permet, a posteriori, d évaluer la qualité des modèles et le cas échéant de choisir le meilleur. Ce travail étant réalisé, on souhaite contrôler le succès de l opération en s assurant au moins que la distribution de la variable cible est approximativement identique au sein des trois échantillons. Dans ce but, écrire le code suivant : data training validation; set DM.BDS ; if ranuni(123)<0.70 then output training ; else output validation; proc contents data=training ; title3 Training Data Set ; proc contents data=validation; title3 Validation Data Set ; proc freq data=training ; table cancel ; proc freq data=validation; table cancel ; Compiler ce programme, puis vérifier le succès de l opération. 8. Dans le cadre de la régression logistique, on a besoin de connaître les modalités des variables qualitatives et ce afin d en définir une par variable comme modalité référente. Dans ce but, écrire les lignes de commande suivantes : proc freq data=copy; title3 Informations sur les modalités des variables qualitatives ; table NrLeasing NrAccounts MaritalStatus Gender ActualValueSegment ComplaintsPct grp Funds Bin Loan Bin Balance Bin; Compiler, puis visualiser la sortie. 2

9. Ce travail préparatoire étant réalisé, il convient maintenant de passer à l étape de modélisation. Dans ce but, on décide de faire usage de la procédure LOGISTIC laquelle permet de construire un modèle logistique. Il existe trois méthodes de sélection automatique de variables, à savoir la méthode Forward, la méthode Backward, et la méthode Stepwise. Dans le cas présent, on décide de mettre en oeuvre la méthode Forward laquelle sélectionne une à une les variables pertinentes selon le test du Score sachant qu une variable sélectionnée ne peut être retirée du modèle. Ecrire les lignes de code suivantes : proc logistic data=training descending outmodel=work.model1 ; title3 Modèle 1 : Forward ; class NrLeasing (descending) NrAccounts MaritalStatus (descending) Gender (descending) ActualValueSegment (descending) Funds Bin Loan Bin Balance Bin (descending) / param=ref ; model Cancel = NrLeasing NrAccounts MaritalStatus Gender ActualValueSegment ComplaintsPct grp Funds Bin Loan Bin Balance Bin Balance Loan Funds CorrectedCustomerMonths / selection = forward slentry=0.1 details outroc=roc1 ; Compiler ce programme, puis visualiser la sortie. Fig. 3 - Table des odds-ratio 10. On décide maintenant d opérer la même stratégie mais selon la méthode Backward laquelle, contrairement à la méthode Forward, considère au départ l ensemble des variables explicatives dans le modèle, et les élimine une à une selon le test du Score. Ecrire les lignes de code suivantes : proc logistic data=training descending outmodel=work.model2 ; title3 Modèle 2 : Backward ; class NrLeasing (descending) NrAccounts MaritalStatus (descending) Gender (descending) ActualValueSegment (descending) Funds Bin Loan Bin ComplaintsPct grp Balance Bin / param=ref ; model Cancel = NrLeasing NrAccounts MaritalStatus Gender ActualValueSegment Funds Bin Loan Bin ComplaintsPct grp Balance Bin Balance Loan Funds CorrectedCustomerMonths / selection = backward slstay=0.05 details outroc=roc2 ; Compiler ce programme, puis visualiser la sortie. Fig. 1 - Extrait de la sortie de la procédure LOGISTIC Préciser la première variable sélectionnée par la méthode (cf. Step 1). En déduire une écriture du modèle. Indiquer finalement l ensemble des variables sélectionnées par la méthode (cf. Fig. 2). Fig. 4 - Analyse de l effet des variables, les autres étant présentes Enumérer les unes après les autres les variables qui sont éliminées du modèle. Obtient-on un modèle identique à celui construit via la méthode Forward? Fig. 2 - Table des variables sélectionnées En s aidant de la table Estimation des rapports de cotes, lesquels représentent les odds-ratio, interpréter l effet de chacune des variables sur la variable cible (cf. Fig. 3). 3 Fig. 5 - Liste des variables éliminées 4

11. Enfin, on décide de construire un troisième modèle via la méthode Stepwise laquelle est similaire à la méthode Forward sauf qu elle autorise l élimination d une variable préalablement entrée dans le modèle. Ecrire les les lignes de code suivantes : proc logistic data=training descending outmodel=work.model3 ; title3 Modèle 3 : Stepwise ; class NrLeasing (descending) NrAccounts MaritalStatus (descending) Gender (descending) ActualValueSegment (descending) Funds Bin Loan Bin ComplaintsPct grp Balance Bin / param=ref ; model Cancel = NrLeasing NrAccounts MaritalStatus Gender ActualValueSegment Funds Bin Loan Bin ComplaintsPct grp Balance Bin Balance Loan Funds CorrectedCustomerMonths / selection = stepwise slentry=0.1 slstay=0.05 details outroc=roc3 ; Compiler ce programme, puis visualiser la sortie. Enoncer les variables sélectionnées par ce modèle. Existe-t-il une différence entre ce modèle et les autres modèles? Evaluation 1. On se propose ici de construire une macro permettant de représenter le Lift Chart et le Gain Chart, graphiques permettant d évaluer la qualité des modèles, et le cas échéant de les comparer. Afin de réaliser ces graphiques, la stratégie va consister à appliquer chacun des modèles sur la table Validation. Il en résultera une table SAS contenant non seulement la valeur de la variable Cancel, mais également une variable nommée P 1 donnant la probabilité de Churn pour chacun des clients de la table Validation. La macro ci-dessous attend en entrée une table SAS contenant les variables Cancel et P 1 %macro Evaluation(data) ; set &data (rename = (P 1 = Probability Churn)) ; (permet de renommer la variable P 1) where Probability Churn NE. ; (permet d éliminer les clients dont la probabilité n a pu être estimée) keep Cancel Probability Churn; (permet de conserver uniquement la variable Cancel et la probabilité de Churn) proc sort data=work; by descending Probability Churn; (permet d ordonner les clients selon la probabilité de Churn - ordre décroissant) proc rank data=work descending out=work groups=10 ; var Probability Churn; (permet de découper la table en 10 groupes de même fréquence selon Probability Churn) ranks Deciles ; (permet de nommer la variable contenant le numéro du groupe d appartenance - de 0 à 9) set work ; Deciles=Deciles+1 ; (permet d augmenter d une unité la valeur de chacun des déciles - de 1 à 10) proc freq data=work noprint ; (permet de comptabiliser le nombre de clients par décile) table Deciles / out=tmp1 work (rename = (count = Deciles Gr) drop = percent) ; (permet de renommer la variable count et de supprimer la variable percent) data tmp1 work; set tmp1 work; Cum+Deciles Gr; (permet de créer la variable Cum cumulant le nombre de clients par décile) set work; Cum Churn+Cancel ; (permet de créer la variable Cum Churn cumulant la variable Cancel) 5 proc sort data=work; (permet d ordonner la table work selon la variable Deciles - ordre croissant par défaut) data tmp2 work; set work ; if Last.Deciles ; keep Deciles Cum Churn; (permet de calculer le nombre de Churn par décile) proc sort data= tmp1 work; (permet d ordonner la table tmp1 work selon la variable Deciles - ordre croissant par défaut) proc sort data=tmp2 work; (permet d ordonner la table tmp1 work selon la variable Deciles - ordre croissant par défaut) data Assess ; merge tmp1 work tmp2 work; (permet de fusionner les tables selon la variable Deciles en une table nommée Assess) keep Deciles Cum Churn Cum ; (permet de conserver les variables Deciles, Cum Churn et Cum) set work; tmp=input(cancel,8.) ; (permet de modifier le type de la variable Cancel en variable continue nommée tmp) drop Cancel ; set work; Cancel=tmp; drop tmp ; (permet de renommer la variable tmp en Cancel) proc means data=work noprint ; var Cancel ; output out = global (keep = global rate global sum) mean(cancel)=global rate sum(cancel)=global sum ; (permet de calculer le taux global et le nombre global de Churn) data Assess ; set Assess ; if ( n =1) then set global ; (permet de spécifier les statistiques de la table Global sur chacune des lignes de Assess) percent local rate=100*cum Churn/Cum; (permet de calculer le taux de Churn par décile) percent global rate=100*global rate ; (permet d exprimer le taux global de Churn en pourcentage sur chaque ligne) Lift=percent local rate/percent global rate ; (permet de calculer le Lift par décile) Gain=100*Cum Churn/global sum ; (permet de calculer le Gain par décile) Deciles=10*Deciles ; (permet d exprimer les déciles en pourcentage) drop global rate ; %mend; Compiler alors ce programme. 2. Il s agit maintenant d appliquer le premier modèle (celui obtenu selon la méthode Forward) à la table Validation afin d en obtenir une estimation de la probabilité de Churn pour chacun des clients contenus dans cette table. Ecrire la procédure LOGISTIC suivante : proc logistic inmodel=work.model1 ; score data=validation out=validation1 ; 6

Compiler ce programme, puis visualiser les 30 premières observations de la table Validation1. Observez-vous une colonne nommée P 1? Que représente-t-elle? Note : il est possible que l instruction score apparaisse en rouge. Néanmoins, SAS effectue correctement la compilation. 3. On souhaite faire usage de la macro Evaluation afin d en déduire le Lift et le Gain associés à ce modèle. Dans ce but, écrire le code suivant : %Evaluation(validation1) ; data Assess model1 ; set Assess ; proc print data=assess model1 noobs ; title3 Visualisation de la table Assess model1 ; Compiler ce programme, puis s assurer du succès de l opération. Fig. 6 - Contenu de la table Assess model1 4. On souhaite procéder exactement de la même manière avec le second modèle, i.e. celui obtenu selon la méthode Backward. Dans ce but, écrire les lignes de commande suivantes : proc logistic inmodel=work.model2 ; score data=validation out=validation2 ; %Evaluation(validation2) ; data Assess model2 ; set Assess ; proc print data=assess model2 noobs ; title3 Visualisation de la table Assess model2 ; Compiler, puis comparer les tables Assess model1 et Assess model2. Sont-elles identiques? 6. On veut maintenant procéder à la représentation graphique du Lift Chart. Dans ce but, écrire les lignes de code suivante : proc sort data=assess model1 ; proc sort data=assess model2 ; data Lift ; merge Assess model1 (keep = Deciles lift rename = (lift = lift1)) Assess model2 (keep = Deciles lift rename = (lift = lift2)) ; GOPTIONS reset=all devmap=winansi keymap=winansi cback=lightgrey border; axis1 label=(angle=0 Déciles ) order=(10 to 100 by 10) length=17cm; axis2 label=(angle=0 Lift ) order=(0.6 to 5 by 0.2) length=17cm ; symbol1 i=join v=circle c=red line=1 width=2 ; symbol2 i=join v=circle c=blue line=1 width=2 ; legend label=( LEGEND ) value=( Model1 Model2 ) ; proc gplot data=lift ; title Courbes du Lift ; plot lift1*deciles=1 lift2*deciles=2 / overlay haxis=axis1 vaxis=axis2 vref=1 legend=legend; quit ; Compiler ce programme, puis visualiser le graphique. Vérifier qu il est en accord avec celui de la Fig. 2. Interpréter alors le graphique. Fig. 8 - Courbes du Lift Fig. 7 - Contenu de la table Assess model2 5. Il est inutile de faire ce travail pour le troisième modèle. Pourquoi? 7 7. On souhaite maintenant représenter le Gain Chart. Dance but, écrire le code suivant : proc sort data=assess model1 ; proc sort data=assess model2 ; 8

data gain ; merge Assess model1 (keep = Deciles gain rename = (gain = gain1)) Assess model2 (keep = Deciles gain rename = (gain = gain2)) ; data tmp ; input Deciles gain1 gain2 ; cards ; 0 0 0 ; data gain ; set tmp gain; proc print data=gain; title3 Comparaison du gain pour les trois modèles ; GOPTIONS reset=all devmap=winansi keymap=winansi cback=lightblue border; axis1 label=(angle=0 Déciles ) order=(0 to 100 by 10) length=17cm ; axis2 label=(angle=0 Gain ) order=(0 to 100 by 10) length=17cm; symbol1 i=join v=none c=red line=1 width=2 ; symbol2 i=join v=none c=blue line=1 width=2 ; symbol3 i=join v=none c=black line=2 width=1 ; legend label=( LEGEND ) value=( Model1 Model2 Random ) ; proc gplot data=gain; title Gain Chart ; plot gain1*deciles=1 gain2*deciles=2 Deciles*Deciles=3/ overlay haxis=axis1 vaxis=axis2 legend=legend; quit ; Compiler ce programme. Visualiser le graphique, puis vérifier qu il est identique à celui de la Fig. 3. Interpréter ce graphique. 8. On souhaite enfin représenter les ROC Curves. Dans ce but, visualiser le contenu des tables ROC1 et ROC2 : title1 ROC Curves ; proc print data=roc1 (obs=30) ; title3 Table ROC1 ; proc print data=roc2 (obs=30) ; title3 Table ROC2 ; Compiler, puis préciser ce que représentent les colonnes sensit et 1mspec. 9. Afin de représenter ces courbes, écrire le programme suivant : proc sort data=roc1 ; by 1mspec ; proc sort data=roc2 ; by 1mspec ; Fig. 10 - ROC Curve (modèle 1) Fig. 9 - Courbes du Gain 9 GOPTIONS reset=all devmap=winansi keymap=winansi cback=white border; axis1 label=(angle=0 1-Specificity ) order=(0 to 1 by 0.1) length=17cm; axis2 label=(angle=0 Sensitivity ) order=(0 to 1 by 0.1) length=17cm; symbol1 i=join v=none c=red line=1 width=2 ; symbol2 i=join v=none c=black line=1 width=2 ; proc gplot data=roc1 ; title Courbe ROC modèle 1 ; plot sensit * 1mspec =1 sensit * sensit =2 / overlay haxis=axis1 vaxis=axis2 ; quit ; GOPTIONS reset=all devmap=winansi keymap=winansi cback=white border; axis1 label=(angle=0 1-Specificity ) order=(0 to 1 by 0.1) length=17cm; axis2 label=(angle=0 Sensitivity ) order=(0 to 1 by 0.1) length=17cm; symbol1 i=join v=none c=red line=1 width=2 ; 10

symbol2 i=join v=none c=black line=1 width=2 ; proc gplot data=roc2 ; title Courbe ROC modèle 2 ; plot sensit * 1mspec =1 sensit * sensit =2 / overlay haxis=axis1 vaxis=axis2 ; quit ; Compiler, puis vérifier que les deux courbes sont semblables à celle de la Fig. 10. 10. Selon des considérations pratiques, on décide de choisir comme seuil d étude 20%. Cela signifie que l on s intéresse maintenant aux clients dont le score fait parti des 20% meilleurs scores, clients qui seront qualifiés de Churner. Selon cette stratégie, indiquer le modèle qui semble le plus pertinent. 11. On souhaite maintenant calculer un certain nombre d indicateurs sur la base du seuil de 20%. Dans ce but, écrire le code suivant : proc sort data=validation2 ; by descending P 1 ; proc univariate data=validation2 noprint ; var P 1 ; output out=tmp pctlpts=20 pctlpre=tmp ; data validation2 ; set validation2 ; if ( n eq 1) then set tmp; keep F Cancel P 1 tmp20 ; data confusion; set validation2 ; I Cancel = (P 1 > tmp20) ; Compiler ce programme, puis visualiser les 30 premières observations de la table confusion. Interpréter chacune des variables. 12. Les indicateurs que l on souhaite calculer s obtiennent à partir de la matrice de confusion suivante : Predicted Observed Churn No Churn Total Churn TP FN TP+FN No Churn FP TN FP+TN Total TP+FP FN+TN où l on a TP = True Positive = nombre de Churner bien classés, TN = True Negative = nombre de No Churner bien classés, FP = False Positive = nombre de clients classés Churner alors qu ils sont No Churner, FN = False Negative = nombre de clients classés No Churner alors qu ils sont Churner. A partir de la procédure FREQ suivante, compléter la matrice de confusion : proc freq data=confusion; table F Cancel*I Cancel/ nocum nocol nopercent norow ; 13. Compléter alors les indicateurs suivants : Error rate = Precision = Sensitivity = Specificity = FP + FN TP + TN + FP + FN = TP TP + FP = TP TP + FN = TN TN + FP = Commenter alors chacun de ces indicateurs. 11