Se connecter

Ou se connecter avec
Date limite de participation :
20 février 2014

Développement d’un score d’octroi

Il s’agit de développer un score d’octroi d’un produit donné pour une filiale d'un grand groupe bancaire. Un modèle de score d’octroi se définit comme étant une fonction mesurant le risque de défaillance d’une contrepartie. Cette fonction s’exprime, schématiquement, par une combinaison de variables jugées explicatives de ce risque. La construction d’un modèle de score repose ainsi sur l’idée que le lien observé dans le passé entre les caractéristiques de la contrepartie et le critère à modéliser continue de se vérifier dans le futur.

Classement
1. (2) Justin Reboullot Score 0,918173
2. (1) Elun Penalization Score 0,909223
3. (3) Arnaud de Myttenaere Score 0,904209
Ce challenge est terminé.

1 000

€ 

423

contributions

62

participants

terminé
terminé

Justin a gagné le challenge "Développement d’un score d’octroi".

Justin nous explique la démarche qu'il a adoptée et les difficultés qu'il a rencontrées lors de ce challenge. 
Le 17/06/2014

Bonjour Justin, tu es le vainqueur du challenge « Développement d'un score d'octroi », qui s'est terminé il y a quelques mois. Peux-tu te présenter en quelques mots ?

Justin : Après avoir fait deux ans d’économie à l’Université de Bourgogne, j’ai intégré l’Ecole d’Economie de Toulouse. Je me destinais avant tout à la recherche en économie théorique et pour cela Toulouse était l’endroit idéal. Cependant au fil de ma scolarité, la science économique m’a de moins en moins plu et j’ai commencé à prendre goût aux statistiques par le biais de l’économétrie en Master 2. Maintenant, je suis en master spécialisé à l’ENSAE pour passer d’économètre à statisticien. Comme beaucoup de personnes participant au concours, c’est par l’ENSAE que j’ai connu Datascience.net.

Pourrais-tu nous décrire les méthodes statistiques et outils technologiques que tu as utilisés pour mettre au point ton modèle, ainsi que les raisons qui t’ont conduit à ces choix ?

Justin : Ce challenge nous imposait un modèle logistique. Ainsi, le but pour les participants était de sélectionner/créer les bonnes variables à partir des données fournies. Pour ce faire j’ai tout d’abord essayé de mieux comprendre les données en faisant quelques statistiques descriptives et en particulier des tableaux de contingence. Cela m’a permis de voir entre autre que la date de fermeture du produit allait être une variable déterminante pour le modèle. Ensuite, j’ai présélectionné une vingtaine de variables/modalités à l’aide de forêts aléatoires puis j’ai sélectionné le meilleur modèle (selon le BIC) parmi tous les modèles contenant au maximum ces 20 variables.

A ce stade j’avais déjà de bon résultats, cependant, pour passer premier, il fallait que je crée d’autres variables, notamment il fallait que je dichotomise les variables continues. Ma première idée a été d’estimer les densités conditionnellement à y=0 et conditionnellement à y=1 pour une même variable et de les comparer. Cependant, cette stratégie n’a pas donné de bons résultats. Ceci vient du fait qu’une telle analyse descriptive ne prend pas en compte le conditionnement par rapport aux autres variables. Fort de ce constat, j’ai ensuite pensé qu’un arbre de classification pourrait m’aider. En effet, les arbres produisent des seuils tout en effectuant un certain type de conditionnement. Cette approche s’est révélée fructueuse et m’a permis de créer des variables dichotomiques significatives à partir des variables continues. J’ai finalement sélectionné à nouveau via le BIC en incluant ces nouvelles variables.

Datascience.net est toujours à l’écoute des propositions d’axes de progrès. Quelles seraient tes suggestions en la matière ?

Justin : Les améliorations apportées jusqu'à présent à chaque challenge ont été très positives, comme la création d'un classement public et d'un classement privé, ou la limitation du nombre de participants, qui ont permis de réduire les tentatives de surapprentissage qui faussent le classement, et d’exacerber la compétition entre les concurrents. Un axe d'amélioration serait peut-être de préciser un peu plus les critères de validation et ce qu’on a le droit de faire et surtout de ne pas faire dans le cadre d'un challenge. Aujourd'hui, l’accent est surtout mis sur le score comme condition de victoire. Mais si les règles proposées ne sont pas suffisamment précises, le risque est que les entreprises se retrouvent à la fin avec des modèles gagnant inutiles ou peu utilisables, car reposant sur des hypothèses incompatibles avec la réalité de leurs contraintes. 

Merci Justin, et bravo pour ton entrée dans le top 5 du nouveau classement général ! A très bientôt.

Ce challenge est proposé par le Groupe de Recherche Opérationnelle d'un grand groupe bancaire.

Dans l'optique d'une évolution de son processus d'octroi, le GRO souhaite acquérir un modèle de score d'octroi sur un type de produit. La décision de financement étant actuellement basé sur la décision humaine, le développement d'un score d'octroi sur des données internes va permettre un meilleur pilotage du risque.

Un modèle de score se définit comme une fonction mesurant le risque de défaillance (ou encore la probabilité de faire défaut) de la contrepartie. Bien qu'il existe plusieurs techniques de scoring (telles que l'analyse discriminante, les arbres, les réseaux de neurones,... ), ce challenge est volontairement limité aux méthodes de régression logistique (fonction de lien de type LOGIT). 

Bibliographie :

[1] - BOLTON C. (2009) Logistic regression and its application in credit scoring.
[2] - RAKOTOMALALA R. (2011) Pratique de la Régression Logistique. Régression Logistique Binaire et Polytomique

Le fichier que doit fournir le candidat est un fichier au format .csv, dont la structure est la suivante :

Id_Customer;PROBA
1;0,4256526524
2;
0,1255442656
3;
0,6544584645
...
...
Les données d'apprentissage mises à disposition contiennent 6 725 observations (contrats financés) et 19 variables qui sont décrites dans le tableau ci-dessous. Le fichier est en format .csv. 

Tableau des variables :

Variable Libellé Type
BirthDate Date de naissance Date
Customer_Open_Date Date d'arrivée du client dans la filiale bancaire Date
Customer_Type Type de client (existant / nouveau) Caractère
Educational_Level Niveau de diplôme Caractère
Id_Customer Identifiant du client Numérique
Marital_Status Situation familiale Caractère
Nb_Of_Products Nombre de produits détenus par le client à l'octroi Numérique
Net_Annual_Income Revenu annuel Numérique
Number_Of_Dependant Nombre de personnes à charge Numérique
P_Client Distinction des clients selon une caractéristique non définie ici Caractère
Prod_Category Catégorie du produit Caractère
Prod_Closed_Date Date de fermeture du produit Date
Prod_Decision_Date Date de décision de l'octroi (du financement) Date
Prod_Sub_Category Sous-catégorie du produit Caractère
Source Source de financement (Branch or Sales) Caractère
Type_Of_Residence Situation résidentielle Caractère
Y Variable d'intérêt (critère à modéliser) Numérique
Years_At_Business Nombre d'années dans son emploi actuel Numérique
Years_At_Residence Nombre d'années dans son lieu de résidence actuel Numérique

Performance du modèle

L'indice de performance utilisé pour ce challenge est l'indice de Gini. Il est défini à partir de la courbe ROC de la manière suivante : 

$$Gini = \frac{aire(a)}{aire(a) + aire(b)}$$

 

Sur ce graphique, on calcule l'indice de Gini pour une courbe donnée, qui classe les "taux de faux positifs" et "taux de vrais positifs".

Plus de détails peuvent être trouvés sur :

BOLTON C. (2009) Logistic regression and its application in credit scoring.

http://fr.wikipedia.org/wiki/Receiver_Operating_Characteristic

Validation du modèle

Au-delà de la valeur de l’indice de Gini qui va permette d’évaluer la performance globale du modèle, les candidats doivent s’assurer des éléments suivants :

  • Chaque modalité de chaque variable du modèle final doit contenir au moins 5% de la population d'apprentissage (et au moins 5 unités statistiques de chaque valeur de Y) ;
  • Les corrélations entre les variables du modèle ne doivent pas dépasser un certain seuil (T de Tschuprow et/ou V de Cramer < 0.5) ;
  • Chaque coefficient du modèle final doit être significatif au seuil de 10% et correctement ordonné en fonction du niveau de risque (par rapport au taux de défaut).

Ces éléments seront vérifiés à la fin du challenge, et tout modèle ne vérifiant pas ces conditions sera disqualifié, au profit de la meilleure contribution suivante.

Livrables

Pour que le challenge soit validé, le vainqueur devra fournir les éléments suivants :

  • Découpages des variables qui apparaissent dans le modèle final ;
  • Tableau des corrélations entre les variables du modèle final ;
  • Grille de score.

1. Les variables explicatives retenues dans le modèle logistique doivent-elles toutes être catégorielles (i.e. non continues) comme le suggère la première contrainte (variable catégorielle à partir des modalités) ?
Oui, les variables continues doivent être discrétisées.
 
2. Peut-on imputer librement les valeurs manquantes (exemple de valeur manque : variable Number_Of_Dependant pour Id_customer=8953) ?
Il est possibilité d’utiliser les méthodes d’imputation suivantes : imputation par moyenne ou médiane et imputation par régression.
 
3. Quelle est la base de référence pour les 5 % par modalités X : union d’apprentissage + test ?
Il s’agit de la base d’apprentissage.
 
4. Quelle la base de de référence pour le calcul des T Tschuprow : union d’apprentissage + test ?
Il s’agit de la base d’apprentissage.
 
5. Quelle est la base de référence pour les 5 unités statistiques de chaque valeur de Y : apprentissage uniquement (puisque la contrainte fait intervenir Y) ? 
Il s’agit de la base d’apprentissage.
 
6. Quelle est la base de référence pour le calcul des significativités (p-value) des coefficients (significativités à 10 %) : apprentissage uniquement (puisque la contrainte fait intervenir Y)
Il s’agit de la base d’apprentissage.
 
7. Que signifie, dans le troisième critère, l’expression « chaque coefficient doit être […] correctement ordonné en fonction du niveau de risque (par rapport au taux de défaut) » ? S'agit-il d'imposer que le signe de chaque coefficient doit être le même que celui de la corrélation entre Y et la variable à laquelle se rapporte le coefficient ?
Supposons que plus un client est risqué, plus sa note sera faible. Si l’on prend comme modalité de référence la modalité qui a le taux de défaut le plus élevé alors sa note sera 0.
Ainsi les autres modalités devront avoir un coefficient positif (car taux de défaut plus faible). Et nous souhaitons que les coefficients soient correctement ordonnés en fonction des taux de défaut respectif. Un exemple ci-dessous :
Age
Tx. défaut
Coefficient
< 25ans
12%0
[25 ; 30[
8%0.2
[30 ; 45[
5%0.35
>= 45 ans
2%0.47
 
8. « Chaque modalité de chaque variable du modèle final doit contenir au moins 5% de la population totale (et au moins 5 unités statistiques de chaque valeur de Y) ».
La population totale = échantillon d'apprentissage + échantillon de test ?
L’étape de transformation des variables s’applique sur l’échantillon d’apprentissage. Donc ici, il ne s’agit pas de la population totale (apprentissage + test) mais seulement de la population d’apprentissage. Il y avait une petite coquille dans l’énoncé (c’est bien 5% de l’échantillon d’apprentissage).
Quel est le sens de la phrase "et au moins 5 unités statistiques de chaque valeur de Y" ?
Supposons que Y ne prend que deux valeurs : 0 et 1. Il faut que chaque modalité soit composée d’au moins 10 observations (dont 5 pour lesquels Y = 0 et 5 pour lesquels Y =1). 

1. (2) Justin Reboullot 36 contributions 19/02/14 23:49 Score 0,918173
2. (1) Elun Penalization 85 contributions 19/02/14 14:49 Score 0,909223
3. (3) Arnaud de Myttenaere 39 contributions 03/02/14 19:45 Score 0,904209
4. (5) Thomas PALUGAN 56 contributions 19/02/14 17:53 Score 0,901320
5. (4) Dominique Emmanuel 85 contributions 17/02/14 20:08 Score 0,900777
6. (11) Jeremy Atia 21 contributions 20/02/14 22:50 Score 0,899932
7. (13) Hervé FOKOU 8 contributions 17/02/14 14:45 Score 0,894664
8. (7) Chris Aude 9 contributions 20/02/14 20:08 Score 0,894659
9. (6) jc 5 contributions 11/02/14 22:44 Score 0,886738
10. (8) Matthieu Bizien 4 contributions 07/02/14 01:42 Score 0,872973
11. Capmarket- Groupe AVISIA 8 contributions 20/02/14 19:59 Score 0,872349
12. (9) MR 10 contributions 05/02/14 18:16 Score 0,855739
13. (10) Arthur Flam 2 contributions 22/01/14 16:36 Score 0,851534
14. (12) Kevin Vu 17 contributions 17/02/14 15:24 Score 0,797506
15. (14) Pierre Bros 4 contributions 01/02/14 13:22 Score 0,020239
16. (15) Yacine Hmito 1 contribution 23/01/14 01:29 Score 0,000000
Discussions
loading... Chargement...