Вы находитесь на странице: 1из 24

Tutoriel FactoMineR pour lanalyse des correspondances multiples

avec une petite annexe sur la classification automatique


par Claire Lemercier, avec Pauline Milani et Sverine Sofio merci Sbastien Dubois pour ses remarques, et Muriel Cohen, Laure Fourtage et Alix Heiniger pour les tests et les questions stimulantes... version du 20 avril 2010 (dernires modifications = comment obtenir les intituls que vous souhaitez, p. 8 ; comment lire les rsultats de la classification automatique, in fine) Commentaires bienvenus : Claire.Lemercier@ens.fr

Nota bene : il existe maintenant un manuel papier ddi FactoMineR, qui explique partir d'exemples la fois les principes de R et de l'analyse factorielle. recommander, donc. Voir http://www.pur-editions.fr/detail.php?idOuv=2166 (o on peut lire prface et table des matires). 1. Prparer les donnes - Pour les bonnes pratiques de codage en matire d'ACM, voir notre Repres et la bibliographie correspondante. Mais voici quand mme un rsum outrancirement rapide et peu justifi : 1. viter de constituer des classes regroupant trop peu d'individus ; sil y a des raisons substantielles de le faire, traiter la variable correspondante comme supplmentaire ; 2. quand on ne sait pas trop comment constituer des classes (d'ge par exemple), rpartir peu prs galement les effectifs entre ces classes et ne pas faire des classes trop nombreuses (pas plus de 4 ou 5 le plus souvent) ; sil y a des raisons substantielles de faire autrement, traiter la variable correspondante comme supplmentaire ; 3. viter d'avoir deux variables diffrentes qui disent la mme chose ou presque la mme chose (caricature : l'ge et l'anne de naissance ; cas plus frquent : niveau d'tudes et niveau professionnel dans les cas o ceux-ci sont trs corrls). Dans ce cas, en conserver une seule (considrer lautre, ventuellement, comme supplmentaire) ou bien crer une troisime variable qui rsume les deux variables d'origine. - Si les donnes sont dans un fichier Excel, il faut que la premire ligne donne les intituls des colonnes. Ces intituls peuvent tre un peu longs et comprendre des espaces (cela ne bloque pas le logiciel) mais ce n'est pas recommand, notamment pour la lisibilit des graphiques. - Les donnes peuvent tre codes sous forme de chiffres ou d'tiquettes textuelles ( femme , fem ...). viter par principe les codes contenant des caractres compliqus (espaces, accents, tirets...) ou trop longs. L'underscore (_) est en revanche OK. Si les mmes codes ( 1 , autre ...) se retrouvent dans plusieurs colonnes, le logiciel ajoutera automatiquement l'intitul de la variable devant celui de la modalit ( sexe.1 , profession.autre ...). - Il est bon de coder les donnes manquantes NA pour que R les reconnaisse comme telles, ce qui peut servir pour certains traitements. Mais la plupart du temps vous pouvez utiliser un autre code au choix. Attention : si la premire ligne (les donnes sur le premier individu) contient des NA , il est possible que les colonnes correspondantes ne se chargent pas. Vrifiez toujours le bon chargement de vos donnes, et en cas de problme, triez les lignes autrement pour ne pas avoir de NA chez le premier individu. Attention : si certains individus concentrent les valeurs manquantes, cela va peser sur les premiers axes de lanalyse. Si ce nest pas ce qui vous intresse substantiellement, il faut peut-tre considrer ces individus comme supplmentaires.

Le logiciel utilis ici va considrer les donnes chiffres comme des donnes quantitatives (susceptibles de donner lieu des calculs de moyennes par exemples) et les donnes textuelles comme des donnes qualitatives. Il est possible de corriger cela, si ce n'est pas adapt vos donnes, dans RCommander. Cela dit, il est plus simple de coder en amont selon ces principes, donc de ne pas utiliser de codes purement chiffrs pour les donnes qualitatives. Exemple : mettre femme plutt que 2 , mettre 1850_59 plutt que 1850 si cela reprsente la classe de dates annes 1850 ... Attention : si une mme colonne comprend des chiffres et des lettres (par exemple en nombre d'enfants 1 , 2 ou plus ), cela va poser des problmes. Mettez tout en chiffres ou (de prfrence pour l'ACM) tout en lettres ( 1enf , 2enf , plusenf ). - Il est possible d'utiliser les noms de vos individus, ou tout autre label un peu explicite, dans les graphiques d'analyse factorielle, rsultats de classification, etc. (voir p. 8). Si vous pensez faire cela, mettez la colonne correspondante dans vos donnes... sans oublier de ne pas la considrer comme variable active dans l'analyse ! 2. Installer les logiciels : voir http://www.quanti.ihmc.ens.fr/document.php?id=78 (in fine) 3. Lancer R, RCommander et FactoMineR - Lancer R - Taper : library(Rcmdr) et appuyer sur Entre. partir de l, on n'utilise plus la fentre R, mais seulement la fentre RCommander (avec menus droulants). Cependant, il faut conserver ouverte la fentre R, o vont notamment safficher les grpahiques. - NB : quand RCommander travaille, il vous montre les instructions qu'il envoie R (lignes de programmes). Cela peut tre un moyen de commencer apprendre R, ou daffiner certaines instructions (cf. infra). Cela dit, vous ntes pas obligs de vous en proccuper si cest intimidant, surtout au dbut ! Instruction initiale tape dans R :

4. Importer les donnes - Menu Donnes Importer des donnes depuis Excel choix du nom ( Dataset par dfaut
peut tre conserv : a n'est important que si vous prvoyez de travailler sur plusieurs bases de donnes diffrentes au cours d'une mme session de travail avec FactomineR) choix du document choix de la feuille dans le classeur Excel (si certaines feuilles se prsentent avec des noms cabalistiques commenant par $, ne pas en tenir compte) Vrifier que l'importation s'est bien passe : cliquer sur Visualiser (bouton sous la ligne de menus) et jetez un coup d'oeil. noter que le bouton Editer permet de modifier vos donnes directement sous RCommander, mais a n'est pas forcment une bonne ide... mieux vaut souvent garder un fichier Excel propre et jour ct.

Importation des donnes (par le menu Donnes) : on voit les commandes s'afficher seules.

Vrification des donnes :

5. Faire une ACM Voir notre Repres pour les choix de variables actives et supplmentaires. Ici sont galement proposs des individus supplmentaires (non inclus dans l'analyse mais dont on regarde le placement sur le plan obtenu) : cela peut tre utile notamment pour ceux pour lesquels beaucoup de donnes sont manquantes. Menu FactomineR choix Multiple Correspondence Analysis

Dans la liste des variables qui saffiche, slectionner les variables actives (utiliser la slection multiple : Ctrl+clic sur PC) Que faire si mes variables ne s'affichent pas ici, ou pas toutes ? C'est sans doute que RCommander prend certaines variables qualitatives pour des variables quantitatives (cf. supra). Dans ce cas faire Annuler et transformer ces variables avant de revenir l'ACM. Pour cela, dans le menu Donnes -> Grer les variables... , choisir Convertir les donnes numriques en facteurs . Slectionner les variables convertir en cochant droite utiliser les nombres et dire oui ce qui suit ( remplacer variable ? ). Puis revenir l'ACM. Bouton Select Supplementary Factors pour slectionner les variables supplmentaires (mme procdure que pour les actives) Bouton Select Supplementary Quantitative Variables pour d'ventuelles variables quantitatives supplmentaires. Bouton Select Supplementary Individuals pour intgrer lanalyse d'ventuels individus extrieurs au corpus de donnes. Graphical options : ne permet pas dobtenir de trs beaux graphiques, mais peut permettre de se faire une premire ide. Dcidez surtout si vous voulez afficher les variables actives, supplmentaires, et/ou les individus (selon le nombre de variables et 4

dindividus, pour ne pas trop surcharger le graphique). En gnral, vous pouvez dcocher Plot variable graph dans la moiti droite de la bote de dialogue (mais vous pouvez aussi le garder pour voir quoi cela ressemble !). - Bouton Outputs pour slectionner le type de donnes que lon veut transfrer dans Excel (tout cocher par dfaut) et lendroit sur le disque o lon veut les placer. Donner un nom au fichier de sortie ; faire attention inclure dans ce nom l'extension .csv (par exemple test.csv ). Ce fichier va avoir deux usages : permettre de complter l'interprtation visuelle en regardant de prs les coordonnes, contributions, etc. des variables et individus ; et de faire des graphiques plus jolis et plus facilement modifiables, surtout pour ceux qui ne sont pas des pros de R. Attention : sur un de mes ordinateurs, si je ne prcise rien, ce fichier est cr par dfaut dans le rpertoire Mes documents (et je le dplace ensuite o je veux). Sur un autre, une bote de dialogue me demande o mettre le fichier Attention : ne pas cliquer sur le bouton Restart : cela annule tous les choix antrieurs... - Main Options : garder les choix par dfaut, ou, si l'on sait qu'on ne veut que les 2 ou 3 premiers axes, indiquer cela en face de Number of dimensions . Attention, si vous voulez faire ensuite une classification automatique (cf. infra), il peut tre utile davoir plus daxes, par exemple les 5 proposs par dfaut. - Cliquer sur Apply ou OK - Attendre un peu si les donnes sont massives. - Aller voir le graphique qui sort par dfaut dans la fentre RGui (et pas R Commander) et constater quil nest pas trs joli ni trs lisible (cf. page suivante). - partir de l, trois solutions ct graphiques : - utiliser le sous-programme dynGraph : cela impose de taper une ligne d'instructions, mais prsente beaucoup d'avantages : des graphiques lisibles, et surtout une aide l'interprtation des rsultats qui peut pargner la lecture des sorties chiffres. En ralit, les graphiques finaux obtenus ne sont pas forcment publiables 100 %, mais ils sont trs suffisants pour comprendre ses rsultats, relancer une analyse un peu diffrente, etc. quitte passer ventuellement l'option suivante pour faire un et un seul graphique dfinitif. - les faire sous Excel, partir du fichier test.csv (ou autre chose .csv) cr prcdemment. Inconvnient : cela prend un peu de temps pour chaque graphique. Si on saperoit dune erreur (de codage par exemple), il faut reprendre tout le processus. Avantage : la simplicit plus grande de lenvironnement Excel pour les utilisateurs dbutants et les possibilits plus accessibles damlioration graphique fine. - amliorer les graphiques sous R. On peut faire trs beau si on connat les instructions, mais il est dj facile de faire plus lisible que le graphique de base le temps de vrifier quil ny a pas derreur ou encore de tester diffrentes versions pour la rpartition entre variables actives et supplmentaires. On peut ensuite choisir de ne faire que le graphique final sous Excel. - Conclusion : si vous navez pas peur de taper une ligne de programme, loption 5b et surtout l'option 5c (nouveaut de 2009) ci-dessous peuvent vous faire gagner du temps. L'option 5c vous aidera aussi pour l'interprtation. Mais sinon, vous pouvez aussi passer au 6 ! Dans tous les cas, allez jeter un coup d'oeil la fin de ce tutoriel (p. 15-18) : ellipses et classifications offrent des faons complmentaires trs intressantes d'explorer vos donnes. Mais l aussi, il faudra copier-coller une ligne de programme !

5b. Amliorer les graphiques sous RCommander/FactoMineR Le graphe de R avant

Et aprs

Pour obtenir ce rsultat (pas encore hyper lisible, mais dj beaucoup plus !), nous allons utiliser le fait que les instructions en langage R non seulement saffichent dans la partie suprieure de lcran de RCommander, mais peuvent y tre modifies. Retournons dans la fentre RCommander et regardons bravement ce qui apparat en haut. Une des dernires instructions doit ressembler a :

plot.MCA(res, axes=c(1, 2), col.ind="black", col.ind.sup="blue", col.var="darkred", col.quali.sup="darkgreen", label=c("ind.sup", "quali.sup", "var", "quanti.sup"), invisible=c("ind"), title="")

plot.MCA est une instruction gnrique pour faire des graphiques partir des rsultats dune ACM (ces rsultats sont stocks dans un tableau que le logiciel a ici appel res et qui a t cr par une des instructions prcdentes). On peut y changer ou ajouter beaucoup doptions. Ici, nous vous proposons simplement de mettre des tiquettes un peu plus petites sur le graphique pour le rendre plus lisible. Pour cela, ajouter dans la parenthse de la premire instruction ci-dessus, par exemple aprs la dfinition des axes : cex=0.7 , .
plot.MCA(res, axes=c(1, 2), cex=0.7, col.ind="black", col.ind.sup="blue", col.var="darkred", col.quali.sup="darkgreen", label=c("ind.sup", "quali.sup", "var", "quanti.sup"), invisible=c("ind"), title="")

Attention, il peut galement savrer ncessaire, pour que la suite fonctionne, de sassurer que toute linstruction se suit sans passage la ligne, en supprimant tout simplement ce dernier. Dans lexemple, on avait en fait :
plot.MCA(res, axes=c(1, 2), cex=0.7, col.ind="black", col.ind.sup="blue", col.var="darkred", col.quali.sup="darkgreen", label=c("ind.sup", "quali.sup", "var", "quanti.sup"), invisible=c("ind"), title="")

(passage la ligne avant label ) ; on a tout remis la suite, en supprimant le saut de ligne. Une fois cela fait, positionner le curseur nimporte o dans cette longue instruction et cliquer sur le bouton Soumettre , qui se situe droite, vers le milieu de lcran (voir image cidessous). Retourner dans la fentre RGui et admirer le graphique obtenu. La rduction de taille des tiquettes doit dj lavoir rendu plus lisible. Vous pouvez ressayer avec cex=0.6, 0.9 ou autre pour faire varier cette taille. Dautres instructions vous permettent de changer dautres choses, selon le mme principe, pour une meilleure lisibilit (il y a une premire explication ici (en anglais), mais elle npuise pas toutes les possibilits). Cela dit, pour les non-geeks, on peut aussi se contenter de se faire une premire ide sous R et faire ensuite, si tout va bien, un graphique plus joli sous Excel

Le bouton Soumettre ----------------------------------------------------------------------- 7

Interlude : Obtenir des identifiants explicites pour les individus (dans les graphiques, classifications...) Par dfaut, R attribue vos individus un numro qui correspond l'ordre dans lequel ils taient rangs lorsque vous avez import votre fichier (il ne reconnat pas tout seul par magie que vous avez peut-tre une colonne ID avec des identifiants numriques). Cela peut s'avrer peu pratique si vous ralisez un graphe des individus (sous dynGraph par exemple) ou une classification automatique (infra) et que vous voulez savoir qui est cette femme qui ne se comporte pas comme les autres ou qui est ce mystrieux parangon numro 35 de la classe 4... Pour indiquer R o se trouve la colonne comprenant les identifiants individuels (numriques ou textuels, le nom par exemple) : Juste aprs avoir import vos donnes, ou tout autre moment ensuite, taper ou copier-coller dans la fentre de script en haut (comme ci-dessus) l'instruction qui suit (ou une variante : cf. juste en dessous), et cliquer sur soumettre : row.names(Dataset) <- Dataset$nom Dataset, c'est le nom qui a t donn automatiquement votre base lors de l'importation (si vous l'avez appele autrement, changez l'instruction). Dataset$nom se rfre la colonne o se trouve le nom (en clair) ou l'identifiant que vous voulez utiliser pour les graphiques, etc. Chez vous, cette colonne ne s'appellera peut-tre pas nom : ce sera peut-tre par exemple Dataset$ID ou Dataset$identifiant.individuel. Il faut crire, aprs $, le nom de la colonne pertinente tel qu'il s'affiche quand on fait visualiser . Nota bene : il faut que l'identifiant soit unique (si vous prenez les noms de famille et qu'il y a plusieurs fois le mme pour diffrentes lignes, a ne marchera pas). 5c. Utiliser dynGraph NB : en avril 2010, les conditions d'installation s'avrent fluctuantes (le logiciel est vraiment bien, mais encore un peu exprimental...). Paralllement, un site dynGraph est en construction sur http://dyngraph.free.fr/index.html : s'y rfrer en cas d'chec de la procdure dcrite ici ou pour d'autres prcisions... Le module complmentaire dynGraph, dvelopp par la mme quipe que FactoMineR, a plusieurs fonctions vraiment intressantes ; en contrepartie, il faut l'installer spcialement et il n'a pas encore de manuel (et parfois il m'est arriv qu'il ne se lance pas pour des raisons pas vidente : si vous avez un message d'erreur, crivez-moi, qu'on comprenne ensemble !). Mais mon sens, cela vaut la peine. Pour que le module soit activ, deux tapes pralables sont ncessaires : (a) faire une fois pour toutes : l'installer. Pour cela, depuis la fentre RGui, dans le menu Packages, choisir Installer le(s) package(s). On vous demande alors de slectionner un miroir, c'est--dire un endroit partir duquel charger les fichiers. Prenez n'importe lequel, plutt prs de chez vous... et s'il se passe des choses tranges, essayez-en un autre (parfois, cela sature Paris, alors que Lyon me semble plus efficace...). Quant tout va bien, une longue liste alphabtique s'ouvre : ce sont les dizaines de modules dvelopps pour ajouter telle ou telle fonction R. Il suffit de slectionner dynGraph et taper sur OK pour qu'il s'installe (cela peut prendre un peu de temps). Ne pas confondre avec des modules aux noms voisins, comme dynamicGraph !

L'cran lors du choix du package installer

(b) faire chaque fois que vous avez ouvert une nouvelle session RCommander, et de prfrence ds le dbut de cette session (aprs l'ouverture de la fentre ddie) : rendre possible le recours dynGraph partir de RCommander. Pour cela, dans le menu Outils de RCommander, choisir Charger des packages et slectionner dynGraph. Une fois que dynGraph est activ, raliser l'ACM comme expliqu ci-dessus. Si vous n'avez rien chang aux instructions qui s'affichent automatiquement, les rsultats de l'ACM (coordonnes, contributions, cos2...) sont automatiquement stockes dans un endroit (appel objet en langage R) qui s'appelle res (trois lettres minuscules). Nous allons maintenant demander dynGraph de raliser un graphique modifiable partir de ces rsultats. Pour cela il suffit de taper, ou de copier-coller, dans la fentre d'instructions de RCommander (se reporter au 5b ci-dessus (p. 7) pour bien comprendre o cela se passe) ceci, en respectant majuscules et minuscules : dynGraph(res) Un certain temps s'coule alors, puis une nouvelle fentre s'ouvre, o on va pouvoir explorer et amliorer le graphique, et le cas chant l'exporter. Je ne vous liste pas ici tout ce que fait dynGraph (il est toujours utile d'essayer tous les menus, clics et boutons possibles...), mais voici quelques lments intressants. * au premier abord, on y voit dj un peu plus clair, mme si le fait que les individus soient systmatiquement affichs avec les variables actives et supplmentaires peut obscurcir les choses. Mais on va voir comment y remdier. noter que dans l'exemple, nos individus sont 9

reprsents par des numros ; mais si vous avez suivi la manipulation indique en p. 8 et que vous avez leurs noms, ce sont eux que vous verrez.... noter aussi que le menu Fichier permet de changer la langue de l'interface (franais ou anglais), ce qui est trs apprciable.

* le curseur en bas gauche de l'cran (cos2 : voir les bons manuels pour sa dfinition) permet tout moment de rduire l'affichage aux points les mieux reprsents sur les axes (ie, en gros, les plus loin du centre), ce qui est dj un moyen la fois d'y voir plus clair et d'viter la surinterprtation.

10

* un simple clic sur un axe ouvre une fentre qui indique quelles variables (actives et supplmentaires) correspond le mieux cet axe, et permet de le visualiser par des labels rouges et de taille proportionnelle l'association entre la modalit et l'axe [je l'exprime en termes un peu simplets parce que je ne suis pas absolument sre de la valeur qui est reprsente, mais cela dit bien que c'est une grande aide l'interprtation... et on peut toujours se reporter aux sorties chiffres si l'on veut plus de prcisions]. Voir un exemple en page suivante. * le menu Fichier permet tout moment une exportation sous diffrents formats de graphiques. * un clic droit dans le graphique permet tout instant l'accs aux diverses fonctions aussi proposes par les boutons et/ou menus, et que je ne dtaille pas toutes (affichage de quadrillage, lgende, etc.). Mais en voici quelques-unes. - aprs un clic droit, l'option Proprits... permet de changer titre, lgende des axes, etc. - le menu Graphes permet de changer les axes reprsents, pour explorer par exemple le 3e axe trs rapidement ( l'aide du clic sur l'axe). - Habillage (bouton ou menu) permet soit de colorier les points-individus en fonction des modalits de l'une des variables (par exemple, les hommes en rose et les femmes en bleu), soit de moduler la taille des points ou intituls des variables en fonction de leurs cos2 ou contributions : beaucoup de possibilits explorer, donc.

11

Rsultat d'un clic sur l'axe vertical

Rsultat d'un habillage des variables par contribution

12

Rsultat d'un habillage des individus selon une variable qualitative, qui est ici binaire (oui en vert, non en rouge)

Enfin, il est possible, comme ci-dessus, de n'afficher que les points individus, que les points variables, ou bien une partie seulement de ces points, etc. La manuvre n'est pas trs intuitive et je vous conseille de procder par essais et erreurs, mais voici une base de travail, par exemple pour constituer un graphique ne montrant que les variables. - choisir slectionner par liste (clic droit, bouton ou menu). S'affiche une bote de dialogue listant tous les individus et toutes les variables. - faire passer tous les individus droite en cliquant sur le bouton >>

13

- une fois que vous avez cliqu sur OK, tous les individus s'affichent en vert. C'est le signe du fait que vous allez pouvoir les faire disparatre d'un seul clic. - et en effet, en cliquant sur fantme (bouton, clic droit ou menu), il ne reste que les variables (et on peut retravailler leur affichage). La mme manoeuvre (faire passer dans la colonne de droite ce qu'on veut enlever, laisser ou refaire passer gauche ce qu'on veut garder affich) permet de ne garder que les variables, que les variables actives, que les modalits d'une seule variable, etc., au choix : il suffit d'utiliser le bouton > pour faire bouger une seule modalit ou un seul individu la fois, ou >> pour tous les individus ou toutes les modalits de toutes les variables la fois. Tout cela est bien sr rversible (par des clics successifs sur fantme ou retours la liste de slection).

14

6. Faire des meilleurs graphiques sous Excel Nota bene 1 : Maintenant (2010), la macro d'Olivier Godechot existe pour Excel 2007 ! Merci Olivier, ainis qu' Jrmy Clairat qui me l'a signal. Nota bene 2 : noter que, si l'on utilise plutt Openoffice.org version 3.0, ce qui est de toute faon une bonne ide (logiciel libre avec un environnement presque identique Word, Excel, etc., et meilleur pour certaines fonctions). Dans ce cas, la simple ralisation d'un diagramme (Insertion>Diagramme) en XY (type de graphique XY(Dispersion)) partir des coordonnes donne un graphique factoriel tout fait joli, avec les bonnes tiquettes (ce que ne faisait pas Excel, d'o la ncessit de la macro). Avec un caveat : cela ne permet pas bien davoir plusieurs figurs diffrents sur le mme graphique (un pour les variables actives et un pour les supplmentaires, par exemple). Attention : faire des graphiques ne dispense pas de lire le reste de la sortie chiffre (valeurs des axes, contributions...). Cf. pour cela, par exemple, le Que sais-je ? de Philippe Cibois. - Ouvrir Excel, puis, depuis Excel, ouvrir le fichier .csv cr prcdemment. Normalement, les donnes se mettent bien en place dans les colonnes. - Remplacer tous les points du fichier par des virgules (sinon, les nombres dcimaux ne sont pas reconnus), grce la fonction Remplacer . Nota bene pour Openoffice : cette histoire de points et de virgules peut crer des problmes particuliers (reconnaissance de certains nombres comme des dates). Il peut tre plus prudent douvrir dabord le fichier .csv dans le bloc-notes ou un traitement de textes, dy remplacer les points par des virgules, et seulement ensuite douvrir le fichier obtenu sous Openoffice Calc (ou dy copier-coller son contenu en collage spcial texte non format ). - Regarder o se trouvent les parties reprsenter : coordonnes ( Coord ) pour les variables actives, supplmentaires, les individus... Par convention, colonne Dim 1 = axe horizontal ; colonne Dim 2 = axe vertical. En gnral, on va commencer par regarder les coordonnes sur ces deux axes... - Copier sur une autre feuille de calcul (onglet) ces parties des donnes qui seront utilises pour la reprsentation. - Les mettre en forme dans cette nouvelle feuille de calcul, suivant le modle donn dans le fichier macroACM97, ou macroACM2007 (pour le tlcharger, voir ici : http://www.quanti.ihmc.ens.fr/document.php?id=123, deuxime partie). Attention, au moment o vous ouvrez ce fichier, il faut autoriser les macros, sinon rien ne se passera. - Quand vous avez d'une part votre feuille avec vos coordonnes, d'autre part le fichier macroACM97, ou macroACM2007, galement ouvert, placez-vous dans votre feuille et allez chercher dans le menu Outils>Macro...>Excuter la macro ACM97 (ou 2007). Puis laissez-vous guider par les botes de dialogue. - Une fois le graphique ralis, il est possible de l'amliorer visuellement, comme tout graphique Excel (changements de couleurs, polices, etc.). 7. Faire d'autres choses avec FactoMineR... - Ne pas hsiter explorer les autres onglets, qui offrent entre autres une solution rapide et pratique pour les tableaux croiss assortis de tests de chi2 (voir Statistiques>Tables de contingence). - Certains graphiques sont galement trs intressants ( Bote de dispersion pour des donnes quantitatives par exemple). - Voir notre tutoriel pour la rgression logistique, en annexe de la page http://www.quanti.ihmc.ens.fr/document.php?id=108

15

8. Produire des graphiques en ellipse et des classifications automatiques partir des rsultats de lACM Attention : ceci nest pas un cours sur la classification automatique. Pour comprendre de quoi il retourne, on peut recourir : - sur les ellipses, et en attendant un exemple trs clairant paratre sous la plume de Franois Denord (merci lui pour des explications sur cette technique), Jean Chiche, Brigitte Le Roux, Pascal Perrineau et Henry Rouanet, Lespace politique des lecteurs franais la fin des annes 1980 , Revue franaise de science politique, vol. 50, n3, juin 2000, p. 463-468. - sur les mthodes de classification, en introduction quelques pages trs claires dans le petit manuel dOlivier Martin, Lanalyse de donnes quantitatives, Paris, Armand Colin ( 128 ), 2005 et en approfondissement au gros et bon manuel de Ludovic Lebart, Alain Morineau et Marie Piron, Statistique exploratoire multidimensionnelle, Paris, Cours, Dunod, 2004 (mme en sautant les pages purement mathmatiques, il est trs clairant). Il est possible de raliser des classifications (pas des ellipses) partir des menus de RCommander ; toutefois, cela demande une petite gymnastique. Ici sera donc privilgie lapproche par copier-coller (et petite modification) dinstructions dans la moiti suprieure de la fentre, qui a t esquisse plus haut propos des graphiques. Pour ceux qui voudraient tout de mme sy essayer, la technique pour raliser une classification partir dune ACM est la suivante : fabriquer un fichier Excel contenant les coordonnes sur les dimensions de lACM que lon veut prendre pour base, pour les individus tudis (cela peut tre le fichier dorigine augment des coordonnes, ou bien un fichier avec seulement les coordonnes, extrait du .csv cr par FactoMineR). Importer ce fichier dans RCommander dans Statistiques>Analyse multivarie>Classification, choisir K-means ou Classification ascendante hirarchique. Dans le premier cas, choisir le nombre de classes et cocher toutes les options. Dans le second cas, choisir la mthode, cocher dessiner le dendrogramme , lobserver pour choisir un nombre de classes, puis dans Statistiques>Analyse multivarie>Classification, choisir rsumer une classification hirarchique , indiquer un nombre de classes et laisser les cases coches, puis choisir Ajouter les groupes de la classification au jeu de donnes . Principal dfaut de ces mthodes : part leur placement sur le plan factoriel, elles ne fournissent pas directement dinformations pour caractriser les classes. Comme lappartenance aux classes est ajoute au jeu de donnes, il faut ensuite faire dautres traitements (tableaux croiss) pour voir ce que recouvrent ces classes. Pour plus de dtails sur ces fonctions, voir la notice du package FactoMineR (en anglais).

16

Ellipses Aprs avoir ralis une ACM comme ci-dessus, copier-coller dans la fentre dinstructions celle qui suit (sur une seule ligne !) et appuyer sur Soumettre (quand le curseur est dans linstruction) :
plotellipses(res, keepvar = "all", axis = c(1, 2), means=TRUE, level = 0.95, magnify = 2, cex = 0.3, pch = 20, pch.means=15, type = c("g","p"), keepnames = TRUE, namescat = NULL)

Aller voir le graphique dans la fentre RGui (voir un exemple ci-dessous). Cette version de linstruction reprsente toutes les variables (actives et supplmentaires), ce qui peut faire trop. Pour obtenir une reprsentation variable par variable, remplacer all dans linstruction cidessus par un nom de variable (tel que lu par RCommander : attention aux points, etc. dans les intituls visualisez votre base de donnes sil y a un doute). Par exemple :
plotellipses(res, keepvar = "syndicats", axis = c(1, 2), means=TRUE, level = 0.95, magnify = 2, cex = 0.5, pch = 5, pch.means=25, type = c("g","p"), keepnames = TRUE, namescat = NULL)

Graphique gnral (donnes inspires dun travail ralis avec Danile Fraboulet)

17

Graphique sur la variable syndicats

18

Classifications automatiques Aprs avoir ralis une ACM, copier-coller dans la fentre du haut linstruction suivante (sur une seule ligne !) et cliquer sur Soumettre :
HCPC(res, nb.clust=0, consol=TRUE, iter.max=10, min=3, max=NULL, metric="euclidean", method="ward", order=TRUE, graph.scale="inertia", nb.par=5, graph=TRUE)

Cette instruction ralise la classification partir dautant de dimensions de lACM que vous en avez demand prcdemment (5 par dfaut). Elle produit trois types de rsultats. noter que le logiciel utilise indiffremment, comme synonymes, les mots classe , cluster et catgorie (category). 1. dans le fentre RGui , un dendrogramme interactif quon peut couper lendroit souhait pour choisir le nombre de classes. Le logiciel suggre un nombre de classes relativement optimal avec la barre horizontale, mais on peut en choisir un autre en cliquant un autre niveau (je vous laisse dessein aller voir un manuel pour apprendre vraiment lire le dendrogramme et comprendre o le couper ... mme si cela peut tre un peu intuitif, un moment il faut comprendre ce qu'on fait !). avant de couper

19

aprs avoir coup : on voit les couleurs qui seront celles des classes (et les proximits entre elles)

2. dans la mme fentre (tout a se superpose), outre un graphique 3D qui n'apporte pas beaucoup de plus (au lecteur moyen du moins), un graphique situant les classes dans le premier plan factoriel, avec des couleurs ajoutes la projection des individus :

20

Sur cette base, on peut dj reprer un peu quel groupe appartient chaque individu, mais il faut encore comprendre comment sont construits ces groupes, ce qui est possible grce aux indications donnes dans la fentre de sortie RCommander. 3. Cette fois dans la fentre RCommander, un trs grand nombre de renseignements chiffrs, touffus et redondants, mais essentiels pour l'interprtation. Reprenons ce fichier partir de la fin (quand vous revenez la fentre RCommander, c'est la fin que vous voyez), sans commenter (au moins pour l'instant !) les parties moins utiles pour une premire interprtation. Trois morceaux vont nous intresser. a. Deux listes dindividus : - les parangons , individus moyens de chaque classe, situs au centre du nuage de points de leur couleur : indpara ; - les individus les plus extrmes de la classe, les plus distants des autres classes, les plus loigns des autres couleurs sur le graphique : ils reprsentent en quelque sorte l' idal-type au sens d'accentuation des caractristiques distinctives, et non pas l'individu typique au sens de moyen : inddist.

Ces individus sont dsigns par leur numro, sauf si vous avez pris la prcaution (cf. supra p. 8) de faire reconnatre les noms par le logiciel. Par exemple, ci-dessus, dans le cluster 1, le paragon est Ernault (et un moindre degr Hochstetter, etc.) et lextrme Venot (et un moindre degr Diebold, etc.), ce que confirme lillustration plus haut : Ernault est au centre du nuage de points noirs, le Venot lextrme (gauche, en l'occurrence, les autres groupes, rouge et vert, tant droite). Cela permet de faon intressante de revenir au qualitatif et mme au narratif...

21

b. Une description de ce que reprsente chaque classe, par un simple croisement entre les classes et les variables d'origine. En fait, le logiciel ralise tout simplement un tableau crois pour chaque variable (croisant l'appartenance aux classes et cette variable), assorti d'un test de chi-2. videmment, quand on a beaucoup de variables, c'est bien qu'il fasse tout cela automatiquement... et il prsente les rsultats de faon synthtique, ce qui permet de comprendre ce qui dfinit chaque classe. Ces rsultats sont introduits par
$desc.var $test.chi2

qui indique simplement de faon trs gnrale quelles sont les variables les plus corrles au dcoupage en classes. Par exemple dans le cas ci-dessous (cas de l'UIMM pris en exemple dans le Repres), ce dcoupage est trs corrl avec le type d'entreprise et le fait de tenir ou non le poste de secrtaire dlgu, un peu moins corrl mais corrl quand mme avec le fait de tenir le poste de prsident, et pas corrl significativement avec les variables qui ne sont pas dans cette liste (comme la date d'entre la direction de l'UIMM : cela veut dire que nos trois types sont prsents dans toutes les gnrations).
$desc.var $test.chi2 p.value df 3.511342e-14 4 4.371484e-08 2 5.355945e-06 6 2.761383e-05 8 5.891589e-05 6 1.254588e-04 8 2.587376e-03 2 2.718414e-03 2 3.254626e-03 2 5.183036e-03 2 1.000547e-02 4 1.348569e-02 4 1.490067e-02 2

Entreprise poste.sd Age.entre.premier.poste Formation Dates syndicats CA.banques Organ..Synd vice.pdt CA.autres.sts Org.con. CA.sts.mt.min pdt $category

Mais les dtails classe par classe sont plus parlants et plus intressants. Ils sont introduits par Voyons leur lecture sur un exemple (toujours l'UIMM). noter que suivant la largeur de la fentre RCommander, tout ce qui suit peut ne pas s'afficher sur une seule ligne. C'est un peu moins commode, mais tous les chiffres sont bien l...
$category $category$`1` Cla/Mod Entreprise=esefam 87.50000 Age.entre.premier.poste=ageinconnu 91.66667 Dates=dateinconnue 91.66667 syndicats=regio 90.90909 Formation=centrale 90.00000 Organ..Synd=os0 50.00000 CA.autres.sts=CAutre0 51.51515 vice.pdt=vpoui 47.22222 Org.con.=ecoloc 83.33333 pdt=pdtnon 42.22222 pdt=pdtoui 0.00000 Formation=poly 12.50000 Age.entre.premier.poste=51a60 11.76471 vice.pdt=vpnon 11.76471 CA.sts.mt.min=CAmet10plus 0.00000 syndicats=forges 13.04348 Dates=avant1860 0.00000 CA.autres.sts=CAutre1plus 10.00000 Entreprise=esegroupe 16.66667 Organ..Synd=os1plus 0.00000 Mod/Cla 73.68421 57.89474 57.89474 52.63158 47.36842 100.00000 89.47368 89.47368 26.31579 100.00000 0.00000 10.52632 10.52632 10.52632 0.00000 15.78947 0.00000 10.52632 26.31579 0.00000 Global 30.18868 22.64151 22.64151 20.75472 18.86792 71.69811 62.26415 67.92453 11.32075 84.90566 15.09434 30.18868 32.07547 32.07547 18.86792 43.39623 22.64151 37.73585 56.60377 28.30189 p.value 8.967667e-07 1.964274e-05 1.964274e-05 8.439453e-05 3.316286e-04 5.938766e-04 4.087201e-03 2.238273e-02 3.680578e-02 4.096974e-02 4.096974e-02 3.711729e-02 2.238273e-02 2.238273e-02 1.344966e-02 4.870722e-03 4.110860e-03 4.087201e-03 2.199936e-03 5.938766e-04 v.test 4.913036 4.268914 4.268914 3.931565 3.589252 3.434396 2.871352 2.283810 2.087912 2.043836 -2.043836 -2.084472 -2.283810 -2.283810 -2.471635 -2.815462 -2.869527 -2.871352 -3.061823 -3.434396

22

La dernire colonne (v.test : une mesure d'association entre variables) nous permet d'abord de distinguer les modalits positivement corrles avec la classe (surreprsentes : ici de entreprise familiale non prsident ) celles qui sont ngativement corrles avec la classe, i. e. sous-reprsentes en son sein (les autres, qui ont une v.test ngative). Toutes les modalits numres ici sont significativement corrles avec la classe ; toutes celles qui ne sont pas numres ici ne le sont pas. Les plus corrles positivement sont au dbut, les plus corrles ngativement sont la fin (ici : entreprise familiale , notamment, vs. entreprise groupe , notamment). Les deux premires colonnes mritent d'tre lues avec attention, car elles sont concrtes et grappantes. - cla/mod indique quelle part (pourcentage) de tous les individus prsentant cette modalit se retrouve dans cette classe (ce cluster, cette catgorie). - mod/cla indique quelle part (pourcentage) de tous les individus de la classe prsentent cette modalit. Ce sont deux faons de parler de sur-reprsentation, qui, selon les effectifs totaux de la modalit et de la classe, peuvent paratre assez diffrentes. Dans notre exemple, prs de 90 % des chefs d'entreprise familiale, et 90 % des dirigeants de syndicats rgionaux, se trouvent classs dans la classe 1. En revanche, seulement 74 % des individus classs dans cette classe 1 ont une entreprise familiale, et 53 % dirigent un syndicat rgional. Ou encore, on ne trouve aucun prsident de l'UIMM dans la classe 1, mais on y trouve seulement 42 % des non prsidents ... Tout cela reprsente souvent un utile rappel de la diversit l'intrieur de chaque profil... et donc de ce que c'est que de faire une typologie (mme qualitativement !). c. Enfin, beaucoup plus haut dans la sortie RCommander, on retrouve l'numration des caractristiques de chaque individu (comme dans le fichier de donnes import), avec la fin une colonne ajoute, qui indique dans quel groupe R a class lindividu ; Tout cela peut prendre beaucoup de place : chaque individu peut apparatre plusieurs fois jusqu ce que toutes ses variables (colonnes) soient mentionnes. Et ce qui est nouveau est dans la dernire... Tout cela se trouve au tout dbut de la sortie, aprs $data.clust On retrouve par exemple, aprs d'autres variables importes, ceci :
Org.con. entree.UIMM clust Venot ecoloc ent1918a39 1 Clement noneco entap1939 1 Diebold ecoloc entap1939 1 Canisy ecoloc entap1939 1 Lefort noneco entap1939 1 PinardA noneco entav1918 1 Hochstetter noneco ent1918a39 1 Ernault noneco ent1918a39 1 (... autant de lignes en plus que d'individus en plus)

La colonne clust correspond l'appartenance de classe : ici, on a des membres de la classe 1. Inconvnient : la colonne indiquant laffectation de chaque individu une classe nest pas ajoute automatiquement votre base de donnes et aucune option lintrieur mme de linstruction nest prvue pour vous permettre de la rcuprer aisment sous forme de tableau. Cependant, la base avec cette colonne ajoute nous est montre : on peut copier-coller la partie pertinente, ou bien demander lexportation de l'ensemble dans un fichier .txt (ensuite lisible sous Excel : louvrir en indiquant lespace comme sparateur). Pour linstant, je nai pas trouv plus lgant que ce qui suit pour crer ce fichier (si vous avez mieux, crivezmoi !) :

23

1. reproduire linstruction ci-dessus en changeant juste le dbut, et faire nouveau Soumettre : les rsultats chiffrs ne sont plus montrs, mais stocks dans lobjet dc .
dc <- HCPC(res, nb.clust=0, consol=TRUE, iter.max=10, min=3, max=NULL, metric="euclidean", method="ward", order=TRUE, graph.scale="inertia", nb.par=5, graph=TRUE)

2. exporter la partie de lobjet dc qui contient les donnes et la colonne supplmentaire :


write.table(dc$data.clust, "dc.txt")

Le nom du fichier crer peut videmment tre adapt, et il est possible dindiquer le chemin pour le faire crer un endroit prcis (par exemple "C:/Documents and Settings/claire/Mes documents/mthodo/dc.txt"). Par dfaut, chez moi , il arrive dans Mes documents .

24

Вам также может понравиться