TD 2: AFCM Analyse Factorielle des Correspondances Multiples

Transcription

TD 2: AFCM Analyse Factorielle des Correspondances Multiples
TD 2: AFCM Analyse Factorielle des Correspondances Multiples
1
Questions de cours
1. Rappeler les objectifs d’une AFCM. Définir la ressemblance entre deux individus, entre deux variables,
entre deux modalités de deux variables différentes (exemple: +65 ans et les retraités), et entre deux
modalités de la même variable (exemple: entre les plus de 60 ans et les plus de 65 ans).
2. Lors d’un stage en entreprise, l’objectif est de traiter les résultats d’une enquête (par exemple sur les
habitudes de voyage des bretons) comprenant une trentaine de questions (variables qualitatives). Dans un
premier temps, l’analyse commence comme toujours par des statistiques descriptives. On décide alors de
réaliser des tableaux croisés entre les différentes variables qualitatives (on se demande par exemple quels
sont les CSP qui partent en camping, à l’hôtel....). Comment choisir les variables des tableaux croisés à
réaliser?
3. Dans une enquête, je dispose à la fois de variables quantitatives (5 vars) et qualitatives (30 vars). Comment
analyser simultanément ces variables de nature différente?
2
AFCM sur des données bancaires
Le jeu de données contient 68 clients d’un organisme de crédit ayant souscrit un crédit à la consommation. Les
11 variables qualitatives et les modalités associées à cet exemple sont les suivantes:
• Marché : rénovation d’un bien (appartement, maison), voiture, scooter, moto, mobilier-ameublement,
side-car, île. Cette variable indique le bien pour lequel les clients ont réalisé un emprunt.
• Apport : oui, non. Cette variable indique si les clients possèdent un apport personnel avant de réaliser
l’emprunt. Un apport personnel représente une garantie pour l’organisme de crédit.
• Impayé : 0, 1 ou 2, 3 et plus. Cette variable indique le nombre d’échéances impayées par le client, soit le
nombre de fois où il n’a pas réussi à rembourser son emprunt.
• Taux d’endettement : 1 (faible), 2, 3, 4 (fort). Cette variable indique le niveau d’endettement du client.
Le taux d’endettement est calculé comme le rapport entre les charges (ensemble des dépenses) et le revenu.
Ce taux a été discrétisé en 4 classes.
• Assurance : sans assurance, AID (assurance invalidité et décès), AID + Chômage, Senior (pour les plus
de 60 ans). Cette variable indique le type d’assurance à laquelle le client a souscrit.
• Famille : union libre (concubinage), marié, veuf, célibataire, divorcé, pacsé.
• Enfants à charge : 0, 1, 2, 3, 4 et plus, 8.
• Logement : propriétaire, accédant à la propriété (personne qui n’a pas encore fini de rembourser son
emprunt immobilier), locataire, logé par la famille, logé par l’employeur.
• Profession : ouvrier non qualifié, ouvrier qualifié, retraité, cadre moyen, cadre supérieur, ministre.
• Intitulé : M, Mme, Melle.
• Age : 20 (18 à 29 ans), 30 (30 à 39), 40 (40 à 49), 50 (50 à 59), 60 et plus.
Le but de cette étude est de caractériser la clientèle de l’organisme de crédit. Nous voulons dans un premier
temps mettre en évidence différents profils de comportements bancaires, c’est-à-dire effectuer une typologie des
individus. Nous voulons ensuite étudier la liaison entre la signalétique et les principaux facteurs de variabilité
des profils de comportements bancaires (i.e. caractériser les clients aux comportements particuliers).
1. Importer le fichier "creditmaster.csv".
1
2. Avant de commencer l’analyse, on peut remarquer qu’il y a une modalité mqt correspondant à une valeur
manquante. Cette modalité correspond à l’individu 68. Nous décidons donc de supprimer cet individu
(qui correspond à une erreur dans le fichier).
credit=credit[-68,]
summary(credit)
Attention la modalité manquante mqt correspond toujours à un niveau pour chacune des variables, il faut
alors la supprimer:
for (i in 1:ncol(credit)) credit[,i] <- factor(as.character(credit[,i]))
3. Que faut-il regarder avant de commencer une AFCM? Que faire de la modalité "side-car" de la variable
Marché?
4. Réaliser l’analyse permettant de répondre à la problématique.
help(MCA)
res.MCA=MCA(credit[,],...)
5. Commenter les résultats concernant les valeurs propres et pourcentages d’inertie (nombre de valeurs
propres non nulles, nombre d’axes retenus, pourcentages d’inertie du premier plan factoriel...).
res.MCA$eig
barplot(res.MCA$eig[,1])
6. Commenter:
aa=as.factor(rep(1:10,each=100))
bb=cbind.data.frame(aa,aa,aa,aa,aa,aa,aa,aa,aa,aa)
colnames(bb)=paste("a",1:10,sep="")
res=MCA(bb)
res$eig[1:10,]
7. Commenter globalement l’analyse, quelles sont les grandes tendances qui se dégagent?
Si les graphiques ne vous plaisent pas, regarder:
?plot.MCA
et effectuer des représentations séparées des individus et des variables.
8. Etude des variables: quelles sont les variables les plus liées à l’axe 1? à l’axe 2?
#CTR ou rapport des corrélations
ctr <- res.MCA$var$contrib
variable=NULL
nbvar=5
for (i in 1:nbvar) {variable=c(variable,rep(names(credit)[i],length(levels(credit[,i]))))}
tapply(ctr[,1],variable,sum)# somme par variable des CTR sur l’axe 1
tapply(ctr[,1],variable,sum)*nbvar*res.MCA$eig[1,1] # Rap. de Cor par rapport à l’axe 1.
# ou plus général:
variable=rep(colnames(credit[,1:nbvar]),unlist(lapply(credit[,1:nbvar],nlevels)))
CTR = aggregate(res.MCA$var$contrib,by=list(factor(variable)),FUN=sum)
9. (Bonus) Effectuer l’analyse de variance pour retrouver les résultats.
2
10. Etude des modalités: quelles sont les modalités qui contribuent le plus à la création du premier axe? du
deuxième? Ces modalités sont-elles situées forcément aux extrémités du graphique? Commenter la qualité
de représentation de ces modalités: les résultats obtenus vous semblent-ils surprenants?
res.MCA$var
11. Interpréter la proximité entre la modalité "Senior" de la variable Assurance et "Rénovation" de la variableMarché . Revenir aux données brutes pour confirmer votre interprétation.
table(credit[,"Assurance"],credit[,"Marche"])
12. Construire le tableau des pourcentages en ligne puis des pourcentages en colonne et commenter.
13. Commenter le tableau des contributions aux Chi2.
Test <- chisq.test(table(credit[,"Assurance"],credit[,"Marche"])), correct=FALSE)
Test$expected # Expected Counts
round(Test$residuals^2, 2)
14. Interpréter la proximité entre les modalités "Impayé 3 et plus" et "AID+chomage".
15. Interpréter la position des modalités de la variable Apport.
16. Variables supplémentaires:
• On ne dispose pas de la contribution, est-ce normal?
• A quoi correspond la valeur test?
res.MCA$quali.sup
• Représenter les individus sur le premier plan factoriel et colorier les individus par âge.
• Interpréter la position de la modalité "logé par la famille".
17. Remarque: il est intéressant de revenir aux données brutes pour analyser encore plus finement la proximité
entre deux modalités qui vous intéressent particulièrement.
18. Décrire de manière automatique les axes:
dimdesc(res.MCA)
3
3
AFCM des cétacés
baleines à fanons (1)
baleines grises (2)
Baleines à fanons
baleines à bosse (3)
cachalots (4)
Physeteroidea
baleines à bec (5)
dauphins (6)
Baleines à dents
Delphinoidea
marsouins (7)
belougas (8)
Platanistoidea
dauphins d’eau douce (9)
Figure 1: Classification des cétacés d’après Grasse
Le fichier cetaces.txt contient les observations sur 36 cétacés de 15 variables qualitatives :
1. Cou (absent, présent)
2. Forme de la tête (cylindrique, conique, front incurvé, globulaire, plat, convexe)
3. Taille de la tête (grosse, moyenne)
4. Bec (aucun, grand, étroit et court, étroit et long)
5. Nageoire dorsale (aucune, triangulaire, falciforme, falciforme arrière)
6. Palmes (petites, larges et courtes, moyennes, longues et étroites)
7. Dents (sur machoire inférieure, sur les deux, sans dent et long fanon, sans dent et mince fanon, sans dent
et large fanon)
8. Sillon de la gorge (absent, petit, grand)
9. Event (à gauche, à droite, vertical, vertical avec 2 trous)
10. Couleur (ventre plus clair que le dos, noirâtre, sans pigmentation, taché, sans)
11. Vertèbres cervicales (libres, partiellement ou totalement soudées)
12. Os lacrymaux et jugulaires (forment un pièce, sont indépendants, absents)
13. Os de la tête (symétrique, faiblement asymétriques, asymétriques, fortement asymétriques, absents)
14. Habitat (rivières, mers tempérés et chaudes, mers froides, côtes, variable)
15. Alimentation (calmars, poissons, phoques, planctons)
4
Figure 2: Baleine à bosse
Figure 3: Marsouin
La première colonne du tableau cetaces.txt contient le groupe de classification auquel l’individu appartient
et ne fait pas partie des variables à analyser.
Nous allons essayer d’analyser ce tableau selon trois niveaux :
• vérification de la séparation des individus selon la classification ;
• interprétation des axes par variable (et non pas par modalité) ;
• relations entre modalités.
3.1
Vérification de la classification
• Quel est le type de graphique à faire ? En retenant les 3 premiers axes, vérifier la séparation des baleines
à fanons, des platanistoidea, des physeteroidea et des delphinoidea. Remarquer qu’il est difficile de bien
séparer les physeteroidea et les delphinoidea.
– Créer une variable qualitative à 4 modalités "classif": Fanons, Physeteroidea, Delphinoidea et Platanistoidea
– Essayer d’obtenir un graphique "propre" (utiliser les options invisibles, habillages de plot.MCA...),
ou reconstruire les graphiques "à la main" en rajoutant toutes les options possibles titre, libellé des
axes, vous pouvez aussi remettre les pourcentages d’inertie...:
cetaces.acm=MCA(cetaces,...)
plot(cetaces.acm,...)
#Ou,
plot(cetaces.acm$ind$coord[,1],cetaces.acm$ind$coord[,2],type="n",xlab="axe_1",...)
text(cetaces.acm$ind$coord[,1],cetaces.acm$ind$coord[,2],col=as.numeric(classif))
– Comme on s’intéresse aux 3 premiers axes, on peut aussi réaliser un graphique en 3 dimensions:
5
library(scatterplot3d)
scatterplot3d(cetaces.acm$ind$coord[,1],cetaces.acm$ind$coord[,2],cetaces.acm$ind$coord[,3]
,color=as.numeric(classif))
– Quand deux baleines se ressemblent, vous pouvez revenir aux données brutes pour confirmer votre
interprétation:
cetace[6:7,]
3.2
Interprétation des axes par variable
• Quelles sont les variables les plus importantes?
• Quelles sont les variables qui permettent de séparer les baleines à fanons ?
• Quelles sont les variables qui permettent de séparer les platanistoidea ?
3.3
Interprétation des axes par modalité
• Donner un sens aux axes 1 et 2 à l’aide des modalités.
6