• Aucun résultat trouvé

Analyse exploratoire de séquences

3.2 Le manuel de la librairie WeightedCluster : Un guide pratique pour la création de typologiesguide pratique pour la création de typologies

3.2.5 Mesurer la qualité d’une partition

Freq. (weighted n=210.17)

Sep.93 Sep.94 Sep.95 Sep.96 Sep.97 Sep.98

0.00.20.40.60.81.0

467

Freq. (weighted n=221.94)

Sep.93 Sep.94 Sep.95 Sep.96 Sep.97 Sep.98

0.00.20.40.60.81.0

510

Freq. (weighted n=53.6)

Sep.93 Sep.94 Sep.95 Sep.96 Sep.97 Sep.98

0.00.20.40.60.81.0

66

Freq. (weighted n=225.86)

Sep.93 Sep.94 Sep.95 Sep.96 Sep.97 Sep.98

0.00.20.40.60.81.0

employment FE

HE joblessness

school training

Nous avons présenté plusieurs types d’analyses en cluster qui nous ont conduits à des solutions différentes. Comment faire un choix entre ces solutions ? Cette question est d’autant plus importante que nous aurions également pu sélectionner des nombres de groupes différents pour chaque procédure, ce qui nous amènerait à un grand nombre de possibilités. Les mesures de la qualité d’une partition que nous présentons maintenant aident à réaliser ce choix en offrant une base de comparaison de ces différentes solutions.

3.2.5 Mesurer la qualité d’une partition

Les mesures de la qualité d’une partition ont deux objectifs. Premièrement, certaines d’entre elles donnent une idée de la qualité statistique de la partition.

Deuxièmement, ces mesures aident au choix de la meilleure partition d’un point de vue statistique. Elles sont ainsi d’une aide précieuse pour sélectionner le nombre de groupes ou le meilleur algorithme.

Présentation des mesures

La libraireWeightedClusterpropose plusieurs mesures de la qualité d’une par-tition qui sont listées dans le tableau 3.2. Le choix de ces mesures est largement inspiré par Hennig et Liao (2010) que nous avons complété avec le « C-index »

3.2 Le manuel de la librairie « WeightedCluster » 85 85 qui figurait parmi les meilleurs indices selon Milligan et Cooper (1985). La

présen-tation que nous faisons ici se centre sur les concepts. Le lecteur intéressé pourra toutefois se référer à l’annexe 3.A.3 qui présente les détails mathématiques de ces mesures ainsi que les ajustements effectués pour prendre en compte la pondération des observations. Outre le nom des mesures de qualités, le tableau 3.2 présente leurs principales caractéristiques à l’aide des informations suivantes :

– Abrv : abréviation utilisée dans la librairieWeightedCluster.

– Étendue : intervalle des valeurs possibles.

– Min/Max : Est-ce qu’une bonne partition minimise ou maximise cette me-sure ?

– Interprétation de la valeur.

Table 3.2 – Mesures de la qualité d’un regroupement.

Nom Abrv. Étendue Min/Max Interprétation

Point Biserial

Correlation PBC [−1; 1] Max Mesure de la capacité du clustering à re-produire les distances.

Hubert’s Gamma HG [1; 1] Max Mesure de la capacité du clustering à reproduire les distances (ordre de gran-deur).

Hubert’s Somers D HGSD [1; 1] Max Mesure de la capacité du clustering à reproduire les distances (ordre de gran-deur) avec prise en compte des égalités sur les distances.

Hubert’s C HC [0; 1] Min Écart entre la partition obtenue et la meilleure partition qu’il serait théorique-ment possible d’obtenir avec ce nombre de groupes et ces distances.

Average Silhouette

Width ASW [1; 1] Max Cohérence des assignations. Une cohé-rence élevée indique des distances inter-groupes élevées et une forte homogénéité intragroupe.

Calinski-Harabasz

index CH [0; +[ Max Pseudo F calculé à partir des distances.

Calinski-Harabasz

index CHsq [0; +∞[ Max Idem que précédant, mais en utilisant les distancesau carré.

PseudoR2 R2 [0; 1] Max Part de la dispersion expliquée par la solution de clustering (uniquement pour comparer des partitions avec nombre de groupes identiques).

PseudoR2 R2sq [0; 1] Max Idem que précédant, mais en utilisant les distancesau carré.

Les trois premières mesures, à savoir « Point Biserial Correlation » (Milligan et Cooper, 1985; Hennig et Liao, 2010), « Hubert’s Gamma » et « Hubert’s Somers D » (Hubert et Arabie, 1985), suivent la même logique. Elles mesurent la capacité d’une partition des données à reproduire la matrice des distances. Si la première mesure la capacité à reproduire la valeur exacte des distances, les deux suivantes se basent sur les concordances. Ceci implique que, selon ces deux derniers indices, une partition est bonne si les distances entre les groupes sont plus grandes que celles à l’intérieur des groupes. Techniquement, on mesure cette capacité en calculant

l’association entre la matrice de distance et une deuxième mesure de distance qui prend la valeur 0 pour les observations qui sont dans le même groupe et 1 sinon.

On utilise la corrélation de Pearson (« Point Biserial Correlation »), Gamma de Goodman et Kruskal (« Hubert’s Gamma ») ou le D de Somers (« Hubert’s Somers D »).

L’indice « Hubert’s C » met en parallèle la partition obtenue et la meilleure partition que l’on aurait pu obtenir avec ce nombre de groupe et cette matrice de distance. Contrairement aux autres indices, une petite valeur indique une bonne partition des données.

Les indices de Calinski-Harabasz (Calinski et Harabasz, 1974) se basent sur la statistiqueF de l’analyse de variance. Cette mesure a donné de très bons résultats dans les simulations de Milligan et Cooper (1985). Toutefois, son extension à des données non numériques est sujette à discussion (Hennig et Liao, 2010). On peut discuter de sa pertinence si la mesure de distance est euclidienne (ou euclidienne au carré) auquel cas, cette mesure revient à utiliser la statistique F sur les coor-données que l’on peut associer aux observations, par exemple avec une analyse en coordonnées principales. Pour ce cas de figure, la librairieWeightedClusterfournit cette statistique en utilisant les carrés des distances lorsque la distance est eucli-dienne ou la distance elle-même lorsque la mesure est déjà une distance euclieucli-dienne au carré, comme la distance de Hamming par exemple.

Le « R-square » calcule la part de la dispersion expliquée par une partition (Stu-der et al., 2011). Cette mesure n’est pertinente que pour comparer des partitions comportant le même nombre de groupe, car elle ne pénalise pas la complexité.

Finalement, la mesure « Average Silhouette Width » proposée par Kaufman et Rousseeuw (1990) est particulièrement intéressante. Elle se base sur la cohérence de l’assignation d’une observation à un groupe donné en mettant en parallèle la distance moyenne pondérée d’une observation aux autres membres de son groupe et la distance moyenne pondérée au groupe le plus proche. Une valeur est calculée pour chaque observation, mais on regarde plutôt la silhouette moyenne. Si celle-ci est faible, cela signifie que les groupes ne sont pas clairement séparés les uns des autres ou que l’homogénéité des groupes est faible. De manière intéressante, Kaufman et Rousseeuw (1990) proposent des ordres de grandeur pour interpréter cette mesure que nous reproduisons dans le tableau 3.3.

Table3.3 – Ordres de grandeur pour interpréter la mesureASW ASW Interprétation proposée

0.71-1.00 Structure forte identifiée.

0.51-0.70 Structure raisonnable identifiée.

0.26-0.50 La structure est faible et pourrait être artificielle.

Essayer d’autres algorithmes.

≤0.25 Aucune structure.

Ces mesures sont calculées avec la fonction wcClusterQuality. La valeur re-tournée par la fonction est une liste qui comprend deux éléments. L’élémentstats

3.2 Le manuel de la librairie « WeightedCluster » 87 87 contient les valeurs des mesures de qualité.

R> clustqual4 <- wcClusterQuality(mvaddist,

clust4, weights = mvad$weight)

R> clustqual4$stats

PBC HG HGSD ASW CH R2 CHsq

0.43 0.56 0.56 0.23 140.43 0.37 282.38

R2sq HC

0.54 0.19

Selon la mesureASW=0.23, la solution en quatre groupes obtenue avec le critère de Ward pourrait être un artifice statistique, puisqu’elle est inférieure à 0.25.

L’élémentASWde l’objetclustqual4 contient la silhouette moyenne de chaque groupe pris séparément. Selon cette mesure, le groupe 3 est ci particulièrement mal défini puisque sa silhouette moyenne est négative.

R> clustqual4$ASW

1 2 3 4

0.577 0.227 -0.190 0.433

Utiliser la silhouette pour représenter les clusters

La silhouette peut être calculée séparément pour chaque séquence, ce qui permet d’identifier les séquences caractéristiques d’un regroupement (silhouette proche de un). La fonctionwcSilhouetteObscalcule ces valeurs. Dans l’exemple ci-dessous, nous utilisons les silhouettes pour ordonner les séquences dans des index-plots.

R> sil <- wcSilhouetteObs(mvaddist, clust4,

weights = mvad$weight)

R> seqIplot(mvadseq, group = clust4, sortv = sil)

Les séquences les plus caractéristiques de chaque cluster sont représentées en haut de chaque graphique. Selon la définition de la silhouette, les séquences que nous appelons « caractéristiques » sont celles qui sont proches du centre de leur groupe tout en étant éloignées du groupe le plus proche. Dans le groupe 1 par exemple, la séquence caractéristique est d’accéder à l’emploi après deux ans d’apprentissage. Au contraire, les séquences au bas de chaque graphique sont mal représentées et/ou mal assignées. Ainsi, dans le groupe 3 par exemple, les séquences « école – apprentissage – emploi » sont plus proches d’un autre groupe (le 1 vraisemblablement) que de son propre groupe.

Choix d’une partition

Les mesures de la qualité d’une partition facilitent le choix de la meilleure partition parmi un ensemble de possibilités. On peut ainsi les utiliser pour identifier l’algorithme qui donne les meilleurs résultats. La fonctionwcKmedoidsutilisée pour PAM calcule directement ces valeurs qui sont stockées dans les élémentsstats et ASW comme précédemment. Le code suivant affiche les mesures de qualités pour la partition identifiée à l’aide de PAM. Cette partition semble ainsi meilleure que celle obtenue avec Ward.

R> pamclust4$stats

PBC HG HGSD ASW CH R2 CHsq R2sq 0.6 0.8 0.8 0.4 198.2 0.5 534.6 0.7 0.1HC

Ces mesures permettent également de comparer des partitions avec un nombre de groupes différents. Seul le pseudoR2ne devrait pas être utilisé dans ce but, car il ne pénalise pas pour la complexité. Le calcul de la qualité de toutes ces différentes

3.2 Le manuel de la librairie « WeightedCluster » 89 89 possibilités s’avère vite laborieux. La fonctionas.clustrangede la librairie

Weigh-tedCluster calcule automatiquement ces valeurs pour un ensemble de nombres de groupes issus d’une même procédure de regroupement hiérarchique (wardCluster dans notre exemple). Cette fonction requiert les arguments suivants : la matrice des dissimilarités (diss), les pondérations (optionnel, argument weights) ainsi que le nombre maximum de cluster que l’on entend conserver (ncluster). Dans l’exemple suivant, nous estimons la qualité de clustering pour les regroupements en 2,3, . . . ,ncluster = 20 groupes.

R> wardRange <- as.clustrange(wardCluster,

diss = mvaddist, weights = mvad$weight, ncluster = 20)

R> summary(wardRange, max.rank = 2)

1. N groups 1. stat 2. N groups 2. stat

PBC 6 0.4686 2 0.4551

HG 20 0.8811 18 0.8571

HGSD 20 0.8794 18 0.8553

ASW 2 0.3709 16 0.2938

CH 2 234.1011 3 164.0037

R2 20 0.6954 19 0.6805

CHsq 2 469.5188 3 326.5015

R2sq 20 0.8624 19 0.8432

HC 20 0.0577 18 0.0659

La fonctionsummaryprésente le meilleur nombre de groupes selon chaque me-sure de qualité ainsi que la valeur de ces statistiques. L’argumentmax.rankspécifie le nombre de partitions à afficher. Selon la mesure « Point Biserial Correlation » (PBC), la partition en six groupes est la meilleure des partitions, alors que pour l’in-dice « ASW » une solution en deux groupes parait préférable. La valeur maximale identifiée pour ce dernier indice indique qu’il s’agit peut-être d’artifices statistiques (voir tableau 3.3). Rappelons que le pseudo-R2et sa version basée sur les distances élevées aux carrés donneront toujours un maximum pour le nombre de groupes le plus élevé, car ces statistiques ne peuvent pas diminuer.

La présentation offerte par summary est utile pour comparer les résultats de deux procédures (voir ci-dessous). Toutefois, elle ne présente que deux ou trois solutions et il est souvent utile d’observer l’évolution de ces mesures pour identifier les points de décrochages et les partitions qui offrent le meilleur compromis entre plusieurs mesures. La fonctionplotassociée à l’objet retourné paras.clustrange représente graphiquement cette évolution. Au besoin, l’argument stat spécifie la liste des mesures à afficher ("all"les affiches toutes).

R> plot(wardRange, stat = c("ASW", "HG", "PBC",

"HC"))

5 10 15 20

0.00.20.40.60.81.0

Indicators ASW ( 0.21 / 0.37 )

HG ( 0.54 / 0.88 ) PBC ( 0.36 / 0.47 ) HC ( 0.06 / 0.21 )

La solution en six groupes est ici un maximum local pour les mesures « HC »,

« PBC » et « HG », ce qui en fait une bonne si l’on souhaite garder un nombre de groupe restreint. La lecture du graphique est parfois un peu difficile, car les valeurs moyennes de chaque mesure diffèrent. Pour pallier ce problème, l’argument norm="zscore"standardise les valeurs, ce qui permet de mieux identifier les maxi-mums et minimaxi-mums19. La figure ci-dessous facilite l’identification des partitions qui donnent de bons résultats. Les solutions en six et en 17 groupes paraissent bonnes dans notre cas de figure.

R> plot(wardRange, stat = c("ASW", "HG", "PBC",

"HC"), norm = "zscore")

5 10 15 20

−2−10123

Indicators ASW ( −1.52 / 2.89 )

HG ( −1.91 / 1.24 ) PBC ( −2.15 / 1.99 ) HC ( −1.09 / 2.04 )

L’objet retourné par la fonctionas.clustrangecontient undata.frame conte-nant toutes les partitions testées dans l’élémentclustering. On peut ainsi utiliser directement as.clustrange plutôt que cutree. La solution en six groupes peut être affichée de la manière suivante.

R> seqdplot(mvadseq, group = wardRange$clustering$cluster6,

border = NA)

19. on peut utilisernorm="zscoremed"pour une standardisation plus robuste basée sur la mé-diane.

3.2 Le manuel de la librairie « WeightedCluster » 91 91

1

Freq. (weighted n=145.14)

Sep.93 Sep.94 Sep.95 Sep.96 Sep.97 Sep.98

0.00.40.8

2

Freq. (weighted n=190.37)

Sep.93 Sep.94 Sep.95 Sep.96 Sep.97 Sep.98

0.00.40.8

3

Freq. (weighted n=116.88)

Sep.93 Sep.94 Sep.95 Sep.96 Sep.97 Sep.98

0.00.40.8

4

Freq. (weighted n=136.49)

Sep.93 Sep.94 Sep.95 Sep.96 Sep.97 Sep.98

0.00.40.8

5

Freq. (weighted n=93.01)

Sep.93 Sep.94 Sep.95 Sep.96 Sep.97 Sep.98

0.00.40.8

6

Freq. (weighted n=29.68)

Sep.93 Sep.94 Sep.95 Sep.96 Sep.97 Sep.98

0.00.40.8

La fonctionas.clustrangeaccepte divers types d’arguments, dont l’ensemble des procédures de clustering disponibles dans la librairiecluster, même si ces der-nières n’acceptent pas de pondération. Toutefois, il n’est pas possible de l’utiliser directement avec les algorithmes non hiérarchiques tels que PAM. Pour ce faire, on utilise la fonction wcKMedRange qui calcule automatiquement les partitions pour une série de valeurs de k (nombre de groupes). L’objet retourné est le même que celui présenté précédemment pour les procédures de regroupements hiérarchiques et l’on peut donc utilisé les mêmes présentations que précédemment. Cette fonc-tion prend en paramètre une matrice de distance, kvals un vecteur contenant le nombre de groupes des différentes partitions à créer, et un vecteur de poids. Les arguments supplémentaires sont passés àwcKMedoids.

R> pamRange <- wcKMedRange(mvaddist, kvals = 2:20,

weights = mvad$weight)

R> summary(pamRange, max.rank = 2)

1. N groups 1. stat 2. N groups 2. stat

PBC 4 0.5614 5 0.5279

HG 20 0.9063 19 0.8895

HGSD 20 0.9048 19 0.8878

ASW 2 0.3873 4 0.3668

CH 2 252.0080 3 205.7979

R2 20 0.7123 19 0.7024

CHsq 4 534.5852 2 483.1366

R2sq 20 0.8872 19 0.8808

HC 20 0.0465 19 0.0547

La présentation offerte par la fonctionsummaryest particulièrement utile pour

comparer les solutions de différentes procédures de clustering. On peut ainsi re-marquer que les résultats de PAM sont généralement plus performants. Outre la solution en deux groupes, peut-être un peu trop simplificatrice, celle en quatre groupes parait ici adaptée. Remarquons tout de même que ces partitions pour-raient toujours être le fruit d’un artifice statistique puisque l’ASW est inférieur à 0.5.

Les différents outils que nous avons présentés nous ont permis de construire une typologie des séquences. Pour ce faire, nous avons testé divers algorithmes et nombres de groupes avant de retenir une partition en quatre groupes créer à l’aide de la méthode PAM. D’une manière générale, nous suggérons aux lecteurs de tester un plus grand nombre d’algorithmes que ce que nous avons fait ici. Lesnard (2006) suggère par exemple d’utiliser la méthode « average » ou la méthode « flexible » (voir tableau 3.1). Les outils présentés permettent de faire ces comparaisons.

Nommer les clusters

Une fois la typologie créée, il est d’usage de nommer les types obtenus afin de rendre leur interprétation plus facile. La fonctionfactor permet de créer une va-riable catégorielle. Pour ce faire, on spécifie les types (icipamclust4$clustering), les valeurs que prend cette variable avec l’argument levels (on peut retrouver ces valeurs dans les graphiques précédents), ainsi que les labels que l’on souhaite attribuer à chacun de ces types avec l’argumentlabels. Les labels doivent être spécifiés dans le même ordre que l’argumentlevelsde sorte que la première entrée delevels(ici 66) corresponde à la première entrée delabels(ici « Apprentissage-Emploi »).

R> mvad$pam4 <- factor(pamclust4$clustering,

levels = c(66, 467, 607, 641), labels = c("Appr.-Emploi",

"Ecole-Emploi", "Ecole sup.", "Sans emploi"))

R> table(mvad$pam4)

Appr.-Emploi Ecole-Emploi Ecole sup.

189 307 160

Sans emploi 56

Une fois les clusters nommés, la typologie est construite. Avant de conclure, nous revenons plus en détail sur la question de la simplification induite par l’analyse en clusters et les biais que celle-ci peut introduire dans l’analyse. Nous illustrons cette question en présentant le calcul des liens entre typologie et facteurs explicatifs et en montrant comment ceci peut biaiser les résultats.