1 Régression logistique base de données assurance
Transcription
1 Régression logistique base de données assurance
Université de Caen U.F.R de Sciences Mathématiques mardi 13 décembre 2011 Master mathématiques et applications Deuxième année MASS Modèles de régression première session durée 3h Notes de master cours, travaux pratiques et polycopiés de cours uniquement autorisés Chaque candidat doit en début d’épreuve porter son nom dans le coin de la copie qu’il cachera par collage après la signature de la feuille d’émargement. Il devra en outre porter son numéro de place sur chacune de ses copies ou intercalaires. A la fin de cette épreuve vous devez imprimer votre fichier source et les graphiques demandés et les inclure dans votre copie. Les connexions internet de votre poste peuvent être suivies durant l’épreuve. La notation tiendra compte de la clareté de la rédaction et l’efficacité de la programmation En deuxième session l’épreuve est écrite et aucun document ne sera autorisé. 1 Régression logistique base de données assurance 1.1 Objectif Cette étude a été proposée dans un challenge mondial en 2000 sous la dénomination Insurance Company Benchmark proposé par Peter van der Putten Les résultats de ce challenge sont disponibles à la page CoIL Challenge 2000. Ces données sont maintenant disponibles sur le site KDD. Cette base de données contient des variables explicatives de 1 à 85 et une variable à expliquer la 86 ième variable. variables 1 à 43 variables géomarketing socio démographique décrivant la population dans une zone ou habite le client. variables 44 à 85 caractérisation des polices d’assurance du client. variable 86 variable cible le client a au moins une police d’assurance assurant une caravane. L’objectif est de prédire si des clients vont prendre une assurance caravane asur_caravane et de l’expliquer. 1.2 Description Le fichier de données http://www.math.unicaen.fr/~kauffman/data/caravane.txt contient 86 colonnes et 5822+1 lignes. La première ligne contient les noms des variables. 1 2 3 4 5 6 soustype client 33 37 37 9 40 23 nbmaisons 1 1 1 1 1 1 nbpers au foyer 3 2 2 3 4 2 age moyen 2 2 2 3 2 1 type client 8 8 8 3 10 5 catholique 0 1 0 2 1 0 protestant 5 4 4 3 4 5 autre religion 1 1 2 2 1 0 sans religion 3 4 4 4 4 5 marie 7 6 3 5 7 0 Table 1 – Les six premières lignes de dix premières colonnes de la table Le fichier http://www.math.unicaen.fr/~kauffman/data/caravane-dictionary.txt contient le label des variables numérotés par colonnes et le catalogue des formats ou modalités des variables qualitatives. Les lignes 4 à 89 contiennent les labels des variables ainsi que les formats ligne table 1 2 3 4 5 6 numéro de colonne, nom, label et format 1 MOSTYPE Customer Subtype see L0 2 MAANTHUI Number of houses 1 - 10 3 MGEMOMV Avg size household 1 - 6 4 MGEMLEEF Avg age see L1 5 MOSHOOFD Customer main type see L2 6 MGODRK Roman catholic see L3 Table 2 – Extrait du catalogue lignes 4 à 89 Les lignes 94 à 135 décrivent le format L0 associé à la première variable soustype_client (MOSTYPE en anglais). Chacune de ces lignes donne la correspondance entre le niveau de la modalité et son label. 1 level 1 2 3 4 5 6 label 1 High Income, expensive child 2 Very Important Provincials 3 High status seniors 4 Affluent senior apartments 5 Mixed seniors K1 6 Career and childcare Table 3 – Extrait du catalogue lignes 94 à 100 Voici le catalogue des variables de la table étudiée. nom soustype client nbmaisons nbpers au foyer age moyen type quali quanti quanti quali label Customer Subtype see L0 Number of houses 1 - 10 Avg size household 1 - 6 Avg age see L1 type client catholique quali qualiordonne Customer main type see L2 Roman catholic see L3 protestant qualiordonne Protestant ... autre religion qualiordonne Other religion sans religion qualiordonne No religion marie qualiordonne Married concubin qualiordonne Living together autre relation qualiordonne Other relation celibataire qualiordonne Singles sans enfant qualiordonne Household without children avec enfant qualiordonne Household with children niv etude haut qualiordonne High level education niv etud moy qualiordonne Medium level education niv etud bas qualiordonne Lower level education PCStop qualiordonne High status PCScadre qualiordonne Entrepreneur PCSagri qualiordonne Farmer PCSinter qualiordonne Middle management PCSouvr quali qualiordonne Skilled labourers PCSouvr qualiordonne Unskilled labourers classe sociale A qualiordonne Social class A classe sociale B1 qualiordonne Social class B1 classe sociale B2 qualiordonne Social class B2 classe sociale C qualiordonne Social class C 2 modalites ... 20-30 years ;30-40 years ;40-50 years ;50-60 years ;60-70 years ;70-80 years ... 0% ;1 - 10% ;11 - 23% ;24 - 36% ;37 - 49% ;50 - 62% ;63 75% ;76 - 88% ;89 - 99% ;100% 0% ;1 - 10% ;11 - 23% ;24 - 36% ;37 - 49% ;50 - 62% ;63 75% ;76 - 88% ;89 - 99% ;100% 0% ;1 - 10% ;11 - 23% ;24 - 36% ;37 - 49% ;50 - 62% ;63 75% ;76 - 88% ;89 - 99% ;100% 0% ;1 - 10% ;11 - 23% ;24 - 36% ;37 - 49% ;50 - 62% ;63 75% ;76 - 88% ;89 - 99% ;100% 0% ;1 - 10% ;11 - 23% ;24 - 36% ;37 - 49% ;50 - 62% ;63 75% ;76 - 88% ;89 - 99% ;100% 0% ;1 - 10% ;11 - 23% ;24 - 36% ;37 - 49% ;50 - 62% ;63 75% ;76 - 88% ;89 - 99% ;100% 0% ;1 - 10% ;11 - 23% ;24 - 36% ;37 - 49% ;50 - 62% ;63 75% ;76 - 88% ;89 - 99% ;100% 0% ;1 - 10% ;11 - 23% ;24 - 36% ;37 - 49% ;50 - 62% ;63 75% ;76 - 88% ;89 - 99% ;100% 0% ;1 - 10% ;11 - 23% ;24 - 36% ;37 - 49% ;50 - 62% ;63 75% ;76 - 88% ;89 - 99% ;100% 0% ;1 - 10% ;11 - 23% ;24 - 36% ;37 - 49% ;50 - 62% ;63 75% ;76 - 88% ;89 - 99% ;100% 0% ;1 - 10% ;11 - 23% ;24 - 36% ;37 - 49% ;50 - 62% ;63 75% ;76 - 88% ;89 - 99% ;100% 0% ;1 - 10% ;11 - 23% ;24 - 36% ;37 - 49% ;50 - 62% ;63 75% ;76 - 88% ;89 - 99% ;100% 0% ;1 - 10% ;11 - 23% ;24 - 36% ;37 - 49% ;50 - 62% ;63 75% ;76 - 88% ;89 - 99% ;100% 0% ;1 - 10% ;11 - 23% ;24 - 36% ;37 - 49% ;50 - 62% ;63 75% ;76 - 88% ;89 - 99% ;100% 0% ;1 - 10% ;11 - 23% ;24 - 36% ;37 - 49% ;50 - 62% ;63 75% ;76 - 88% ;89 - 99% ;100% 0% ;1 - 10% ;11 - 23% ;24 - 36% ;37 - 49% ;50 - 62% ;63 75% ;76 - 88% ;89 - 99% ;100% 0% ;1 - 10% ;11 - 23% ;24 - 36% ;37 - 49% ;50 - 62% ;63 75% ;76 - 88% ;89 - 99% ;100% 0% ;1 - 10% ;11 - 23% ;24 - 36% ;37 - 49% ;50 - 62% ;63 75% ;76 - 88% ;89 - 99% ;100% 0% ;1 - 10% ;11 - 23% ;24 - 36% ;37 - 49% ;50 - 62% ;63 75% ;76 - 88% ;89 - 99% ;100% 0% ;1 - 10% ;11 - 23% ;24 - 36% ;37 - 49% ;50 - 62% ;63 75% ;76 - 88% ;89 - 99% ;100% 0% ;1 - 10% ;11 - 23% ;24 - 36% ;37 - 49% ;50 - 62% ;63 75% ;76 - 88% ;89 - 99% ;100% 0% ;1 - 10% ;11 - 23% ;24 - 36% ;37 - 49% ;50 - 62% ;63 75% ;76 - 88% ;89 - 99% ;100% 0% ;1 - 10% ;11 - 23% ;24 - 36% ;37 - 49% ;50 - 62% ;63 75% ;76 - 88% ;89 - 99% ;100% classe sociale D qualiordonne Social class D locataire qualiordonne Rented house proprietaire qualiordonne Home owners auto1 qualiordonne 1 car auto2 qualiordonne 2 cars auto0 qualiordonne No car assur sante public qualiordonne National Health Service assur sante prive qualiordonne Private health insurance revenu1 qualiordonne Income < 30.000 revenu2 qualiordonne Income 30-45.000 revenu3 qualiordonne Income 45-75.000 revenu4 qualiordonne Income 75-122.000 revenu5 qualiordonne Income >123.000 revenu moyen qualiordonne Average income pouvoir achat qualiordonne Purchasing power class mt RC qualiordonne mt RC entreprise qualiordonne mt RC agri qualiordonne mt auto mt camion livraison qualiordonne qualiordonne mt moto qualiordonne mt mt mt mt qualiordonne qualiordonne qualiordonne qualiordonne Contribution private third party insurance see L4 Contribution third party insurance (firms) ... Contribution third party insurane (agriculture) Contribution car policies Contribution delivery van policies Contribution motorcycle/scooter policies Contribution lorry policies Contribution trailer policies Contribution tractor policies Contribution agricultural machines policies Contribution moped policies Contribution life insurances Contribution private accident insurance policies Contribution family accidents insurance policies Contribution disability insurance policies Contribution fire policies Contribution surfboard policies Contribution boat policies Contribution bicycle policies Contribution property insurance policies Contribution social security insurance policies Number of private third party insurance 1 - 12 Number of third party insurance (firms) ... camion remorque tracteur machine agri mt cyclomoteur mt assur vie mt accident perso qualiordonne qualiordonne qualiordonne mt accident famil qualiordonne mt invalidite qualiordonne mt incendie mt planche voile qualiordonne qualiordonne mt bateau mt velo mt MRH qualiordonne qualiordonne qualiordonne mt securite soc qualiordonne nb RC quanti nb RC entreprise quanti 3 0% ;1 - 10% ;11 - 23% ;24 - 36% ;37 75% ;76 - 88% ;89 - 99% ;100% 0% ;1 - 10% ;11 - 23% ;24 - 36% ;37 75% ;76 - 88% ;89 - 99% ;100% 0% ;1 - 10% ;11 - 23% ;24 - 36% ;37 75% ;76 - 88% ;89 - 99% ;100% 0% ;1 - 10% ;11 - 23% ;24 - 36% ;37 75% ;76 - 88% ;89 - 99% ;100% 0% ;1 - 10% ;11 - 23% ;24 - 36% ;37 75% ;76 - 88% ;89 - 99% ;100% 0% ;1 - 10% ;11 - 23% ;24 - 36% ;37 75% ;76 - 88% ;89 - 99% ;100% 0% ;1 - 10% ;11 - 23% ;24 - 36% ;37 75% ;76 - 88% ;89 - 99% ;100% 0% ;1 - 10% ;11 - 23% ;24 - 36% ;37 75% ;76 - 88% ;89 - 99% ;100% 0% ;1 - 10% ;11 - 23% ;24 - 36% ;37 75% ;76 - 88% ;89 - 99% ;100% 0% ;1 - 10% ;11 - 23% ;24 - 36% ;37 75% ;76 - 88% ;89 - 99% ;100% 0% ;1 - 10% ;11 - 23% ;24 - 36% ;37 75% ;76 - 88% ;89 - 99% ;100% 0% ;1 - 10% ;11 - 23% ;24 - 36% ;37 75% ;76 - 88% ;89 - 99% ;100% 0% ;1 - 10% ;11 - 23% ;24 - 36% ;37 75% ;76 - 88% ;89 - 99% ;100% 0% ;1 - 10% ;11 - 23% ;24 - 36% ;37 75% ;76 - 88% ;89 - 99% ;100% 0% ;1 - 10% ;11 - 23% ;24 - 36% ;37 75% ;76 - 88% ;89 - 99% ;100% ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... - 49% ;50 - 62% ;63 - 49% ;50 - 62% ;63 - 49% ;50 - 62% ;63 - 49% ;50 - 62% ;63 - 49% ;50 - 62% ;63 - 49% ;50 - 62% ;63 - 49% ;50 - 62% ;63 - 49% ;50 - 62% ;63 - 49% ;50 - 62% ;63 - 49% ;50 - 62% ;63 - 49% ;50 - 62% ;63 - 49% ;50 - 62% ;63 - 49% ;50 - 62% ;63 - 49% ;50 - 62% ;63 - 49% ;50 - 62% ;63 - nb RC agri quanti nb auto nb camion livraison quanti quanti nb moto quanti nb nb nb nb quanti quanti quanti quanti camion remorque tracteur machine agri nb cyclomoteur nb assur vie nb accident perso quanti quanti quanti nb accident famil quanti nb invalidite quanti nb incendie nb planche voile quanti quanti nb bateau nb velo nb MRH quanti quanti quanti nb securite soc quanti assur caravane quali 1.3 Number of third party insurane (agriculture) Number of car policies Number of delivery van policies Number of motorcycle/scooter policies Number of lorry policies Number of trailer policies Number of tractor policies Number of agricultural machines policies Number of moped policies Number of life insurances Number of private accident insurance policies Number of family accidents insurance policies Number of disability insurance policies Number of fire policies Number of surfboard policies Number of boat policies Number of bicycle policies Number of property insurance policies Number of social security insurance policies Number of mobile home policies 0 - 1 non ;oui Enoncé 1. Lire la table de données. Définir les labels des modalités de la variable soustype_client à partir du fichier catalogue. 2. Charger le fichier X0 contenant la table X0 avec les formats définis (réponse à la question précédente). Créer une variable cle numérotant les clients entre 1 et 5822. Définir la graine du générateur de nombre alétoire à 1, puis créer immédiatement une variable qualitative classe définissant la base d’apprentissage (60%) la base de test (20%) puis la base de validation (20%). A partir des types des variables, définir un vecteur X.quanti contenant les noms de toutes les variables explicatives quantitatives et un vecteur X.quali contenant les noms des variables explicatives qualitatives. apprentissage test validation classe 0.61 0.21 0.19 Table 5 – Tableau des frequences empiriques de la variable classe > as.character(X0$classe[1:10]) [1] "apprentissage" "apprentissage" "apprentissage" "test" [5] "apprentissage" "test" "test" "validation" [9] "validation" "apprentissage" 3. On étudie dans dans cette question, le lien qu’il y a entre avoir un contrat d’assurance caravane et le nombre d’automobiles assurées. Reproduire la figure suivante, commentez. 4 0 500 1000 1500 2000 2500 assur_caravanne = non assur_caravanne = oui 0 1 2 3 4 6 7 Figure 1 – Nombre d’assurances caravanes en fonction du nombre de véhicules 4. Dans cette question, ou veut agréger les modalités les plus rares des variables qualitatives. Puis on cherchera des variables qui sont liées à la variable cible. On prendra comme exemple la variable explicative PCScadre. (a) Construire une fonction diminuer.niveau qui a comme argument une variable qualitative. qui agrège deux modalités d’effectifs les plus faibles. > table(X$PCScadre) 0% 1 - 10% 11 - 23% 24 - 36% 37 - 49% 50 - 62% 63 - 75% 76 - 88% 4171 1202 348 37 12 52 0 0 89 - 99% 100% 0 0 > table(diminuer.niveau(X$PCScadre)) 0% 4171 37 - 49% 12 100% 0 1 - 10% 11 - 23% 1202 348 50 - 62% 63 - 75%+76 - 88% 52 0 24 - 36% 37 89 - 99% 0 (b) Puis construire une fonction niveau ayant comme argument une variable qualitative, qui applique la fonction précédente tant qu’au moins une classe a un effectif inférieur à 5% et qu’il y a au moins 3 classes. > table(niveau(X$PCScadre)) 0% 4171 1 - 10% 1202 63 - 75%+76 - 88%+89 - 99%+100%+37 - 49%+24 - 36%+50 - 62%+11 - 23% (c) Tester alors l’hypothèse que les variables qualitatives assur_caravane et la variable niveau(X$PCScadre) soient indépendantes. (d) Est ce que la variable PCScadre vous parait être une variable intéressante pour modéliser la variable cible ? Expliquez. (e) Dans cette étude expliquez pourquoi les variables quantitatives peuvent être aussi considérées comme qualitatives. En faisant éxécuter pour chacune des variables précédentes le code précédent et en ne sélectionnant que les variables ayant une p.value <0.05, on définit un vecteur de noms de variables qui sont liées à la variable cible, 5 niv_etud_moy mt_invalidite nb_invalidite mt_velo nb_velo nbpers_au_foyer classe_sociale_B1 mt_accident_famil nb_accident_famil autre_religion celibataire PCSinter protestant assur_sante_prive mt_cyclomoteur nb_cyclomoteur assur_sante_public PCSouvr PCStop classe_sociale_C PCSagri classe_sociale_D autre_relation PCSouvr_quali revenu4 marie auto1 revenu3 mt_securite_soc nb_securite_soc classe_sociale_A proprietaire auto0 locataire niv_etud_bas nb_incendie niv_etude_haut revenu1 soustype_client revenu_moyen mt_RC nb_RC mt_bateau nb_bateau pouvoir_achat type_client nb_auto mt_incendie mt_auto 0.02 0.04 0.06 0.08 p.value Figure 2 – Tests entre cible et explicatives X.sel=c("mt_auto", "mt_incendie", "nb_auto", "type_client", "pouvoir_achat", "nb_bateau", "mt_bateau", "nb_RC", "mt_RC", "revenu_moyen", "soustype_client", "revenu1", "niv_etude_haut", "nb_incendie", "niv_etud_bas", "locataire", "auto0", "proprietaire", "classe_sociale_A", "nb_securite_soc", "mt_securite_soc", "revenu3", "auto1", "marie", "revenu4", "PCSouvr_quali", "autre_relation", "classe_sociale_D", "PCSagri", "classe_sociale_C", "PCStop", "PCSouvr", "assur_sante_public", "nb_cyclomoteur", "mt_cyclomoteur", "assur_sante_prive", "protestant", "PCSinter", "celibataire", "autre_religion", "nb_accident_famil", "mt_accident_famil", "classe_sociale_B1", "nbpers_au_foyer", "nb_velo", "mt_velo") 5. Dans cette question, on veut agréger les modalités d’une variable explicative qualitative, en faisant un modèle de regression logistique expliquant la variable cible en fonction de cette variable. Dans cette question on explique la variable cible assur_caravane en fonction de la variable mt_auto. (a) Construire un modèle de regression logistique expliquant assur_caravane en fonction de la variable mt_auto de fonction de lien logit. La fonction de codage en R sera contr.treatment. (b) Tester les hypothèses β1 = βi pour i variant de 2 à 6 à l’aide de tests de Wald. Construire la table suivante. Quelles sont les modalités qui pourraient être agrégées à la première ? 1-2=0 1-3=0 1-4=0 1-5=0 1-6=0 z 0.01 0.36 -11.68 0.03 0.01 Pr( >|z|) 0.50 0.36 0.00 0.49 0.50 Table 6 – Tests de Wald (c) Construire la matrice de design Z du modèle précédent. Construire un modèle de régression logistique 6 expliquant la variable cible en fonction des colonnes de la matrice de design, puis selectionner un sous modèle de ce modèle. Pourquoi le modèle final permet d’aggréger les modalités absentes de ce modèle à la modalité de référence ? 6. Dans cette question, on utilise la table X1 ou l’on a diminué le nombre de modalités des variables qualitatives et quantitatives avec la méthode de sélection de modèle. On veut construire un modèle de regression logistique permettant de prédire la probabilité d’avoir un contrat d’assurance caravane. Une première étude avec une recherche de type backward sur les effets principaux de la table X1 a donné (load(paste(DATA,"caravane-2.Rdata",sep=""))) formule=as.formula(paste("assur_caravane ~",paste(X.sel,collapse="+"))) m=glm(formule,data=X1,family=binomial(link=logit)) m.back=stepAIC(m,direction="backward",data=X1) # # Step: AIC=2261.98 # assur_caravane ~ mt_auto + mt_incendie + type_client + pouvoir_achat + # mt_bateau + mt_RC + revenu_moyen + niv_etude_haut + mt_securite_soc + # revenu4 + classe_sociale_C + nb_cyclomoteur + protestant + # autre_religion + mt_velo Proposer un modèle de régression logistique en faisant toutes les vérifications d’usage. 7