Analyse des correspondances avec FactoMineR

Cette vidéo montre, pas à pas, comment réaliser une analyse des correspondances (CA) avec le package FactoMineR en R, en utilisant le jeu de données intégré « children ». Le présentateur charge la librairie, décrit la structure du tableau de contingence (lignes = raisons de ne pas vouloir d’enfants, colonnes = niveau d’études et classes d’âge) et distingue les lignes/colonnes actives des lignes/colonnes supplémentaires. Il exécute la CA, stocke le résultat dans l’objet `ares.children`, puis explore le résumé (`summary`) qui fournit les valeurs propres, les pourcentages d’inertie, les coordonnées, les contributions et les cos² pour les dimensions principales. Le cœur du tutoriel porte sur le module graphique : utilisation de `plot`, options pour masquer les éléments supplémentaires, ajout d’ombres (`shadow=TRUE`), réduction de la taille des libellés (`cex`), sélection des points selon un seuil de cos² (> 0,7) ou de contribution, gestion de la transparence (`unselect`) et substitution par une couleur claire pour la compatibilité PowerPoint. Le présentateur montre comment choisir les axes (ex. 1‑2, 1‑3), sauvegarder le graphique en PDF/PNG/JPEG, et ajuster manuellement les libellés. Enfin, il illustre l’utilité de ces options pour des jeux de données textuelles volumineux où l’on veut mettre en avant les mots les plus contributifs ou les mieux représentés.
Chapters
L'objectif de cette vidéo est de montrer comment utiliser FactoMineR pour faire une analyse des correspondances et notamment le module graphique de FactoMineR. Dans un premier temps, je vais charger la librairie FactoMineR. Je vais utiliser le jeu de données children qui est disponible dans FactoMineR. On peut visualiser le jeu de données. Ce jeu de données correspond à un tableau de contingence avec en ligne différentes raisons pour lesquelles un couple peut ne pas désirer d'enfant et en colonne le niveau d'études le plus élevé pour le couple. On a également 3 colonnes qui correspondent à la classe d'âge ou à l'âge: environ 30 ans, 50 ans et plus de 50 ans. Et donc on va faire une analyse des correspondances sur ce tableau. Les 15 premières lignes vont correspondre à des lignes actives, les dernières avec des effectifs très faibles vont être considérées comme des lignes supplémentaires. De même, on va prendre comme colonnes actives les 5 premières colonnes uniquement, les 3 dernières correspondant à une autre question, la classe d'âge, et donc vont être utilisées comme des informations supplémentaires. Je vais faire une analyse des correspondances et mettre les résultats dans un objet que j'appelle arès.children. Je précise que les lignes de 15 à 18 sont supplémentaires et que les colonnes de 6 à 8 sont supplémentaires. Voici les résultats de l'analyse avec le graphique qui sort par défaut. Dans un premier temps, on peut avoir un résumé des résultats en tapant summary. C'est la fonction summary.ca qui est utilisée mais elle peut s'appeler avec juste summary. Et donc on a un ensemble de résultats. Tout d'abord, la ligne de code est rappelée, puis on a un tableau avec les valeurs propres et les pourcentages d'inertie associés à chacune des dimensions. La première dimension explique 68% de l'inertie, la deuxième 17%, la troisième 13% ou 14%. Ensuite, on a les résultats sur les lignes. Actives, donc par défaut seulement les 10 premières lignes. On a la coordonnée de chaque ligne sur la première dimension, la contribution de cette ligne à la construction de la première dimension et la qualité de représentation qui varie entre 0 et 1 et qui est mesurée par le cosinus carré. Donc si c'est proche de 1, ça veut dire que le point est parfaitement représenté sur l'axe. Là, ce sont les résultats sur la première dimension, puis on a ensuite les résultats sur la deuxième dimension puis la troisième. Par défaut, on a les résultats sur les 3 premières dimensions. On a les résultats sur les colonnes également avec la coordonnée sur la première dimension, les contributions, les cos² et puis même chose sur la deuxième dimension, troisième dimension. Ensuite, nous avons les résultats sur les lignes supplémentaires donc avec les coordonnées, et la qualité de représentation. Évidemment pas de contribution puisque les lignes supplémentaires ne contribuent pas à la construction des axes et de même pour les colonnes supplémentaires. Alors on peut vouloir récupérer les résultats pour tous les éléments. Je vais taper nb_elements= inf pour signifier que je veux le résultat pour toutes les lignes et toutes les colonnes. Donc là j'ai les résultats cette fois pour les 14 lignes actives. Et on peut préciser qu'on veut que les résultats soient mis dans un fichier que je nomme ici essai.txt. Alors revenons maintenant aux aspects graphiques et donc au graphique. Alors je vais mettre la fenêtre comme ça et voir ce que ça donne sur la fenêtre graphique. Pour le graphique, la commande est plot et ça me permet d'avoir un graphique avec les résultats. Dans ce graphique, je peux préciser par exemple que je ne veux pas que les lignes supplémentaires apparaissent et que les colonnes supplémentaires apparaissent. Je veux les rendre invisibles. Les lignes supplémentaires et les colonnes supplémentaires. Et donc là, j'ai un graphique avec uniquement les éléments actifs: lignes et colonnes actives. On peut voir ici par exemple que pour le mot future, il est un petit peu au-dessus de l'axe. Pour que ce soit un petit peu plus joli, on peut écrire shadow= TRUE pour signifier qu'on veut une petite ombre sur chaque sur chaque libellé. Et donc là, en général, par exemple pour une Employment, c'est un petit peu plus lisible parce qu'on ne voit plus l'axe en dessous. Vous voyez que les libellés ici ne se superposent pas trop parce qu'en fait il y a un petit algorithme qui va calculer la position optimale entre guillemets des libellés. Maintenant, si on a énormément de libellés, il se peut que les libellés se chevauchent un peu. Je refais mon graphique avec tous mes individus. Ici ça marche à peu près bien mais si on avait encore plus de libellés, une petite astuce est de réduire la police des libellés en mettant cex= 0.8. Donc cex= 0.8 signifie que le libellé sera plus petit. cex= 1, ça donne la taille des libellés par défaut. Et donc là on a des libellés plus petits et donc beaucoup moins de recouvrement entre 2 de l'en-tête. On peut aussi sélectionner les éléments qui nous intéressent, par exemple certaines lignes. Là, je vais sélectionner les lignes telles que le cosinus carré est supérieur à 0,7. Et je peux aussi sélectionner les colonnes telles que le cosinus carré est supérieur à 0,7. Là, je fais une sélection à la fois sur les lignes et les colonnes. Et donc les éléments qui ont une qualité de projection supérieure à 0.7 sur ce plan, sur ce plan 1-2, sont écrits. Et puis pour les autres qui ont un cos² inférieur à 0.7, eh bien les points sont écrits avec une certaine transparence et le libellé n'est pas indiqué. Je peux jouer sur la transparence en utilisant l'argument unselect= 0. Je ne veux pas de transparence donc les points sont écrits de la même couleur que pour les éléments qui ont un cos² supérieur à 0,7. Ou au contraire, je peux supprimer en mettant une transparence totale, je peux supprimer les points et donc ne voir que les points qui ont un cos² supérieur à 0,7. Petit inconvénient si je prends une certaine transparence, c'est que ce graphique-là ne peut pas être copié-collé dans PowerPoint parce que les points disparaissent. PowerPoint ne gère pas la transparence. Alors on peut bien entendu sauvegarder le fichier, Fichier, Sauver sous et le sauvegarder en fichier PDF, fichier PNG ou fichier JPEG. Et donc là, la transparence des points est bien gérée. Mais si vous voulez copier-coller et rebouger à nouveau les libellés dans PowerPoint par exemple, eh bien ce ne sera pas géré. Donc pour ce faire, ce qu'il est possible de faire, c'est de mettre unselect égal une couleur. Ici, je définis la couleur gris 70 qui est un gris clair et donc les points qui ne sont pas sélectionnés sont en gris clair et cette fois seront visibles dans PowerPoint. Je peux retoucher le graphe et bouger éventuellement certains libellés. Alors je peux revenir sur ma sélection et je peux sélectionner 4 lignes qui ont le cosinus carré le plus élevé et les 3 colonnes qui ont le cosinus carré le plus élevé. Voilà les 4 lignes qui ont le cos² le plus élevé, les 4 lignes actives qui ont le cos² le plus élevé, les 4 lignes supplémentaires qui ont le cos² le plus élevé. On distingue les lignes actives en bleu assez clair et les lignes supplémentaires en bleu plus foncé et en italique. Les colonnes, même chose, on récupère les 3 colonnes qui ont le cos² le plus élevé. Pour les colonnes actives, en rouge vif. Et les colonnes supplémentaires en rouge très foncé et en italique. Alors on peut, plutôt que d'utiliser les cos², s'intéresser aux contributions, donc voir les 3 variables qui contribuent le plus et les 4 lignes qui contribuent le plus. Dans les contributions, bien évidemment, il n'y a pas de lignes supplémentaires ni de colonnes supplémentaires puisque les éléments supplémentaires ne contribuent pas à la construction des axes. Et donc là, j'ai 4 lignes en bleu et 3 colonnes en rouge qui sont les éléments qui ont le plus contribué à la construction de ces 2 axes. Je peux aussi sélectionner les lignes en donnant des noms. Par exemple, je vais sélectionner les lignes Monnaie et Futures, qui sont 2 lignes qui m'intéresseraient dans une analyse. Ces lignes-là apparaissent en bleu et puis j'ai pas fait de sélection sur les colonnes donc toutes les colonnes sont visibles, toutes les colonnes actives, toutes les colonnes supplémentaires. Donc voilà le graphe et les différentes options pour construire les graphes. Alors on peut bien entendu construire le graphe avec les axes non plus 1-2 mais par exemple l'axe 3-4 ou l'axe 1-3 plutôt. Donc je construis le graphe avec les axes 1-3 et donc j'ai d'abord l'axe 1 et ensuite l'axe 3 ici. Donc on peut construire comme ça les graphes avec les axes que l'on souhaite et là encore faire la sélection par rapport à à ce graphique-là. Donc si je m'intéresse aux cos², à une sélection avec les cos², ce seront les cos² élevés pour le plan 1-3. Donc voilà rapidement comment utiliser le module graphique de FactoMineR, ce qui est très utile quand on a beaucoup de lignes ou beaucoup de colonnes, ce qui est souvent le cas quand on traite de données textuelles par exemple où on a vraiment beaucoup de mots et on veut faire une sélection de mots, voir les mots qui contribuent le plus. Donc là c'est pour cela assez utile.
More from Yamossoun

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









