Clustering HCPC sur petits échantillons

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

PUECH Thomas
Messages : 4
Enregistré le : 13 Juin 2018, 13:02

Clustering HCPC sur petits échantillons

Messagepar PUECH Thomas » 17 Juin 2018, 13:46

J'ulilise ce forum depuis plus de 4 ans et j'ai toujours trouvé les réponses que je cherchais dans l'historique des discussions... Mais là je ne trouve pas et j'ai besoin de votre aide !
Je réalise une AFCM sur un petit jeu de données (19 individus, 5 variables) avec le package FactomineR (v1.41) et les procédures MCA et HCPC.
Mon jeu de données :

Code : Tout sélectionner

"ID_Ferme";"C_NbETP";"C_Age";"C_Diplomes";"C_Date_installation";"C_Origine"
"A";"PlusDe5";"30A39";"Bac";"1999A2007";"MA"
"B";"PlusDe5";"30A39";"BacPlus5EtPlus";"2008A2012";"HCF"
"C";"PlusDe1A3";"30A39";"BacPlus234";"2013A2018";"HCF"
"D";"PlusDe3A5";"50EtPlus";"Bac";"1980A1999";"MA"
"E";"PlusDe5";"40A49";"BacPlus5EtPlus";"1980A1999";"MA"
"F";"PlusDe5";"30A39";"BacPlus234";"2013A2018";"HCF"
"G";"PlusDe3A5";"30A39";"BacPlus5EtPlus";"2008A2012";"HCF"
"H";"PlusDe1A3";"50EtPlus";"MoinsBac";"1999A2007";"HCF"
"I";"PlusDe1A3";"40A49";"BacPlus5EtPlus";"2013A2018";"MA"
"J";"PlusDe1A3";"40A49";"Bac";"1980A1999";"MA"
"K";"PlusDe1A3";"30A39";"BacPlus234";"2008A2012";"MA"
"L";"PlusDe1A3";"50EtPlus";"BacPlus234";"1999A2007";"MA"
"M";"PlusDe1A3";"30A39";"Bac";"2008A2012";"HCF"
"N";"1EtMoins";"30A39";"BacPlus234";"2013A2018";"HCF"
"O";"1EtMoins";"50EtPlus";"BacPlus5EtPlus";"2008A2012";"HCF"
"P";"PlusDe3A5";"40A49";"Bac";"1980A1999";"MA"
"Q";"PlusDe3A5";"50EtPlus";"MoinsBac";"1999A2007";"MA"
"R";"1EtMoins";"50EtPlus";"MoinsBac";"1999A2007";"HCF"
"S";"PlusDe3A5";"40A49";"Bac";"1980A1999";"MA"


Que j'analyse avec le code suivant :

Code : Tout sélectionner

library(FactoMineR)
setwd("C:/Users/T_PUECH/Desktop/MonAnalyseStats")
donnees_import=data.frame(read.csv("individus.csv", header = TRUE, sep = ";"))
row.names(donnees_import)=donnees_import[,1]
donnees_import=donnees_import[,-1]
res.MCA=MCA(donnees_import)
res.HCPC=HCPC(res.MCA, graph=TRUE)



A l'issue de la procédure HCHC et au regard du dendrogramme, j'indique à R vouloir regrouper les 19 individus en 3 classes. A l'issue de cette procédure, je vois que les individus A et L appartiennent au même cluster (le 3, en vert).
Or sur le dendrogramme affiché sur le factor map, sur le factor map en lui même et dans le tableau résultats de l'HCPC (res.HCPC$call$X), mes individus A et L appartiennent respectivement au cluster 1 (le noir) et 2 (le rouge).
Pour les autres individus, toutes les représentations sont identiques (les clusters sont inchangés).

Tout ceci me laisse perplexe sur une procédure que j'utilise en routine depuis des années (mais sur des jeux de données beaucoup plus grands qui ne me permettent pas de vérifier 1 par 1 l'affectation de mes individus).
Sauriez vous expliquer ces différences d'affectation des individus A et L ?

Merci de votre aide précieuse !

Thomas

Florent Aubry
Messages : 324
Enregistré le : 25 Juin 2010, 10:21

Re: Clustering HCPC sur petits échantillons

Messagepar Florent Aubry » 18 Juin 2018, 06:46

1) Ta procédure pour lire les données n'utilise pas les possibilités données par R pour ce type de lecture. Pour avoir le résultat, il suffit d'écrire :

Code : Tout sélectionner

 donnees_import <- read.table( "individus.csv", header = TRUE, sep = ";", row=1)


2) J'ai fait tourner ta procédure : à l'issue de MCA, A se trouve dans le quadrant en bas à gauche et L en haut à droite. Cela suggère donc que A est 'proche' de I et L, de 'H'. C'est d'ailleurs ce que l'on obtient à l'issue de HCPC (A dans cluster 1 et L dans le 2) voir le graphique et res.HCPC$data.clust qui donne le résultat. Je n'ai jamais la situation que tu décris :
A l'issue de cette procédure, je vois que les individus A et L appartiennent au même cluster (le 3, en vert).
Peux-tu décrire plus exactement à quel moment et dans quels graphique et données tu obtiens que 'A' et 'L' sont dans le cluster 3 ?

PUECH Thomas
Messages : 4
Enregistré le : 13 Juin 2018, 13:02

Re: Clustering HCPC sur petits échantillons

Messagepar PUECH Thomas » 20 Juin 2018, 07:54

Bonjour Florent,

Merci de ta réponse rapide.
Merci tout d'abord pour le petit conseil sur les possibilités de R.

J'ai les mêmes résultats sur le Factor Map : A est dans le quadrant en bas à gauche et L en haut à droite. Le Factor Map et le tableau res.HCPC$data.clust donnent en effet le même résultat.

C'est sur le dendrogramme (la 1ère figure issue de la procédure HCPC) que A et L figurent tous deux en bas à droite dans le même cluster que O, G, B... qui, dans le Factor Map sont localisés en bas à droite.

Par conséquent, je m'interroge sur la pertinence du dendrogramme (c'est dommage que je ne puisse pas joindre de fichiers dans le forum).

Merci de votre aide !

Thomas

Florent Aubry
Messages : 324
Enregistré le : 25 Juin 2010, 10:21

Re: Clustering HCPC sur petits échantillons

Messagepar Florent Aubry » 20 Juin 2018, 08:12

En effet, je n'avais pas regardé ce graphique. La meilleure solution est que tu poses directement la question à François Husson dont l'adresse est sur la page d'aide de HCPC et fais-nous part de sa réponse.

PUECH Thomas
Messages : 4
Enregistré le : 13 Juin 2018, 13:02

Re: Clustering HCPC sur petits échantillons

Messagepar PUECH Thomas » 20 Juin 2018, 08:13

Entendu, je vous tiens au courant !

Thomas

PUECH Thomas
Messages : 4
Enregistré le : 13 Juin 2018, 13:02

Re: Clustering HCPC sur petits échantillons

Messagepar PUECH Thomas » 20 Juin 2018, 12:18

Après échanges de mails avec M. Husson, voici sa réponse :

Après la construction de l'arbre hiérarchique, l'arbre est coupé pour constituer des classes puis il y a une consolidation des classes (via un partitionnement avec la méthode des k-means). Donc certains individus peuvent changer de classes pour que les classes soient plus homogènes (l'inertie intra-classes est diminuée). L'inconvénient est que l'on perd la correspondance entre l'arbre et la partition en classes. Si vous voulez qu'il y ait correspondance entre arbre et partition, il ne faut pas faire de consolidation et utiliser l'argument consol=FALSE dans HCPC (par défaut, l'argument est TRUE).

Le problème est donc résolu :-)

Thomas


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité