Exploration de données d'enquête INSEE en

Patrimoine des Français

Résumé

Exploration des données d'une l'enquête INSEE sur le patrimoine des français. Analyses uni, bi et multidimensionnelles: AFC, AFCM, classification non-supervisée k-means, CAH} des individus et interprétation des classes.

Présentation

Objectif

Le travail présenté décrit le déroulement classique d'une étude marketing dans un service de Gestion de la Relation Client. Les données sont extraites d'une enquête INSEE sur le patrimoine des ménages et des personnes constituant ces ménages. Le service marketing d'une banque ou d'une société d'assurance souhaite mieux connaître la structure socio-économique des ménages en France en rapport à leur patrimoine. Deux objectifs sont poursuivis sur ce type de données :

  • Définition de classes ou segments homogènes des individus, c'est-à-dire des ménages ou des individus constituant les ménages,
  • Estimation d'un score ou d'un risque en vue d'un objectif particulier. Il s'agira, dans un deuxième temps, d'estimer un score d'intérêt pour un produit d'épargne particulier comme par exemple l'assurance vie, en fonction des caractéristiques socio-économiques des individus.

Seul le premier objectif est poursuivi dans la présente étude avec, en plus, l'idée d'étudier la structure des données afin d'évaluer la faisabilité du 2ème objectif ; ce sera l'objet d'un autre tutoriel.

Les données

Les données sont publiques et accessibles sur le site de l'INSEE. Elles sont issues d'une enquête "Patrimoine" réalisée en 2003-2004 qui faisait suite à des enquêtes "Actifs financiers" de 1986 et 1992. L'enquête "Patrimoine" visait une connaissance globale du patrimoine des ménages ainsi que de ses principales composantes. Elle recense tous les différents types d'actifs financiers, immobiliers et professionnels détenus par les individus ainsi que les différents types d'emprunts (immobilier, à la consommation, achat voiture, biens professionnels, ...). Outre la connaissance de souscriptions à différents types de produits, l'enquête interroge aussi les individus sur leur motivation de détention permettant ainsi d'appréhender le comportement patrimonial des ménages. Certaines questions liées à l'héritage, à la donation, à l'historique professionnelle et familiale, à la situation matrimoniale et financière sont ainsi renseignées. Les données, très volumineuses et relativement complexes sont accessibles sous la forme d'une base de données relationnelle compressée en 4 archives: ménages (657 variables pour 9 692 observations), individus (223 variables pour 22 821 observations), produits (89 variables pour 82 413 observations), transmission (29 variables pour 9 239 observations). Des variables clef identifiant le ménage, le numéro de l'individu dans le ménage ainsi que le numéro de produit possédé, permettent leur bonne mise en relation.

Dans cette étude, il a été choisi a priori de prendre pour unité statistique les individus car le produit "assurance vie" cible de l'étude est nominatif. Cette approche est aussi justifiée par le nombre important de personnes vivant seules et aussi par les difficultés à obtenir des informations patrimoniales quantitatives des ménages. C'est surtout sur les individus que cette enquête finalement renseigne.

Les variables se répartissent en différents groupes :

  • Sociologiques âge, sexe, situation matrimoniale, nombre d'enfants et petits enfants, études et diplômes, situation professionnelle, localisation géographiques, âge des parents, existence ou non des parent et de grands-parents, occurrence ou non d'événements graves (maladie, décès, divorce...);
  • Actifs financiers Ils ont été regroupés en plusieurs sous catégories : les livrets d'épargne (défiscalisé ou non), l'épargne logement (CEL, PEL), l'épargne retraite hors assurance vie (PEP, complémentaire retraite volontaire, assurance décès volontaire, bons de capitalisation), l'épargne salariale et les stock-options, les valeurs mobilières (compte titre, PEA, SICAV, FCP). Beaucoup de produis financiers considérés par l'enquête ne sont pas pris en compte dans cette étude car bien trop rarement possédés par les personnes interrogées : bons autres que capitalisation, compte à terme, compte courant d'associés, livret épargne entreprise...
  • Endettement Cette catégorie tient compte de l'endettement pour des motifs aussi variés que l'achat de la résidence principale, les gros travaux immobiliers, l'achat de voiture, le crédit à la consommation et les emprunts à titre professionnel. Les variables sont binaires : détention d'une dette ou non;
  • Patrimoine des ménages Deux variables sont référencées pour évaluer le patrimoine des ménages financier ou immobilier. Même en interrogeant confidentiellement les personnes et sur des tranches de valeurs approximatives, le nombre de valeurs manquantes est exceptionnellement élevé pour ces variables : plus de 90% pour le patrimoine financier et plus de 60% pour le patrimoine globale et immobilier. Ces variables sont inexploitables. Seule celle signalant la détention d'héritage et/ou donation est utilisable;
  • Revenu des ménages Il en est de même pour les revenus, les français sont très susceptibles sur ces questions. Malgré une enquête très détaillée par tranche de type de revenu, les informations obtenues sont insuffisamment renseignées et, ne considérer que celles obtenues, introduirait sans doute des biais importants.

Un travail préliminaire important a donc consisté à construire un "entrepôt de données" fiable et suffisamment renseigné à partir des quatre archives disponibles sur le site de l'INSEE. Certaines variables seront considérées qualitatives (tranches d'âge), beaucoup de modalités sont regroupées pour éviter les trop faibles effectifs de certaines, des variables quasiment constantes sont éliminées. Obtenir des données correctes et fiables est généralement l'étape la plus longue d'une étude statistique ou de science des données, surtout si les sources sont multiples. Pour gagner du temps, tout ce travail de sélection, nettoyage des données est résumé dans un programme écrit en R : lec-trans-patrinsee.R dans le répertoire http://wikistat.fr/programmes. Consulter ce programme pour comprendre la logique du déroulement de cette étape.

NB.

  • Même si vous n'avez pas pratiqué pas cette étape, ne pas perde de vue qu'elle est fastidieuse mais essentielle pour la qualité finale des résultats.
  • L'utilisation de la librairie dplyr serait maintenant à privilégier pour réaliser des opérations complexes et volumineuses de data munging en R. Elle est utilisée dans les denrières étapes de préparation des données qui suivent dans ce calepin.

Finalement, à l'issue de ce travail préliminaire, l'étude débute avec une base contenant 22821 individus décrits par les 36 variables définies dans le Tableau ci-dessous. Ces données sont accessibles dans le fichier bdd-insee.dat du répertoire http://wikistat.fr/data ou dans celui de ce notebook.

Un premier enseignement de cette étude : il aurait été sûrement beaucoup plus efficace, à même coût, d'interroger beaucoup moins de monde avec beaucoup moins de questions mais en prenant le temps (enquêteur en tête à tête) d'obtenir des réponses précises à l'ensemble des questions! C'est malheureusement un comportement excessivement répandu dans beaucoup de disciplines, des Sciences humaines à la Biologie, de viser un niveau de détail beaucoup trop fin au regard de la précision des données ou de la taille de l'échantillon.

Tableau: Identifiant, signification des variables retenues et liste des modalités; les identifiants des variables et modalités ont été choisis courts et mnémotechniques pour simplifier et aider l'interprétation des graphiques.

Identif. Libellé Modalités
Asvi Possession ou non assurance vie AsO, AsN
AsviR idem 1, 0
Sexe Genre Sh, Sf
Age Age Quantitatif
Tage Tranches d'âge T10 à T90
Couple Vie ou non en couple CouO CouN
Vmatri Statut matrimonial Vcel Vmar Vveu Vdiv
Nation Nationalité Nfra Nnat Netr
Diplome Niveau de diplôme Dsan, Dcep, Dtec (cap, bep), Dbepc, Dbact Dbacg, Db+2, Db+5
Occupa Type d'occupation Oact, Oina (foyer, chom, other), Oret
Work Niveau professionnel WctA (cadre, catA), WctB (agent, catB, tech), Wemp, WctC (osp, ouv)
statut Statut professionnel spri, spub, sind
Herit Bénéfice ou non d'un héritage HerO, HerN
Pere Présence ou non du père PerO PerN PerI
Mere Présence ou non de la mère MerO, MerN MerI
Gparp Grands parents paternels GppO GppN GppI
gparm Grands parents maternels gpmO gpmN gpmI
Jgrav Evènement grave dans la jeunesse JgvO JgvN
Livep Livret d'épargne LivO LivN
Epalo Epargne logement EplO EplN
qpep Plan d'épargne populaire qppO qppN
vmob Valeurs mobilières vmoO vmoN
asdecv Assurance décès volontaire asdO asdN
Retrait Epargne retraite RepO RepN
livdf Livret défiscalisé ldfO, ldfN
pel Plan épargne logement pelO, pelN
cel Compte épargne logement celO, celN
xcapi Bons de capitalisation xcpO xcpN
fepsal Epargne salarial ou stock options fesO fesN
Qpea Plan épargne action QpeO QpeN
Urbani Niveau d'urbanisation U1 à U5
Zeat Région de résidence Zso Zpar Zoue Zne Zmed Zidf Zcen
Nbenf Nombre d'enfants Quantitatif
Nbenfq Nombre d'enfants Nbe0, Nbe1, Nbe2, Nb>3
Iogoc Type d'occupation du logement Iloc, Iprp (usufruit)
terre Possession de terres terO terN
dette Dettes ou emprunts detO detN
bdetre Emprunt achat maison bemO bemN
hdetvo Emprunt voiture hevO hevN

Gestion des données manquantes

Dans beaucoup de sitations et jeux de données, le principal problème rencontré et l'un des plus délicats à prendre en compte, est celui des données manquantes; absences qui peuvent être la conséquence de différentes causes et dont le traitement va différer justement en fonction de cette cause. Une absence de données peut être due à:

  • un refus de répondre lors d'une enquête,
  • une question mal formulée ou inappropriée à la personne interrogée,
  • une erreur de saisie, de codage,
  • une panne de l'appareil de mesure,
  • ...

Pour simplifier, deux grands types sont à prendre en compte correspondant à différentes stratégies:

  1. L'absence ne dépend pas du contexte, des autres variables, le "trou" est aléatoire (missing at random) dû à une erreur indépendamment des variables observées. Différentes stratégies sont applicables:

    • Si le taux de manquants est faible, il suffit de supprimer l'observation correspondante, le caractère aléatoire des trous ne biaisera pas les résultats,
    • dans le cas contraire, il peut être trop pénalisant de perdre des informations, différentes méthodes d'imputation sont envisageables: construire un modèle élémentaire (régression, moyenne ou médiane des valeurs...) de prévision de la ou des données manquantes en fonction des autres variables ; utiliser une méthode acceptant des données manquantes et pour certaines tout en imputant les valeurs (régression PLS, algorithme EM d'optimisation de la vraisemblance...)
  2. Le trou dépend des autres variables. Il n'y a pas de méthode statistique pour répondre à cette situation, c'est souvent le simple "bon sens" qui permet de contourner la difficulté.

C'est ce dernier cas qui est très présent dans les données étudiées.

Une vignette détaille les stratégies plus élaborées d'imputation de données manquantes.

Répondre aux questions en s'aidant des résultats des exécutions.

Exploration élémentaire

Lecture

Le fichier contenant les données et à télécharger a été créé par dans R par l'instruction

write.table(bdd, "bdd-insee.dat", row.names=FALSE)

Il suffit de le relire avec la commande:


In [ ]:
bdInsee=read.table("bdd-insee.dat",header=T)

Analyse univariée

L'analyse élémentaire qui va suivre va montrer que les données de patrimoine contiennent beaucoup de données manquantes mais pas missing at random. Les absences dépendent des autres variables, les conserver biaiserait ou bloquerait les analyses. Comme l'effectif de l'échantillon est important (n=22821), le plus raisonnable est, dans ce cas, de supprimer des observations tout en s'assurant qu'aucun biais n'est ainsi introduit dans les objectifs de l'analyse.

Q Repérer les effectifs des données manquantes pour chaque variable ; repérer également les modalités à faible effectif:


In [ ]:
summary(bdInsee)

Analyse bivariée

Croiser la variable Age avec celle Couple puis avec Work.


In [ ]:
table(bdInsee$Tage,bdInsee$Couple,useNA = "always")

In [ ]:
table(bdInsee$Tage,bdInsee$Work,useNA = "always")

Q Caractériser ces données manquantes et justifier de supprimer ensuite les individus de moins de 20 ans.


In [ ]:
bdInsee2=bdInsee[bdInsee[,"Age"]>19,]
summary(bdInsee2)

Le problème est réglé pour la variable Couple mails il reste toujours des données manquantes dans la variable Work.

Q Considérer le graphe suivant. Que dire de l'impact des variables manquantes sur la liaison entre la variable Worket celle cible Asvi?


In [ ]:
mosaicplot(table(bdInsee2$Asvi,bdInsee2$Work,useNA = "always"),main="")

Les résultats de la commande ci-dessous révèlent encore des soucis :


In [ ]:
table(bdInsee2$Diplome,bdInsee2$Work,useNA = "always")

Les colonnes <NA> sont expllicitement nommées.


In [ ]:
cont=table(bdInsee2$Diplome,bdInsee2$Work,useNA = "always")
dimnames(cont)[[1]][9]="Dinc"
dimnames(cont)[[2]][6]="Winc"
cont

Pour évaluer les biais potentiels liés à la présence des ces données manquantes, deux [analyses des correspondances}(http://wikistat.fr/pdf/st-m-explo-afc.pdf) simples entre les variables Work et Diplome sont réalisées sans et avec les données manquantes considérées comme des modalités spécifiques Dinc et Winc.


In [ ]:
# observations avec données manquantes exclues
library(FactoMineR)
CA(table(bdInsee2$Diplome,bdInsee2$Work))

Données manquantes incluses comme une modalité spécifique en utilisant la table de contingence cont.

Q Que sont les pourcentage des labels des axes? Comment sont-ils obtenus? Comment les interprétés?

Q Interpréter le graphique.


In [ ]:
CA(cont)

Q Que pouvez vous en déduire? Pensez vous que la prise en compte ou la suppression des observations avec données manquantes (modalités Dincet Winc) a un impact sur l'interprétation de la liaison entre les variables Work et Diplome?

Les variables décrivant les ressources et le patrimoine n'ont même pas été prises en compte car elles présentent beaucoup trop de données manquantes : 90 % pour le patrimoine financier, 60 % pour l'autre ; même chose pour les variables relatives aux petits enfants. C'est la faiblesse majeure de cette enquête; cf. la remarque introductive sur la stratégie adoptée pour cette enquête trop "exhaustive" sur certains points; trop d"informations" tue l'information.

Le même type de démarche est entrepris sur les autres variables :


In [ ]:
summary(bdInsee2[,c("Mere", "Pere", "Gparp", "gparm", "Urbani", "Zeat")])

In [ ]:
summary(bdInsee2[,"Tage"])

In [ ]:
table(bdInsee2[,c("Gparp", "gparm")],useNA = "always")

In [ ]:
table(bdInsee2[,c("Mere", "Pere","Gparp")],useNA = "always")

In [ ]:
table(bdInsee2[,c("Urbani", "Zeat")])

Pour aboutir finalement à l'exécution du programme ci-dessous. remarquer que l'utilisaiton de la librairie dplyr permettrait de sumplifier la syntaxe.

Q Justifier les choix opérés pour construire le data frame patrimInsee qui servira de base aux analyses à venir.


In [ ]:
library(dplyr)

In [ ]:
patrimInsee=filter(bdInsee2,Diplome!="NA" & Work != "NA" & Work != "Waut" & statut != "NA" & Gparp != "Gppi" &
                  Gparp != "NA" & Mere != "MerI" & Pere != "PerI" & Jgrav != "NA")

In [ ]:
summary(patrimInsee)

In [ ]:
patProv=patrimInsee
patProv$Tage=recode(patrimInsee$Tage,T90="T80")
patProv$Vmatri=recode(patrimInsee$Vmatri, Vveu="Vsep", Vdiv="Vsep")
patProv$Diplome=recode(patrimInsee$Diplome, Dbacg="Dbac", Dbact="Dbac")
patProv$Urbani=recode(patrimInsee$Urbani, U6="U5")
patProv$Zeat=recode(patrimInsee$Zeat, Znor="Zne",Zest="Zne")
summary(patProv)

Supprimer les niveaux de facteur ou modalités d'effectifs nuls.


In [ ]:
patProv=droplevels(patProv)
summary(patProv)

In [ ]:
patrimInsee=select(patProv,-AsviR,-Nation,-xcapi)
dim(patrimInsee)

In [ ]:
summary(patrimInsee)

Bilan de la première étape

Dresser le bilan de ce long travail de préparation visant à obtenir des données fiables, représentatives et suffisament renseignées pour décrire l'ensemble des observations sans perdre de vue l'objectif qui est de s'intéresser au patrimoine des individus, notamment la possession de certains produits financiers comme une assurance vie.

Sauf erreur, il reste alors 11887 observations et 37 variables:

  • 2 quantitatives: Age, Nbenf,
  • 34 qualitatives: Asvi, Sexe, Tage, Couple, Vmatri, Diplome, Ocupa, Work, statut, Herit, Pere, Mere, Gparp, gparm, Jgrav, Livep, Epalo, fepsal, vmob, livdf, pel, cel, qpep, asdecv, Retrai, Qpea, Urbani, Zeat, Nbenfq, Iogoc, terre, dette, bdetre, hdetvo.

Exploration multidimensionnelle

Analyse des correspondances multiples

L'objectif est une prise en compte de toutes les variables retenues afin de mieux apprécier la structure globale des données.

Q Une analyse factorielle multiple des correspondances fournit les résultats ci-dessous. Quelle interprétation tirer des pourcentages sur les labels des axes?


In [ ]:
afcm=MCA(patrimInsee[,-c(3,30)],graph=F)
plot(afcm,habillage="quali",invisible="ind")

Q La lecture des graphiques met en évidence certains artefacts ou correspondances triviales entre certaines modalités. Les identifier.


In [ ]:
afcm=MCA(patrimInsee[,-c(3,30)],quali.sup=c(4,5,12,13,29),graph=F)
plot(afcm,habillage="quali",invisible="ind")

Q Expliquer brièvement les caractéristiques de la dispersion des modalités selon la direction du premier axe.

Q Quelle est l’interprétation de la dispersion selon le 2ème axe ?

Représentation des individus

Q De quelle matrice est calculée la décomposition en valeur singulière permettant le graphique ci-desous? Quelles sont les coordonnées des individus?


In [ ]:
plot(afcm, choix="ind",habillage="quali",cex=0.2, col.ind=as.integer(patrimInsee$Asvi))

Q Que dire de la position relative des individus rouges vs. les noirs? Que pouvons-nous penser de l’objectif de prévision de la possession d’un produit « assurance vie » ?

Classification non supervisée

Q De façon classique, tout du moins en France, le statisticien récupère de l’exécution précédente une matrice quantitative de représentation vectorielle des individus. Quelle est cette matrice? Il l’utilise pour construire une classification non-supervisée. Pourquoi procéder ainsi?

Q Quel est l’intérêt de la CAH par rapport à kmeans? Quel problème pourrait poser la CAH avec ces données? Comment le contourner? Quelle option faut-il fixer en CAH et quel choix est-il conseillé?


In [ ]:
res.hcpc=HCPC(afcm,nb.clust=6,method="ward",order=F,graph=F)
plot(res.hcpc,choice="bar")

Q La CAH conduit au graphe précédent. Que représente-t-il et quelle conclusion en tirer? Quel graphe n’est pas représenté? Pourquoi?

Interprétation des classes

La dernière étape vise à construire une interprétation des classes. Une démarche systématique consisterait alors à calculer les moyennes (variables quantitatives) ou les effectifs des modalités pour chacune des variables et chacune des classes. C'est plutôt fastidieux. Une autre approche, globale, consiste à recalculer une analyse des correspondances en intégrant la variable classe obtenue.


In [ ]:
color=as.integer(res.hcpc$data.clust$clust)
plot(afcm, choix="ind",habillage="quali",col.ind=color,cex=0.2)

Construire les classes et les représenter.

Q Caractériser brièvement les classes (1,2,4,6) les plus facile à interpréter.


In [ ]:
patriClasse=data.frame(patrimInsee[,-c(3,4,5,12,13,29,30)], "Classe"=as.factor(res.hcpc$data.clust$clust))
afcm=MCA(patriClasse,graph=F)
plot(afcm,habillage="quali",invisible="ind")