library(readr)
library(FactoMineR)
library(factoextra)
library(explor)
library(GDAtools)
library(RColorBrewer)
setwd("/Users/mathieuferry/Documents/Enseignements/Année 2023-2024/L3 Sociologie Analyse des données/TD/TD7")
<-read_csv("TD7.csv") enq
TD8
La base de données est tirée du package ade4 et présente les résultats d’une enquête menée auprès de 810 clients d’une banque. Le dictionnaire des données de la base peut être consulté ici. Cette base est celle déjà utilisée dans le TD7.
Note : ce TD comprend une partie de questions de cours corrigées en séance.
Réalisez une CAH à partir de la dernière ACM réalisée au TD7.
Attention, vous paramètrerez l’analyse de telle sorte que le nombre d’axes de l’ACM retenus dans la classification correspondra au nombre d’axes de l’ACM à interpréter suivant le critère de Kaiser.
Il est demandé de réaliser une CAH à partir des coordonnées des clients de la banque sur les axes de l’ACM réalisée au TD7. Au TD7, nous avons interprété 2 axes de l’ACM, soit le premier plan factoriel. Ici, on va spécifiquement retenir l’ensemble des axes qui ont une inertie supérieure à l’inertie moyenne (critère de Kaiser), en se disant qu’ainsi ces axes apportent une information non négligeable à la compréhension de la variabilité des clients au sein de la banque.
Pour ce faire, on refait tourner la même ACM qu’au TD7 (la deuxième, avec toutes les variables), en spécifiant les variables supplémentaires (âge, sexe, pcs) grâce à la commande quali.sup (on sait que ces variables correspondent à la première, quatrième et cinquième colonne). On ajoute l’argument ncp=16 puisqu’il y a 16 axes qui ont une contribution supérieure à la contribution moyenne (ce qu’on vérifie simplement avec la ligne de commande suivante).
<-MCA(enq,quali.sup=c(1,4,5),graph=F,ncp=16)
res.acm2$eig[,1]>mean(res.acm2$eig[,1]) res.acm2
dim 1 dim 2 dim 3 dim 4 dim 5 dim 6 dim 7 dim 8 dim 9 dim 10 dim 11
TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
dim 12 dim 13 dim 14 dim 15 dim 16 dim 17 dim 18 dim 19 dim 20 dim 21 dim 22
TRUE TRUE TRUE TRUE TRUE FALSE FALSE FALSE FALSE FALSE FALSE
dim 23 dim 24 dim 25 dim 26 dim 27 dim 28 dim 29 dim 30 dim 31 dim 32 dim 33
FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
dim 34 dim 35 dim 36 dim 37 dim 38 dim 39
FALSE FALSE FALSE FALSE FALSE FALSE
On peut ensuite réaliser la CAH, à l’aide de la fonction HCPC du package FactoMineR. L’argument principal est l’objet res.acm2, résultat de l’ACM. On indique nb.clust=-1, ce qui signifie qu’on laisse l’algorithme déterminer lui-même le nombre de classes optimales dans l’analyse. Le critère d’optimisation correspond à la minimisation du gain d’inertie relatif entre deux partitions possibles.
On a aussi spécifié à la fonction de ne pas “consolider” les classes de la partition (consol=F) une fois la CAH réalisée. Il s’agit d’une modification de l’algorithme par la méthode de classification des k-means qui cherche a posteriori de la CAH à optimiser les individus dans chacune des classes mais l’inconvénient est que les partitions ne sont alors plus emboitées les unes par rapport aux autres.
##Realiser une CAH sur les axes de l'ACM où l'algorithme optimise
#automatiquement le choix de la partition
<-HCPC(res.acm2,nb.clust=-1,consol=F,graph=F) res.hcpc1
On peut d’ailleurs “manuellement” vérifier ce gain d’inertie inter-classe relatif de la manière suivante :
#Gain d'inertie inter de 1 à 2, de 2 à 3 etc...
<-res.hcpc1$call$t$inert.gain[1:10]
inert.gain<- dplyr::lag(inert.gain)
prev_inert.gain#Calcul du gain d'inertie relatif où Delta(k)=gain d'inertie entre classe k et k-1
<-inert.gain/prev_inert.gain
Gain.inert.relatifnames(Gain.inert.relatif)<-c("-","Delta(3)/Delta(4)","Delta(4)/Delta(5)","Delta(5)/Delta(6)","Delta(6)/Delta(7)","Delta(7)/Delta(8)","Delta(8)/Delta(9)","Delta(9)/Delta(10)","Delta(10)/Delta(11)","Delta(11)/Delta(12)")
Gain.inert.relatif
- Delta(3)/Delta(4) Delta(4)/Delta(5) Delta(5)/Delta(6)
NA 0.4644266 0.8968069 0.8715325
Delta(6)/Delta(7) Delta(7)/Delta(8) Delta(8)/Delta(9) Delta(9)/Delta(10)
0.7793780 0.9720042 0.9627191 0.9229216
Delta(10)/Delta(11) Delta(11)/Delta(12)
0.9613804 0.9311210
data.frame(Gain.inert.relatif)
Gain.inert.relatif
- NA
Delta(3)/Delta(4) 0.4644266
Delta(4)/Delta(5) 0.8968069
Delta(5)/Delta(6) 0.8715325
Delta(6)/Delta(7) 0.7793780
Delta(7)/Delta(8) 0.9720042
Delta(8)/Delta(9) 0.9627191
Delta(9)/Delta(10) 0.9229216
Delta(10)/Delta(11) 0.9613804
Delta(11)/Delta(12) 0.9311210
#la minimisation de ce rapport nous indique bien de conserver trois classes.
La représentation du dendrogramme et du diagramme du gain (absolu) d’inertie inter-classe entre deux partitions est intéressante. En suivant plutôt un critère visuel où on couperait le dendrogramme là où les branches sont les plus longues et en appliquant un “critère du coude” au diagramme à barre, on retiendrait plutôt cinq classes que trois.
#Représentation coloriée du dendogramme
= brewer.pal(n=3, "Set2")
cols <-fviz_dend(res.hcpc1,k_colors = cols, show_labels = F ) p_dend
Warning: The `<scale>` argument of `guides()` cannot be `FALSE`. Use "none" instead as
of ggplot2 3.3.4.
ℹ The deprecated feature was likely used in the factoextra package.
Please report the issue at <https://github.com/kassambara/factoextra/issues>.
p_dend
#Représentation des gains (absolus) d'inertie entre les partitions successives
plot.HCPC(res.hcpc1,choice="bar")
Analysons d’abord les trois classes avant de regarder comment se configurent la partition en cinq classes.
Commentez la projection des classes sur le premier plan factoriel en fonction de son interprétation au TD7.
La classe 1 est la plus à gauche sur l’axe 1 et correspond ainsi aux clients dont les pratiques bancaires sont peu intenses. La classe 2 est en haut de l’axe 2, a priori il s’agit des clients épargnants âgés. La classe 3 est plutôt en bas de l’axe 2, il s’agit a priori des clients emprunteurs plus jeunes.
##Représentation des classes sur le premier plan factoriel
##Pour avoir les mêmes couleurs que sur le dendogramme il faut faire un peu de code...
<- cutree(res.hcpc1$call$t$tree,k=3)
clust= attributes(p_dend)$dendrogram
dend <- order.dendrogram(dend)
tree_order = factor(clust, levels = unique(clust[tree_order]))
clust names(cols) = unique(clust[tree_order])
fviz_cluster(res.hcpc1, show.clust.cent = TRUE)+
scale_colour_manual(values = cols) +
scale_fill_manual(values = cols) +
geom_hline(yintercept=0,alpha=.4)+geom_vline(xintercept = 0,alpha=.4)+
theme_minimal()
Note : chaque individu (client) est alloué à une classe et une seule. Cependant, les classes se superposent en partie sur le premier plan factoriel car on a utilisé les coordonnées des clients sur les 16 premiers axes de l’ACM ce qui signifie que l’allocation des individus aux classes ne dépend pas seulement des critères de différenciation sur le premier plan factoriel. Si on choisissait de réaliser la CAH sur les deux premiers axes seulement (ncp=2 dans la fonction MCA), on aurait une représentation graphique où les classes se superposeraient beaucoup moins.
Décrivez et interprétez les classes obtenues en fonction des variables actives et supplémentaires de l’ACM (utiliser « desc.var »). Nommez ces classes.
Résumons rapidement à quoi correspondent les classes de clients (les “segments de clientèle” de la banque) à l’aide des fonctions ci-dessous (la description est brève et doit être approfondie) :
La classe 1 (42% des clients) est la plus à gauche sur l’axe 1 (activités bancaires peu intenses). Elle est de ce fait caractérisée par des clients qui n’ont pas d’activité bancaire et ont un solde de compte courant faible ou négatif. Près des deux tiers des clients de cette classe ont moins de 25 ans.
La classe 2 (15%) est en haut sur l’axe 2, il s’agit de la classe des épargnants, clients âgés et retraités.
La classe 3 (42%) est en bas sur l’axe 2, il s’agit de la classe des emprunteurs et des gens qui ont beaucoup de mouvements bancaires.
En précisant la description de ces classes, on pourrait les nommer, ce qui permettrait de résumer ainsi à quel segment de clientèle on a affaire.
##Distribution des classes
prop.table(table(res.hcpc1$data.clust$clust))*100
1 2 3
41.85185 15.80247 42.34568
##Description des classes en fonction des variables
$desc.var res.hcpc1
Link between the cluster variable and the categorical variables (chi-square test)
=================================================================================
p.value df
eparliv 3.267409e-58 4
porttit 1.078894e-48 6
virecre 2.385928e-48 6
soldevu 3.136331e-47 10
viredeb 3.211635e-40 6
remiche 2.058648e-39 6
cableue 1.069292e-28 2
prelfin 2.358361e-23 4
retresp 1.090613e-20 4
duree 8.847266e-20 8
eparlog 1.996980e-16 4
versesp 4.031103e-15 2
preltre 1.224341e-14 4
age 4.204076e-13 8
assurvi 2.786729e-12 2
interdit 3.647041e-10 2
csp 7.594153e-08 16
credcon 1.095899e-07 4
oppo 3.288758e-06 2
credhab 3.075719e-02 2
Description of each cluster by the categories
=============================================
$`1`
Cla/Mod Mod/Cla Global p.value v.test
virecre=virecre_nul 63.613861 75.8112094 49.876543 3.793487e-37 12.734690
viredeb=viredeb_nul 57.319588 82.0058997 59.876543 5.721160e-29 11.169952
eparliv=eparliv_nul 51.607717 94.6902655 76.790123 7.228295e-28 10.942373
remiche=remiche_nul 57.683742 76.4011799 55.432099 4.436515e-25 10.344408
eparlog=eparlog_nul 47.293447 97.9351032 86.666667 1.864539e-18 8.765195
cableue=cableue_non 51.499118 86.1356932 70.000000 2.192589e-18 8.746918
soldevu=p1 61.254613 48.9675516 33.456790 2.576999e-15 7.909850
prelfin=prelfin_nul 46.534653 97.0501475 87.283951 2.818728e-14 7.606383
preltre=preltre_nul 45.879121 98.5250737 89.876543 2.829590e-14 7.605886
porttit=porttit_nul 48.571429 90.2654867 77.777778 5.973706e-14 7.508657
duree=dm2 76.923077 20.6489676 11.234568 6.728232e-13 7.184847
assurvi=assurvi_non 46.735905 92.9203540 83.209877 7.046114e-11 6.519672
interdit=interdit_oui 81.034483 13.8643068 7.160494 3.284253e-10 6.284729
soldevu=n1 62.962963 30.0884956 20.000000 1.574441e-09 6.036550
retresp=retresp_fai 45.506419 94.1002950 86.543210 2.898272e-08 5.547473
versesp=versesp_non 44.951591 95.8702065 89.259259 7.117002e-08 5.388192
oppo=oppo_non 44.015957 97.6401180 92.839506 2.253182e-06 4.729279
age=ai25 63.333333 16.8141593 11.111111 1.512679e-05 4.326834
duree=d24 58.333333 22.7138643 16.296296 3.325648e-05 4.149938
credcon=credcon_nul 44.379562 89.6755162 84.567901 5.461007e-04 3.457061
credhab=credhab_non 43.454039 92.0353982 88.641975 9.203569e-03 2.604398
csp=etudi 56.140351 9.4395280 7.037037 2.559228e-02 2.232343
csp=retra 26.923077 4.1297935 6.419753 2.294322e-02 -2.274379
credhab=credhab_oui 29.347826 7.9646018 11.358025 9.203569e-03 -2.604398
virecre=virecre_fai 31.609195 16.2241888 21.481481 1.863098e-03 -3.111230
retresp=retresp_moy 25.000000 5.6047198 9.382716 1.463917e-03 -3.181743
age=ai75 31.460674 16.5191740 21.975309 1.358830e-03 -3.203256
credcon=credcon_fai 23.529412 4.7197640 8.395062 1.099304e-03 -3.263796
remiche=remiche_fai 30.454545 19.7640118 27.160494 5.180643e-05 -4.047324
viredeb=viredeb_for 12.500000 1.4749263 4.938272 4.862847e-05 -4.062123
oppo=oppo_oui 13.793103 2.3598820 7.160494 2.253182e-06 -4.729279
prelfin=prelfin_moy 12.500000 2.0648968 6.913580 1.058556e-06 -4.880429
porttit=porttit_for 10.000000 1.4749263 6.172840 4.680593e-07 -5.038964
retresp=retresp_for 3.030303 0.2949853 4.074074 2.865850e-07 -5.132062
preltre=preltre_fai 8.510638 1.1799410 5.802469 2.724861e-07 -5.141547
remiche=remiche_moy 14.285714 2.9498525 8.641975 2.705649e-07 -5.142876
preltre=preltre_moy 2.857143 0.2949853 4.320988 9.649779e-08 -5.333198
versesp=versesp_oui 16.091954 4.1297935 10.740741 7.117002e-08 -5.388192
viredeb=viredeb_moy 4.878049 0.5899705 5.061728 5.903672e-08 -5.421694
prelfin=prelfin_fai 6.382979 0.8849558 5.802469 2.969405e-08 -5.543231
eparlog=eparlog_fai 4.545455 0.5899705 5.432099 1.192803e-08 -5.700752
soldevu=p2 20.000000 8.5545723 17.901235 1.245157e-09 -6.074318
eparlog=eparlog_for 7.812500 1.4749263 7.901235 4.322270e-10 -6.241922
interdit=interdit_non 38.829787 86.1356932 92.839506 3.284253e-10 -6.284729
virecre=virecre_moy 15.789474 5.3097345 14.074074 1.914590e-10 -6.368040
assurvi=assurvi_oui 17.647059 7.0796460 16.790123 7.046114e-11 -6.519672
eparliv=eparliv_for 0.000000 0.0000000 5.432099 1.801689e-11 -6.721253
duree=dp12 22.457627 15.6342183 29.135802 2.273739e-13 -7.331628
remiche=remiche_for 4.225352 0.8849558 8.765432 6.535458e-14 -7.496880
viredeb=viredeb_fai 22.131148 15.9292035 30.123457 2.240231e-14 -7.636029
porttit=porttit_fai 2.898551 0.5899705 8.518519 1.045236e-14 -7.733629
soldevu=p3 2.898551 0.5899705 8.518519 1.045236e-14 -7.733629
soldevu=p4 6.315789 1.7699115 11.728395 2.460870e-16 -8.197182
eparliv=eparliv_fai 12.500000 5.3097345 17.777778 7.706980e-17 -8.335656
cableue=cableue_oui 19.341564 13.8643068 30.000000 2.192589e-18 -8.746918
virecre=virecre_for 7.627119 2.6548673 14.567901 8.056829e-19 -8.859231
$`2`
Cla/Mod Mod/Cla Global p.value v.test
eparliv=eparliv_for 88.636364 30.46875 5.432099 1.331199e-28 11.094691
porttit=porttit_fai 60.869565 32.81250 8.518519 1.647562e-19 9.034498
porttit=porttit_for 64.000000 25.00000 6.172840 1.176378e-15 8.006898
retresp=retresp_for 69.696970 17.96875 4.074074 1.550947e-12 7.069856
age=ai75 33.707865 46.87500 21.975309 5.547302e-12 6.890817
soldevu=p4 43.157895 32.03125 11.728395 6.579101e-12 6.866511
prelfin=prelfin_nul 18.104668 100.00000 87.283951 5.281199e-09 5.838060
csp=retra 42.307692 17.18750 6.419753 2.288439e-06 4.726126
versesp=versesp_non 17.565698 99.21875 89.259259 2.559039e-06 4.703369
remiche=remiche_for 36.619718 20.31250 8.765432 6.715102e-06 4.502524
cableue=cableue_non 19.047619 84.37500 70.000000 5.538654e-05 4.031650
credcon=credcon_nul 17.664234 94.53125 84.567901 2.231386e-04 3.691268
viredeb=viredeb_nul 18.969072 71.87500 59.876543 2.264069e-03 3.053211
eparlog=eparlog_for 29.687500 14.84375 7.901235 3.515297e-03 2.918669
remiche=remiche_nul 18.262806 64.06250 55.432099 3.210404e-02 2.143113
preltre=preltre_nul 16.620879 94.53125 89.876543 4.858380e-02 1.972226
csp=etudi 7.017544 3.12500 7.037037 4.846489e-02 -1.973269
eparliv=eparliv_fai 10.416667 11.71875 17.777778 4.550477e-02 -1.999958
credcon=credcon_for 5.263158 2.34375 7.037037 1.498155e-02 -2.432825
retresp=retresp_moy 6.578947 3.90625 9.382716 1.382446e-02 -2.461792
credcon=credcon_fai 5.882353 3.12500 8.395062 1.208602e-02 -2.509623
age=ai25 6.666667 4.68750 11.111111 7.242312e-03 -2.685492
virecre=virecre_for 7.627119 7.03125 14.567901 5.429543e-03 -2.780379
retresp=retresp_fai 14.265335 78.12500 86.543210 4.104353e-03 -2.870028
viredeb=viredeb_for 0.000000 0.00000 4.938272 8.522659e-04 -3.335237
viredeb=viredeb_moy 0.000000 0.00000 5.061728 7.105906e-04 -3.385460
age=ai35 7.051282 8.59375 19.259259 3.896943e-04 -3.546966
remiche=remiche_fai 8.636364 14.84375 27.160494 3.801939e-04 -3.553464
csp=emplo 6.622517 7.81250 18.641975 2.450588e-04 -3.667369
prelfin=prelfin_fai 0.000000 0.00000 5.802469 2.374155e-04 -3.675466
cableue=cableue_oui 8.230453 15.62500 30.000000 5.538654e-05 -4.031650
remiche=remiche_moy 1.428571 0.78125 8.641975 5.396493e-05 -4.037756
soldevu=n1 6.172840 7.81250 20.000000 5.350771e-05 -4.039752
prelfin=prelfin_moy 0.000000 0.00000 6.913580 4.503884e-05 -4.079984
versesp=versesp_oui 1.149425 0.78125 10.740741 2.559039e-06 -4.703369
eparliv=eparliv_nul 11.897106 57.81250 76.790123 1.662908e-07 -5.233544
porttit=porttit_nul 7.619048 37.50000 77.777778 8.902559e-28 -10.923473
$`3`
Cla/Mod Mod/Cla Global p.value v.test
cableue=cableue_oui 72.427984 51.3119534 30.000000 5.248683e-30 11.380187
virecre=virecre_for 84.745763 29.1545190 14.567901 1.327962e-24 10.238857
eparliv=eparliv_fai 77.083333 32.3615160 17.777778 1.067132e-20 9.329160
versesp=versesp_oui 82.758621 20.9912536 10.740741 3.661708e-16 8.149256
viredeb=viredeb_fai 63.114754 44.8979592 30.123457 5.097398e-15 7.824485
soldevu=p3 85.507246 17.2011662 8.518519 1.451825e-14 7.691709
prelfin=prelfin_fai 93.617021 12.8279883 5.802469 2.786241e-14 7.607882
remiche=remiche_moy 84.285714 17.2011662 8.641975 5.819044e-14 7.512091
viredeb=viredeb_moy 95.121951 11.3702624 5.061728 2.397153e-13 7.324542
prelfin=prelfin_moy 87.500000 14.2857143 6.913580 5.525068e-13 7.211717
assurvi=assurvi_oui 69.852941 27.6967930 16.790123 1.447522e-12 7.079427
interdit=interdit_non 45.212766 99.1253644 92.839506 5.453213e-11 6.558006
eparlog=eparlog_fai 88.636364 11.3702624 5.432099 7.716028e-11 6.506035
remiche=remiche_fai 60.909091 39.0670554 27.160494 8.567567e-11 6.490282
soldevu=p2 65.517241 27.6967930 17.901235 6.211701e-10 6.184963
preltre=preltre_fai 85.106383 11.6618076 5.802469 6.858052e-10 6.169329
viredeb=viredeb_for 87.500000 10.2040816 4.938272 1.884924e-09 6.007425
duree=dp12 58.474576 40.2332362 29.135802 3.181898e-09 5.921928
preltre=preltre_moy 85.714286 8.7463557 4.320988 9.107935e-08 5.343678
virecre=virecre_moy 64.035088 21.2827988 14.074074 5.537188e-07 5.006697
credcon=credcon_fai 70.588235 13.9941691 8.395062 1.069943e-06 4.878318
retresp=retresp_moy 68.421053 15.1603499 9.382716 1.720744e-06 4.783727
oppo=oppo_oui 72.413793 12.2448980 7.160494 1.879231e-06 4.765996
virecre=virecre_fai 55.747126 28.2798834 21.481481 6.241150e-05 4.003503
eparlog=eparlog_for 62.500000 11.6618076 7.901235 8.014627e-04 3.352289
credcon=credcon_for 61.403509 10.2040816 7.037037 2.937668e-03 2.974186
remiche=remiche_for 59.154930 12.2448980 8.765432 3.077573e-03 2.959882
csp=emplo 52.980132 23.3236152 18.641975 3.653617e-03 2.906616
csp=ouvri 50.273224 26.8221574 22.592593 1.429407e-02 2.449787
credhab=credhab_oui 53.260870 14.2857143 11.358025 2.603515e-02 2.225687
credhab=credhab_non 40.947075 85.7142857 88.641975 2.603515e-02 -2.225687
csp=cadsu 32.038835 9.6209913 12.716049 2.283850e-02 -2.276126
age=ai75 34.831461 18.0758017 21.975309 2.132954e-02 -2.302100
porttit=porttit_for 26.000000 3.7900875 6.172840 1.470979e-02 -2.439446
age=ai25 30.000000 7.8717201 11.111111 1.131658e-02 -2.532768
retresp=retresp_fai 40.228245 82.2157434 86.543210 2.219737e-03 -3.059140
soldevu=n1 30.864198 14.5772595 20.000000 8.588605e-04 -3.333094
duree=d24 25.757576 9.9125364 16.296296 1.787749e-05 -4.289873
eparliv=eparliv_for 11.363636 1.4577259 5.432099 5.890782e-06 -4.530272
oppo=oppo_non 40.026596 87.7551020 92.839506 1.879231e-06 -4.765996
credcon=credcon_nul 37.956204 75.8017493 84.567901 4.341787e-09 -5.870616
eparliv=eparliv_nul 36.495177 66.1807580 76.790123 1.160141e-09 -6.085658
interdit=interdit_oui 5.172414 0.8746356 7.160494 5.453213e-11 -6.558006
eparlog=eparlog_nul 37.606838 76.9679300 86.666667 4.138194e-12 -6.932380
assurvi=assurvi_non 36.795252 72.3032070 83.209877 1.447522e-12 -7.079427
duree=dm2 9.890110 2.6239067 11.234568 9.578119e-13 -7.136437
soldevu=p1 23.985240 18.9504373 33.456790 2.388231e-14 -7.627784
versesp=versesp_non 37.482711 79.0087464 89.259259 3.661708e-16 -8.149256
preltre=preltre_nul 37.500000 79.5918367 89.876543 3.203062e-17 -8.438912
prelfin=prelfin_nul 35.360679 72.8862974 87.283951 1.751963e-27 -10.861833
cableue=cableue_non 29.453263 48.6880466 70.000000 5.248683e-30 -11.380187
remiche=remiche_nul 24.053452 31.4868805 55.432099 1.895268e-32 -11.860637
viredeb=viredeb_nul 23.711340 33.5276968 59.876543 4.836884e-40 -13.244781
virecre=virecre_nul 18.069307 21.2827988 49.876543 4.037576e-46 -14.257303
#cla/mod indique quelle part (pourcentage) de tous les individus présentant cette modalité se retrouve dans cette classe
#mod/cla indique quelle part (pourcentage) de tous les individus de la classe présentent cette modalité.
#Global indique quelle part de tous les individus quel que soit leur classe présentent cette modalité
#p-value indique la probabilité au seuil duquel on rejette H0 (pas de lien entre modalité et classe)
#v-test est la valeur du test (si var qualitative c'est test de Fisher), plus elle est grande positivement, plus la modalité est associée à la classe
#Plus elle est petite négativement, plus la modalité est rare dans la classe
En inspectant le dendrogramme et l’histogramme des gains d’inertie interclasses entre deux partitions successives, vous justifierez de la possibilité d’étudier une autre partition à partir de cette même CAH.
On a plus haut donné les pistes permettant d’étudier plutôt la partition en cinq classes en suivant le critère du coude sur le diagramme de représentation des gains d’inertie inter-classe absolus.
##Réalisation d'une CAH avec partition où nbr de classes = 5
<-HCPC(res.acm2,nb.clust=5,consol=F,graph=F) res.hcpc2
On peut regarder le dendrogramme et de nouveau le diagramme à barres :
#Représentation coloriée du dendogramme
= brewer.pal(n=5, "Set2")
cols <-fviz_dend(res.hcpc2,k_colors = cols, show_labels = F )
p_dend p_dend
plot.HCPC(res.hcpc2,choice="bar")
La représentation des cinq classes sur le premier plan factoriel :
##Représentation des classes sur le premier plan factoriel
##Pour avoir les mêmes couleurs que sur le dendogramme il faut faire un peu de code...
<- cutree(res.hcpc2$call$t$tree,k=5)
clust= attributes(p_dend)$dendrogram
dend <- order.dendrogram(dend)
tree_order = factor(clust, levels = unique(clust[tree_order]))
clust names(cols) = unique(clust[tree_order])
fviz_cluster(res.hcpc2, show.clust.cent = TRUE)+
scale_colour_manual(values = cols) +
scale_fill_manual(values = cols) +
geom_hline(yintercept=0,alpha=.4)+geom_vline(xintercept = 0,alpha=.4)+
theme_minimal()
Décrivez cette autre partition : à quel emboitement par rapport à la partition précédente correspond-elle ? Décrivez cette nouvelle partition en fonction des variables de l’ACM et nommez les classes obtenues.
En comparant les deux dendrogrammes, on voit déjà que c’est la classe 3 qui a été divisée en trois par rapport à la partition en trois classes.
Les commandes ci-dessous sur la distribution des classes dans la population de la clientèle et de description des classes permettent de préciser la logique de chacun de ces segments.
##Distribution des classes
prop.table(table(res.hcpc2$data.clust$clust))*100
1 2 3 4 5
41.85185 15.80247 20.37037 10.61728 11.35802
##Description des classes en fonction des variables
$desc.var res.hcpc2
Link between the cluster variable and the categorical variables (chi-square test)
=================================================================================
p.value df
viredeb 1.933310e-82 12
virecre 2.239714e-79 12
prelfin 1.070718e-62 8
eparliv 6.162405e-57 8
soldevu 2.185747e-55 20
remiche 2.774285e-52 12
porttit 3.698753e-46 12
preltre 2.630883e-43 8
cableue 1.225282e-27 4
retresp 4.518774e-26 8
duree 1.802288e-24 16
credcon 3.782813e-23 8
versesp 1.221047e-20 4
eparlog 4.128794e-17 8
age 3.287073e-16 16
assurvi 2.562329e-15 4
credhab 4.942544e-11 4
interdit 6.860063e-09 4
csp 1.527806e-07 32
oppo 1.546914e-07 4
sexe 2.382573e-04 4
Description of each cluster by the categories
=============================================
$`1`
Cla/Mod Mod/Cla Global p.value v.test
virecre=virecre_nul 63.613861 75.8112094 49.876543 3.793487e-37 12.734690
viredeb=viredeb_nul 57.319588 82.0058997 59.876543 5.721160e-29 11.169952
eparliv=eparliv_nul 51.607717 94.6902655 76.790123 7.228295e-28 10.942373
remiche=remiche_nul 57.683742 76.4011799 55.432099 4.436515e-25 10.344408
eparlog=eparlog_nul 47.293447 97.9351032 86.666667 1.864539e-18 8.765195
cableue=cableue_non 51.499118 86.1356932 70.000000 2.192589e-18 8.746918
soldevu=p1 61.254613 48.9675516 33.456790 2.576999e-15 7.909850
prelfin=prelfin_nul 46.534653 97.0501475 87.283951 2.818728e-14 7.606383
preltre=preltre_nul 45.879121 98.5250737 89.876543 2.829590e-14 7.605886
porttit=porttit_nul 48.571429 90.2654867 77.777778 5.973706e-14 7.508657
duree=dm2 76.923077 20.6489676 11.234568 6.728232e-13 7.184847
assurvi=assurvi_non 46.735905 92.9203540 83.209877 7.046114e-11 6.519672
interdit=interdit_oui 81.034483 13.8643068 7.160494 3.284253e-10 6.284729
soldevu=n1 62.962963 30.0884956 20.000000 1.574441e-09 6.036550
retresp=retresp_fai 45.506419 94.1002950 86.543210 2.898272e-08 5.547473
versesp=versesp_non 44.951591 95.8702065 89.259259 7.117002e-08 5.388192
oppo=oppo_non 44.015957 97.6401180 92.839506 2.253182e-06 4.729279
age=ai25 63.333333 16.8141593 11.111111 1.512679e-05 4.326834
duree=d24 58.333333 22.7138643 16.296296 3.325648e-05 4.149938
credcon=credcon_nul 44.379562 89.6755162 84.567901 5.461007e-04 3.457061
credhab=credhab_non 43.454039 92.0353982 88.641975 9.203569e-03 2.604398
csp=etudi 56.140351 9.4395280 7.037037 2.559228e-02 2.232343
csp=retra 26.923077 4.1297935 6.419753 2.294322e-02 -2.274379
credhab=credhab_oui 29.347826 7.9646018 11.358025 9.203569e-03 -2.604398
virecre=virecre_fai 31.609195 16.2241888 21.481481 1.863098e-03 -3.111230
retresp=retresp_moy 25.000000 5.6047198 9.382716 1.463917e-03 -3.181743
age=ai75 31.460674 16.5191740 21.975309 1.358830e-03 -3.203256
credcon=credcon_fai 23.529412 4.7197640 8.395062 1.099304e-03 -3.263796
remiche=remiche_fai 30.454545 19.7640118 27.160494 5.180643e-05 -4.047324
viredeb=viredeb_for 12.500000 1.4749263 4.938272 4.862847e-05 -4.062123
oppo=oppo_oui 13.793103 2.3598820 7.160494 2.253182e-06 -4.729279
prelfin=prelfin_moy 12.500000 2.0648968 6.913580 1.058556e-06 -4.880429
porttit=porttit_for 10.000000 1.4749263 6.172840 4.680593e-07 -5.038964
retresp=retresp_for 3.030303 0.2949853 4.074074 2.865850e-07 -5.132062
preltre=preltre_fai 8.510638 1.1799410 5.802469 2.724861e-07 -5.141547
remiche=remiche_moy 14.285714 2.9498525 8.641975 2.705649e-07 -5.142876
preltre=preltre_moy 2.857143 0.2949853 4.320988 9.649779e-08 -5.333198
versesp=versesp_oui 16.091954 4.1297935 10.740741 7.117002e-08 -5.388192
viredeb=viredeb_moy 4.878049 0.5899705 5.061728 5.903672e-08 -5.421694
prelfin=prelfin_fai 6.382979 0.8849558 5.802469 2.969405e-08 -5.543231
eparlog=eparlog_fai 4.545455 0.5899705 5.432099 1.192803e-08 -5.700752
soldevu=p2 20.000000 8.5545723 17.901235 1.245157e-09 -6.074318
eparlog=eparlog_for 7.812500 1.4749263 7.901235 4.322270e-10 -6.241922
interdit=interdit_non 38.829787 86.1356932 92.839506 3.284253e-10 -6.284729
virecre=virecre_moy 15.789474 5.3097345 14.074074 1.914590e-10 -6.368040
assurvi=assurvi_oui 17.647059 7.0796460 16.790123 7.046114e-11 -6.519672
eparliv=eparliv_for 0.000000 0.0000000 5.432099 1.801689e-11 -6.721253
duree=dp12 22.457627 15.6342183 29.135802 2.273739e-13 -7.331628
remiche=remiche_for 4.225352 0.8849558 8.765432 6.535458e-14 -7.496880
viredeb=viredeb_fai 22.131148 15.9292035 30.123457 2.240231e-14 -7.636029
porttit=porttit_fai 2.898551 0.5899705 8.518519 1.045236e-14 -7.733629
soldevu=p3 2.898551 0.5899705 8.518519 1.045236e-14 -7.733629
soldevu=p4 6.315789 1.7699115 11.728395 2.460870e-16 -8.197182
eparliv=eparliv_fai 12.500000 5.3097345 17.777778 7.706980e-17 -8.335656
cableue=cableue_oui 19.341564 13.8643068 30.000000 2.192589e-18 -8.746918
virecre=virecre_for 7.627119 2.6548673 14.567901 8.056829e-19 -8.859231
$`2`
Cla/Mod Mod/Cla Global p.value v.test
eparliv=eparliv_for 88.636364 30.46875 5.432099 1.331199e-28 11.094691
porttit=porttit_fai 60.869565 32.81250 8.518519 1.647562e-19 9.034498
porttit=porttit_for 64.000000 25.00000 6.172840 1.176378e-15 8.006898
retresp=retresp_for 69.696970 17.96875 4.074074 1.550947e-12 7.069856
age=ai75 33.707865 46.87500 21.975309 5.547302e-12 6.890817
soldevu=p4 43.157895 32.03125 11.728395 6.579101e-12 6.866511
prelfin=prelfin_nul 18.104668 100.00000 87.283951 5.281199e-09 5.838060
csp=retra 42.307692 17.18750 6.419753 2.288439e-06 4.726126
versesp=versesp_non 17.565698 99.21875 89.259259 2.559039e-06 4.703369
remiche=remiche_for 36.619718 20.31250 8.765432 6.715102e-06 4.502524
cableue=cableue_non 19.047619 84.37500 70.000000 5.538654e-05 4.031650
credcon=credcon_nul 17.664234 94.53125 84.567901 2.231386e-04 3.691268
viredeb=viredeb_nul 18.969072 71.87500 59.876543 2.264069e-03 3.053211
eparlog=eparlog_for 29.687500 14.84375 7.901235 3.515297e-03 2.918669
remiche=remiche_nul 18.262806 64.06250 55.432099 3.210404e-02 2.143113
preltre=preltre_nul 16.620879 94.53125 89.876543 4.858380e-02 1.972226
csp=etudi 7.017544 3.12500 7.037037 4.846489e-02 -1.973269
eparliv=eparliv_fai 10.416667 11.71875 17.777778 4.550477e-02 -1.999958
credcon=credcon_for 5.263158 2.34375 7.037037 1.498155e-02 -2.432825
retresp=retresp_moy 6.578947 3.90625 9.382716 1.382446e-02 -2.461792
credcon=credcon_fai 5.882353 3.12500 8.395062 1.208602e-02 -2.509623
age=ai25 6.666667 4.68750 11.111111 7.242312e-03 -2.685492
virecre=virecre_for 7.627119 7.03125 14.567901 5.429543e-03 -2.780379
retresp=retresp_fai 14.265335 78.12500 86.543210 4.104353e-03 -2.870028
viredeb=viredeb_for 0.000000 0.00000 4.938272 8.522659e-04 -3.335237
viredeb=viredeb_moy 0.000000 0.00000 5.061728 7.105906e-04 -3.385460
age=ai35 7.051282 8.59375 19.259259 3.896943e-04 -3.546966
remiche=remiche_fai 8.636364 14.84375 27.160494 3.801939e-04 -3.553464
csp=emplo 6.622517 7.81250 18.641975 2.450588e-04 -3.667369
prelfin=prelfin_fai 0.000000 0.00000 5.802469 2.374155e-04 -3.675466
cableue=cableue_oui 8.230453 15.62500 30.000000 5.538654e-05 -4.031650
remiche=remiche_moy 1.428571 0.78125 8.641975 5.396493e-05 -4.037756
soldevu=n1 6.172840 7.81250 20.000000 5.350771e-05 -4.039752
prelfin=prelfin_moy 0.000000 0.00000 6.913580 4.503884e-05 -4.079984
versesp=versesp_oui 1.149425 0.78125 10.740741 2.559039e-06 -4.703369
eparliv=eparliv_nul 11.897106 57.81250 76.790123 1.662908e-07 -5.233544
porttit=porttit_nul 7.619048 37.50000 77.777778 8.902559e-28 -10.923473
$`3`
Cla/Mod Mod/Cla Global p.value v.test
remiche=remiche_moy 62.857143 26.6666667 8.641975 3.453146e-16 8.156345
versesp=versesp_oui 56.321839 29.6969697 10.740741 2.979388e-15 7.891766
soldevu=p3 56.521739 23.6363636 8.518519 3.896798e-12 6.940875
virecre=virecre_fai 37.931034 40.0000000 21.481481 8.361031e-10 6.137917
cableue=cableue_oui 33.744856 49.6969697 30.000000 2.203951e-09 5.982014
eparlog=eparlog_fai 54.545455 14.5454545 5.432099 2.897313e-07 5.130007
remiche=remiche_fai 31.363636 41.8181818 27.160494 4.521463e-06 4.585849
prelfin=prelfin_moy 46.428571 15.7575758 6.913580 5.628465e-06 4.539886
oppo=oppo_oui 44.827586 15.7575758 7.160494 1.293146e-05 4.361262
viredeb=viredeb_fai 29.918033 44.2424242 30.123457 1.627946e-05 4.310624
interdit=interdit_non 21.808511 99.3939394 92.839506 1.925733e-05 4.273332
soldevu=p2 31.724138 27.8787879 17.901235 3.400218e-04 3.582730
virecre=virecre_moy 33.333333 23.0303030 14.074074 4.406124e-04 3.514482
eparlog=eparlog_for 37.500000 14.5454545 7.901235 9.876784e-04 3.294013
eparliv=eparliv_fai 30.555556 26.6666667 17.777778 1.315757e-03 3.212521
csp=ouvri 27.322404 30.3030303 22.592593 9.747159e-03 2.584672
duree=d48 26.570048 33.3333333 25.555556 1.206706e-02 2.510177
credhab=credhab_non 21.448468 93.3333333 88.641975 2.788478e-02 2.198904
csp=etudi 31.578947 10.9090909 7.037037 3.841126e-02 2.070439
porttit=porttit_nul 21.904762 83.6363636 77.777778 3.953318e-02 2.058594
virecre=virecre_for 13.559322 9.6969697 14.567901 4.210466e-02 -2.032484
credhab=credhab_oui 11.956522 6.6666667 11.358025 2.788478e-02 -2.198904
soldevu=n2 10.294118 4.2424242 8.395062 2.451975e-02 -2.248886
viredeb=viredeb_nul 17.731959 52.1212121 59.876543 2.396225e-02 -2.257734
remiche=remiche_for 9.859155 4.2424242 8.765432 1.574306e-02 -2.414818
csp=cadsu 11.650485 7.2727273 12.716049 1.467307e-02 -2.440349
prelfin=prelfin_nul 18.953324 81.2121212 87.283951 1.191621e-02 -2.514616
retresp=retresp_for 3.030303 0.6060606 4.074074 4.983258e-03 -2.808114
age=ai75 12.359551 13.3333333 21.975309 1.904111e-03 -3.104795
soldevu=p1 14.022140 23.0303030 33.456790 1.207521e-03 -3.237098
porttit=porttit_for 4.000000 1.2121212 6.172840 9.266943e-04 -3.311886
duree=dm2 7.692308 4.2424242 11.234568 5.979714e-04 -3.432533
eparliv=eparliv_for 2.272727 0.6060606 5.432099 4.571120e-04 -3.504706
soldevu=p4 7.368421 4.2424242 11.728395 2.933588e-04 -3.621095
viredeb=viredeb_for 0.000000 0.0000000 4.938272 8.548915e-05 -3.928467
interdit=interdit_oui 1.724138 0.6060606 7.160494 1.925733e-05 -4.273332
oppo=oppo_non 18.484043 84.2424242 92.839506 1.293146e-05 -4.361262
cableue=cableue_non 14.638448 50.3030303 70.000000 2.203951e-09 -5.982014
eparlog=eparlog_nul 16.666667 70.9090909 86.666667 8.491114e-10 -6.135464
virecre=virecre_nul 11.138614 27.2727273 49.876543 4.753084e-11 -6.578472
versesp=versesp_non 16.044260 70.3030303 89.259259 2.979388e-15 -7.891766
remiche=remiche_nul 10.022272 27.2727273 55.432099 2.840351e-16 -8.179919
$`4`
Cla/Mod Mod/Cla Global p.value v.test
prelfin=prelfin_fai 78.723404 43.023256 5.802469 6.201311e-31 11.564970
viredeb=viredeb_for 60.000000 27.906977 4.938272 3.178013e-15 7.883710
credcon=credcon_fai 44.117647 34.883721 8.395062 3.906542e-14 7.564068
preltre=preltre_fai 48.936170 26.744186 5.802469 5.378302e-12 6.895216
remiche=remiche_for 35.211268 29.069767 8.765432 3.968544e-09 5.885499
duree=d812 22.222222 37.209302 17.777778 5.276832e-06 4.553470
eparliv=eparliv_fai 20.833333 34.883721 17.777778 5.339971e-05 4.040226
viredeb=viredeb_fai 17.213115 48.837209 30.123457 1.222604e-04 3.841549
soldevu=p2 20.000000 33.720930 17.901235 1.795503e-04 3.746177
virecre=virecre_moy 21.052632 27.906977 14.074074 3.659685e-04 3.563481
cableue=cableue_oui 16.460905 46.511628 30.000000 6.652023e-04 3.403534
age=ai55 17.816092 36.046512 21.481481 1.027647e-03 3.282846
virecre=virecre_for 19.491525 26.744186 14.567901 1.757335e-03 3.128446
csp=emplo 17.218543 30.232558 18.641975 5.829993e-03 2.757193
versesp=versesp_oui 19.540230 19.767442 10.740741 8.535187e-03 2.630131
assurvi=assurvi_oui 16.911765 26.744186 16.790123 1.354096e-02 2.469216
oppo=oppo_oui 20.689655 13.953488 7.160494 1.893063e-02 2.346894
oppo=oppo_non 9.840426 86.046512 92.839506 1.893063e-02 -2.346894
assurvi=assurvi_non 9.347181 73.255814 83.209877 1.354096e-02 -2.469216
age=ai75 5.617978 11.627907 21.975309 1.054200e-02 -2.557525
age=ai25 3.333333 3.488372 11.111111 9.791031e-03 -2.583123
versesp=versesp_non 9.543568 80.232558 89.259259 8.535187e-03 -2.630131
soldevu=p1 5.904059 18.604651 33.456790 1.432833e-03 -3.187954
cableue=cableue_non 8.112875 53.488372 70.000000 6.652023e-04 -3.403534
duree=d24 3.030303 4.651163 16.296296 6.587016e-04 -3.406216
remiche=remiche_nul 7.126949 37.209302 55.432099 3.604595e-04 -3.567459
eparliv=eparliv_nul 8.360129 60.465116 76.790123 3.398095e-04 -3.582893
duree=dm2 0.000000 0.000000 11.234568 1.908395e-05 -4.275347
preltre=preltre_nul 8.516484 72.093023 89.876543 6.024486e-07 -4.990431
virecre=virecre_nul 3.960396 18.604651 49.876543 3.016853e-10 -6.297910
credcon=credcon_nul 6.861314 54.651163 84.567901 1.473736e-12 -7.076939
viredeb=viredeb_nul 3.505155 19.767442 59.876543 1.229623e-15 -8.001450
prelfin=prelfin_nul 6.223479 51.162791 87.283951 7.370840e-19 -8.869147
$`5`
Cla/Mod Mod/Cla Global p.value v.test
virecre=virecre_for 51.694915 66.304348 14.567901 1.188351e-35 12.462987
viredeb=viredeb_moy 73.170732 32.608696 5.061728 5.088499e-22 9.646454
preltre=preltre_moy 71.428571 27.173913 4.320988 7.737954e-18 8.603414
duree=dp12 22.881356 58.695652 29.135802 3.498511e-10 6.274904
assurvi=assurvi_oui 28.676471 42.391304 16.790123 4.726270e-10 6.227934
credhab=credhab_oui 33.695652 33.695652 11.358025 7.147992e-10 6.162777
cableue=cableue_oui 22.222222 58.695652 30.000000 1.319307e-09 6.065028
retresp=retresp_moy 35.526316 29.347826 9.382716 3.426330e-09 5.909747
soldevu=p4 30.526316 31.521739 11.728395 4.629830e-08 5.464971
eparliv=eparliv_fai 25.694444 40.217391 17.777778 5.987183e-08 5.419184
sexe=hom 14.695341 89.130435 68.888889 1.786500e-06 4.776187
prelfin=prelfin_moy 32.142857 19.565217 6.913580 1.443831e-05 4.337088
credcon=credcon_for 31.578947 19.565217 7.037037 1.926314e-05 4.273265
interdit=interdit_non 12.234043 100.000000 92.839506 6.973648e-04 3.390613
remiche=remiche_fai 17.727273 42.391304 27.160494 8.220234e-04 3.345271
viredeb=viredeb_for 27.500000 11.956522 4.938272 4.002918e-03 2.877932
viredeb=viredeb_fai 15.983607 42.391304 30.123457 8.165531e-03 2.645148
soldevu=p3 21.739130 16.304348 8.518519 9.513216e-03 2.593038
age=ai75 16.853933 32.608696 21.975309 1.215314e-02 2.507666
eparlog=eparlog_fai 22.727273 10.869565 5.432099 2.725355e-02 2.207867
csp=inter 17.647059 19.565217 12.592593 4.256582e-02 2.027945
porttit=porttit_moy 19.672131 13.043478 7.530864 4.815325e-02 1.976013
prelfin=prelfin_nul 10.183876 78.260870 87.283951 1.006246e-02 -2.573676
eparlog=eparlog_nul 10.113960 77.173913 86.666667 7.944432e-03 -2.654422
csp=etudi 1.754386 1.086957 7.037037 7.881860e-03 -2.657089
soldevu=n1 5.555556 9.782609 20.000000 6.171965e-03 -2.738503
eparliv=eparliv_for 0.000000 0.000000 5.432099 4.251639e-03 -2.858862
duree=d24 3.787879 5.434783 16.296296 1.106869e-03 -3.261852
duree=dm2 2.197802 2.173913 11.234568 9.812144e-04 -3.295858
credcon=credcon_nul 9.635036 71.739130 84.567901 8.053852e-04 -3.350937
interdit=interdit_oui 0.000000 0.000000 7.160494 6.973648e-04 -3.390613
virecre=virecre_fai 4.597701 8.695652 21.481481 6.876957e-04 -3.394438
age=ai25 1.111111 1.086957 11.111111 1.477536e-04 -3.794815
eparliv=eparliv_nul 8.842444 59.782609 76.790123 1.075662e-04 -3.872859
remiche=remiche_nul 6.904232 33.695652 55.432099 9.434755e-06 -4.429738
sexe=fem 3.968254 10.869565 31.111111 1.786500e-06 -4.776187
soldevu=p1 4.059041 11.956522 33.456790 7.352546e-07 -4.951812
retresp=retresp_fai 8.559201 65.217391 86.543210 2.036605e-08 -5.608863
cableue=cableue_non 6.701940 41.304348 70.000000 1.319307e-09 -6.065028
credhab=credhab_non 8.495822 66.304348 88.641975 7.147992e-10 -6.162777
assurvi=assurvi_non 7.863501 57.608696 83.209877 4.726270e-10 -6.227934
preltre=preltre_nul 8.241758 65.217391 89.876543 2.892686e-12 -6.982842
virecre=virecre_nul 2.970297 13.043478 49.876543 4.792673e-15 -7.832236
viredeb=viredeb_nul 2.474227 13.043478 59.876543 7.633000e-23 -9.839181
La partition en cinq classes vient préciser la classe 3 en la décomposant en trois classes (20%, 11% et 11% de la clientèle totale).
La nouvelle classe 3 correspond à des gens qui font des chèques… Visiblement plutôt des ouvriers.
La classe 4 correspond à des clients qui ont des déductions fiscales/financières, plutôt des ouvriers.
La classe 5 correspond à des clients qui font des virements, plutôt les professions intermédiaires, et les plus âgés (on est un peu surpris).
Ces trois classes viennent préciser la nature des mouvements financiers sur le compte courant des clients ! Il faut préciser chacun de ces segments de clientèle pour pouvoir les nommer…