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