Analyse des correspondances multiples (ACM ou AFCM) FactoMineR

Cette vidéo tutorielle, présentée en français, montre pas à pas comment réaliser une Analyse des Correspondances Multiples (ACM) avec le package R FactoMineR en utilisant le jeu de données « tea ». Le présentateur charge la librairie, décrit la distinction entre variables actives (1‑18) et variables supplémentaires (quantitatives : 19, qualitatives : 20‑36), puis lance la fonction MCA et stocke le résultat dans `res.mca`. Il explique comment obtenir un résumé complet via `summary.mca` (ou simplement `summary`), en détaillant les valeurs propres, les pourcentages d’inertie, les coordonnées, contributions, cos² et valeurs‑test pour les individus, les modalités actives et les variables supplémentaires. Ensuite, il explore les graphiques générés par défaut (variables quantitatives supplémentaires, individus, modalités) et montre leurs limites de lisibilité. Le cœur du tutoriel porte sur l’utilisation de `plot.mca` pour créer des graphiques personnalisés : masquer ou afficher individus/modaux, ajuster la taille de la fenêtre, la police (`cex`), l’argument `autolab`, la sélection de points selon le cos² ou la contribution (`selectMode`, `select`, `nbElements`, `unselect`), la gestion de la transparence et des couleurs pour une exportation PowerPoint, ainsi que le zoom et le choix d’axes (ex. `axes = c(3,4)`). Le présentateur conclut en montrant comment combiner ces options pour obtenir des visualisations claires et exploitables des dimensions de l’ACM.
Chapters
L'objectif de cette vidéo est de montrer comment faire une analyse des correspondances multiples avec FactoMineR. Je vais charger la librairie FactoMineR. Je vais montrer comment utiliser le module graphique et faire une ACM avec FactoMineR. Pour ce faire, je vais prendre l'exemple de la fonction MCA. Je tape ?MCA pour avoir l'aide de la fonction et en bas de cette aide il y a plusieurs exemples et je vais utiliser un exemple sur des données de thé. Je vais charger le jeu de données et prendre la ligne de commande associée à ce jeu de données. Alors le jeu de données thé est chargé, je vais réaliser une ACM sur le jeu de données thé Je précise ici que la variable numéro 19 est une variable quantitative supplémentaire et je précise que les variables de 20 à 36 sont des variables qualitatives supplémentaires. C'est-à-dire que les variables actives, les variables qui vont servir à construire les dimensions de l'ACM, sont les variables de 1 à 18. Donc je peux lancer cette ligne de code et les résultats vont être dans l'objet res.mcm. L'analyse est réalisée, les résultats sont dans ResMCA et on a plusieurs graphes qui sont apparus: un graphe avec la variable quantitative, un graphe avec les variables qualitatives, un graphe des individus et un graphe avec les modalités. Je reviendrai sur les graphes la suite. Dans un premier temps, on va voir comment avoir un résumé de l'ensemble des résultats. Pour ce faire, je vais utiliser la fonction summary.mca. Alors la fonction summary.mca, je peux l'appeler juste par summary puisque c'est une fonction générique. Je fais Entrée. Je vais agrandir un petit peu la fenêtre pour avoir tous les résultats sur une seule ligne. Summary.res.mcl et je vais voir les résultats depuis le début. Dans un premier temps, on rappelle la ligne de commande qui a été lancée pour faire l'analyse. Ensuite, on a un tableau avec les valeurs propres et les pourcentages de variance, pourcentages d'inertie associés à chaque dimension. Par exemple, la première dimension explique 9,88% de l'inertie totale, la deuxième dimension 8,1%, On a ensuite les résultats sur les individus. Ici les individus sont juste des nombres, des numéros de 1 à 300. Il y a 300 individus dans le jeu de données. Et pour ces individus, on a leurs coordonnées sur la première dimension, la contribution de chaque individu à la construction de cette première dimension. Donc le premier individu a contribué à 0,6% à la construction de cette première dimension. Les pourcentages sont assez faibles ici puisqu'il y a 300 individus. Et puis on a un indicateur de la qualité de la représentation sur l'axe, donc 0.14. 0, ça veut dire que l'individu est très mal projeté sur l'axe et 1, l'individu est parfaitement projeté sur l'axe. Ensuite on a les mêmes résultats pour la deuxième dimension, coordonnées, contribution, cosinus carré, et la troisième dimension, coordonnées, contribution, cosinus carré. Par défaut, on a les résultats pour les 10 premiers individus uniquement, mais on peut avoir les résultats pour l'ensemble des individus. Pour ce faire, il suffit de prendre l'argument nbElements et de le mettre égal au nombre d'individus qu'on désire avoir. Donc si je veux avoir pour les 50 premiers individus, je vais mettre nbElements= 50, et si je veux avoir pour tous les individus, je vais prendre nbElements= inf. Infinity. Ensuite on a les résultats pour les variables qualitatives actives et notamment les catégories, les modalités des variables qualitatives. Donc la modalité breakfast: est-ce qu'on prend du thé au petit-déjeuner? La modalité oui au petit-déjeuner, la modalité non au petit-déjeuner, etc. On a toutes les modalités et ici les résultats pour les 10 premières uniquement. On a les informations coordonnées, contribution, cosinus carré et on a en plus une valeur-test. La valeur-test est une valeur qui sera comprise entre -2 et 2 le plus souvent et si la valeur-test est supérieure à 2 en valeur absolue, ça signifie que la coordonnée est significativement différente de 0. Ici par exemple pour breakfast, la la valeur-test est supérieure à 2, donc la coordonnée de breakfast est significativement positive. On a également les résultats pour les variables. Les résultats pour les variables sont mesurés par le rapport de corrélation, le rapport de corrélation sur l'axe. Pour la variable breakfast qui a les 2 modalités breakfast et pas breakfast, on prend du thé au déjeuner ou on ne prend pas de thé au déjeuner, Le rapport de corrélation est égal à 0,025 avec la première dimension, 0,026 avec la deuxième et 0,215 avec la troisième. Cet indicateur permet de voir si globalement une variable est liée à une dimension. On a le même type de résultats pour les variables qualitatives supplémentaires. Là encore, les résultats pour les catégories. Les modalités avec les coordonnées, les cos² et la valeur-test. Il n'y a pas ici les résultats pour les contributions puisque ces modalités supplémentaires ne participent pas à la construction des axes. Et puis on a le rapport de corrélation des variables supplémentaires qualitatives. Et enfin on a le résultat pour les variables quantitatives supplémentaires. Dans notre exemple, il y a une seule variable quantitative supplémentaire qui est l'âge et donc ce qui est fourni ici c'est le coefficient de corrélation entre la variable âge et chacune des dimensions, chacune des 3 premières dimensions. Donc voilà pour les principaux résultats de l'ACM. On peut maintenant revenir sur les graphes qui ont été obtenus par défaut. Je disais un graphe des variables quantitatives supplémentaires avec le cercle des corrélations et puis toutes les variables quantitatives qui sont projetées. Dans notre exemple, il y a une seule variable quantitative. Un graphe avec toutes les variables. En abscisse, on a le rapport de corrélation pour les variables qualitatives ou le coefficient de corrélation pour les variables quantitatives avec la première dimension et puis en ordonnée le rapport de corrélation ou le coefficient de corrélation avec la deuxième dimension. En rouge, on a les variables qualitatives actives en vert les variables qualitatives supplémentaires et en bleu on voit ici une variable âge qui est la variable quantitative. Donc ce graphe va être intéressant pour visualiser quelles sont les variables qui sont les plus liées à chacune des dimensions. On a un graphe avec tous les individus et puis on a un graphe avec toutes les modalités actives et supplémentaires. On voit que ces graphes ne sont pas forcément très lisibles et donc on va voir ici comment construire de nouveaux graphes et rendre ces graphes un peu plus lisibles. Pour ce faire, je vais utiliser la fonction plot.mca que je peux appeler avec plot. L'objet de résultat c'est res.mca. Si je fais ce graphe, je vais créer une nouvelle fenêtre graphique. Si je fais ce graphe, on voit qu'on a un graphe avec à la fois les individus, les modalités des variables qualitatives actives et des variables qualitatives supplémentaires. Le graphe est très peu lisible ici. C'est un traitement d'enquête avec beaucoup d'individus donc c'est normal que le graphe ne soit pas très lisible. Alors comment peut-on faire pour améliorer le graphe? Je vais rester sur ce graphe et je vais dire par exemple que je ne veux des libellés que pour les modalités actives, donc les variables, et les modalités supplémentaires. Je ne veux pas de libellés pour les individus. Vous voyez que j'ai les points qui correspondent aux individus sans libellés. Ça améliore un petit peu la lisibilité du graphe mais on voit qu'on va avoir du mal quand même à distinguer tous les points et à bien voir les libellés. Donc ce qui peut être conseillé c'est de construire d'abord un graphe avec juste les individus Pour ce faire, je vais rendre invisibles les modalités actives et les modalités supplémentaires. J'ai un graphe avec les individus, avec tous mes individus. On peut analyser ce graphe, voir par exemple s'il n'y a pas 2 ou plusieurs groupes d'individus. Les numéros d'individus ici peuvent éventuellement être intéressants pour voir s'il y a des individus particuliers et je sais pas s'il y a autre chose à dire sur ce graphe. Donc voilà, c'est un premier graphe qui peut être utile et on n'a pas besoin d'en faire plus sur les individus. On peut maintenant se focaliser sur les variables qualitatives. Je vais rendre cette fois invisibles les individus et visualiser uniquement les modalités des variables qualitatives actives et supplémentaires. On voit ici que les libellés se chevauchent beaucoup et donc il est très difficile de lire les noms des variables, les noms des modalités. Il y a un argument qui s'appelle autolab qui va positionner automatiquement les labels. Par défaut, cet argument est égal à auto et s'il y a moins de 50 libellés à placer, le programme va essayer d'optimiser le placement des libellés. S'il y a plus de 50 libellés à placer, le programme ne va pas essayer d'optimiser parce que ça prend un peu de temps. Mais si on veut l'obliger à optimiser, je peux mettre autolab= yes et le programme va essayer d'améliorer le placement des libellés. Les libellés ici se chevauchent un petit peu moins mais il y a vraiment beaucoup d'informations, beaucoup de libellés et donc on n'a pas tellement de lisibilité. On peut encore améliorer ce graphe. Première astuce, ça va être d'augmenter un petit peu la taille de la fenêtre. Pour avoir un petit peu plus de place, donc ce sera plus facile de positionner les libellés. J'ai un petit peu plus de place, c'est toujours pas excellent. Ce que je peux faire également, c'est diminuer un petit peu la police en utilisant l'argument cex= 0.7. Je vais diminuer la police des libellés. On a déjà ici un peu plus de lisibilité sur le graphe, mais on voit qu'il y a quand même tout un paquet de modalités dont on ne peut pas lire le libellé. Autre possibilité, c'est de rendre invisibles, en plus des individus, les variables qualitatives supplémentaires. Je n'aurai que les modalités en rouge et là le graphique est à peu près lisible. Puis un autre graphe avec cette fois uniquement les variables supplémentaires, donc je mets en invisible les variables actives, les modalités actives. Là j'ai un graphe avec les modalités supplémentaires qui est bien lisible. Maintenant si je veux le graphe avec à la fois les modalités actives et les modalités supplémentaires, une autre possibilité c'est de sélectionner certaines modalités. Je vais prendre l'argument selectMode et dire que je veux sélectionner en fonction du cos² les plus élevées, donc les qualités de représentation les plus élevées. Donc je prends les 10 modalités actives et les 10 modalités supplémentaires qui ont les qualités de représentation les plus élevées. Et donc on a les libellés qui sont écrits pour les 10 modalités actives et les 10 modalités supplémentaires qui ont les cos² les plus élevés. Et puis les autres points sont écrits avec une certaine transparence et sans libellé. Un petit inconvénient ici pour ces points: si on veut reprendre le graphe sur PowerPoint par exemple, si on copie-colle le graphe dans PowerPoint, la transparence n'est pas gérée par PowerPoint. Ce que je conseille, c'est de mettre unselect= une couleur, grey 70 par exemple. Les modalités qui ne sont pas sélectionnées, donc qui ont un cosinus carré qui n'est pas trop grand, seront en grisé et là le graphe peut être retravaillé sur PowerPoint. Mais on perd la notion de modalité active ou supplémentaire. On n'a plus la couleur pour dire si c'est actif ou supplémentaire. Voilà pour les sélections des modalités. J'ai sélectionné en fonction des cos², je peux sélectionner en fonction des contributions, donc sélectionner les modalités, les 20 modalités par exemple, qui ont le plus contribué à la construction des axes. Alors vous voyez les 20 modalités qui ont le plus contribué à la sélection des axes. Évidemment les modalités supplémentaires n'apparaissent pas ici, elles n'ont pas contribué à la construction des axes. Et puis on a un graphe qui est assez lisible avec les modalités les plus intéressantes, en tout cas celles qui ont le plus contribué à la sélection des axes. Voilà pour le graphe des modalités. Sur le graphe des individus, c'était pas forcément très intéressant pour moi de sélectionner les individus, mais je peux de la même façon sélectionner les individus en faisant select= contrib 20. Je vais sélectionner les 20 individus qui ont le plus contribué à la construction des axes. Je vais mettre en supplémentaire les modalités actives et illustratives. Voici les 20 individus qui ont le plus contribué, donc évidemment ce sont les individus les plus extrêmes. Et puis pour les autres individus, on a juste le point avec une certaine transparence. C'est vraiment le même principe pour l'utilisation de la sélection pour les individus avec l'argument select ou pour les modalités avec selectMode. Et là encore, si je veux retravailler le graphe sur PowerPoint, j'ai intérêt à mettre unselect= une couleur. Je peux mettre par exemple du vert et les points qui ne sont pas sélectionnés, donc qui n'ont pas contribué le plus, sont en vert et sont libérés. Je peux revenir maintenant sur d'autres graphes, construire le graphe des variables, choix= quanti.sup, Là, c'est pour avoir le graphe des variables quantitatives supplémentaires. Ce graphe des variables quantitatives supplémentaires, en général on a assez peu de variables quantitatives supplémentaires dans notre analyse, mais si on en a beaucoup, là encore on peut sélectionner certaines variables. Si les libellés de ces variables sont très longs, il est intéressant d'agrandir un petit peu la fenêtre pour que le libellé de la variable puisse être écrit sur la droite ici. Puis je peux construire le graphe des variables. Là encore, le graphe des variables est assez peu lisible. Ce que je peux faire déjà, c'est zoomer par exemple. On sait que les coordonnées de ces variables sont des rapports de corrélation ou des coefficients de corrélation au carré et donc ça varie entre 0 et 1 sur chaque dimension. C'est pour ça que le graphique est toujours avec un carré entre 0 et 1 mais on peut zoomer un petit peu pour voir plus clair. Donc là je pourrais par exemple zoomer entre 0 et 0.6. Je vais faire xlim= c . On a zoomé un petit peu. Là encore j'ai beaucoup de points qui se superposent. Je peux mettre en invisible les modalités des variables qualitatives supplémentaires. J'ai un graphique avec uniquement les variables qualitatives actives et les variables quantitatives supplémentaires. Si je veux juste les modalités des variables qualitatives actives, je mets en supplémentaire également la variable quantitative. J'ai un graphe avec uniquement les modalités des variables actives et je peux également mettre uniquement les variables supplémentaires, aussi bien les variables quantitatives que les variables qualitatives. Là, toutes les variables ont une coordonnée très proche de 0, donc c'est assez peu lisible, mais ça veut dire que l'information n'est pas très intéressante ici. Voilà pour les principaux graphes. Si je reviens sur le graphe des modalités, Par exemple, je peux faire le graphe avec les axes 3 et 4 en mettant l'argument axes=3,4. Là c'est le graphe des individus. Je peux également faire le graphe 3-4 avec les modalités en sélectionnant les modalités qui ont le plus contribué à la construction des axes. Voilà le graphe 3-4 et les modalités qui sont proposées ici sont les modalités qui ont le plus contribué à la construction de ce plan. Ces axes 3 et 4. Donc voilà pour les aspects graphiques avec FactoMineR et avec la fonction plot.mca.
More from Yamossoun

Algorithme de calcule de la racine carrée par dichotomie #dichotomy #squareroot #algorithm









