Analyse Factorielle Multiple (AFM) avec FactoMineR

Cette vidéo pédagogique montre, pas à pas, comment réaliser une Analyse Factorielle Multiple (AFM) sur le jeu de données « vin » en utilisant le package R FactoMineR. Le présentateur décrit le jeu de données (21 vins, 29 descripteurs sensoriels quantitatifs et 2 variables qualitatives) et la façon de regrouper les variables en cinq blocs actifs et un bloc supplémentaire. Il explique la syntaxe de la fonction `MFA` (définition des groupes, type des variables, nombre de composantes `ncp`, noms des groupes, indication des groupes supplémentaires) puis montre comment extraire et interpréter les résultats numériques (valeurs propres, pourcentages d’inertie, coordonnées, contributions, cos², V.test). Ensuite, il passe en revue les graphiques générés par défaut (graphes des groupes, des individus, des variables, des modalités, des axes partiels) et détaille de nombreuses personnalisations : taille de police (`cex`), transparence, palette de couleurs, affichage sélectif par cos² ou contribution, ajout d’ombres, choix d’axes (ex. 3‑4), affichage partiel d’individus ou de groupes, adaptation pour PowerPoint, et utilisation de `dimdesc` pour obtenir une description automatique des dimensions. Le tutoriel se conclut sur les fonctions clés (`MFA`, `summary.mfa`, `plot.mfa`) et les bonnes pratiques pour rendre les visualisations lisibles et exploitables.
Chapters
L'objectif de cette vidéo est de montrer comment faire une analyse factorielle multiple, une AFM, avec FactoMineR et comment améliorer les graphiques construits par défaut avec FactoMineR. Nous allons utiliser le jeu de données suivant. Il s'agit d'un jeu de données où 21 vins ont été décrits par un panel d'experts à l'aide de 29 descripteurs sensoriels. 2 variables qualitatives, l'origine des vins et le sol, ont également été enregistrées. Nous avons donc en lignes 21 à 20 et en colonnes 31 variables, 2 qualitatives et 29 quantitatives qui peuvent être regroupées en 5 groupes de variables: un groupe d'odeurs, un groupe de visuels, un groupe sur les variables de goût, un groupe sur l'odeur après agitation et un groupe sur l'appréciation olfactive et gustative. Les groupes d'odeurs, visuels, goût et odeurs après agitation ont été considérés comme des groupes actifs. Les groupes d'origine et d'appréciation sont considérés comme des groupes supplémentaires. Nous pouvons donc aller dans R. Je vais d'abord ouvrir le fichier d'instructions sur les jeux de données 20 avec l'ensemble des lignes de commande. Et nous allons mettre ces instructions ici. Je vais donc lancer la première instruction et charger la librairie FactoMineR. Nous allons en fait utiliser le jeu de données vin qui est le jeu de données exemple de la fonction MFA. Donc on peut voir l'exemple de la fonction MFA en faisant ?MFA et tout en bas de l'aide on retrouve les lignes de code associées à cet exemple sur les vins. Dans un premier temps, je charge le jeu de données vin et je vais expliciter les lignes de code de l'AFM. Donc la fonction MFA prend en entrée le jeu de données vin et ensuite il est nécessaire de définir les groupes de variables. L'AFM va équilibrer l'influence de chacun de ces groupes dans la construction des axes. Le premier groupe de variables est constitué des 2 premières variables. Le deuxième groupe contient les 5 suivantes. Puis le 3ème les 3 suivantes, le 4ème les 10 suivantes, le 5ème groupe les 9 suivantes et le dernier groupe contient les 2 dernières variables. La nature des variables d'un groupe est précisée par l'argument type. On spécifie le type de chaque groupe de variables avec c pour continues ou quantitatives, s pour continues ou quantitatives mais les variables sont réduites, scaled en anglais, Le type n est utilisé pour les groupes de variables nominales ou qualitatives et f est utilisé pour les tableaux de fréquences. Donc dans l'exemple, le premier groupe est constitué de variables qualitatives tandis que tous les groupes suivants contiennent des variables quantitatives avec un s ici qui signifie qu'on va réduire les variables dans chaque groupe. L'argument ncp=5 signifie que les résultats sur les premières dimensions sont fournis. Sur les 5 premières dimensions sont fournies. Il est possible de nommer les groupes de variables avec l'argument name.group: un groupe sur l'origine des vins comprenant les variables label et type de sol, un groupe de variables de description olfactive, un groupe de variables sur le visuel, un groupe sur l'olfaction après agitation, un groupe sur le gustatif et un groupe sur des variables d'ensemble. Ensuite on précise que les groupes de variables 1 et 6 C'est-à-dire le groupe d'origine et le groupe des variables d'ensemble sont des groupes supplémentaires qui ne participent pas à la construction des axes. Une fois que l'AFM est paramétrée et exécutée, plusieurs graphes sont fournis. Nous reviendrons sur ces graphes ultérieurement. L'ensemble des résultats numériques est stocké dans l'objet res ici. Il est possible d'avoir un résumé des principaux résultats numériques en faisant summary. Je vais agrandir un petit peu la fenêtre pour avoir l'ensemble des résultats. SummaryDures va d'abord rappeler la ligne de commande. Ensuite on trouve un tableau avec les valeurs propres et les pourcentages d'inertie associés à chaque dimension. La première dimension récupère 49% de l'information, c'est-à-dire 49% de l'inertie, et la deuxième dimension 19%. Ensuite on a des résultats sur les groupes de variables. Donc les groupes actifs d'abord avec les coordonnées des groupes, les contributions de chacun des groupes à la construction de la première dimension et les qualités de représentation sur la première dimension. Puis les mêmes résultats sur la 2ème dimension: coordonnées, contributions et cos² puis la 3ème dimension. Par défaut, la fonction summary fournit les résultats sur les 3 premières dimensions mais on peut vouloir les résultats sur les 2 premières ou les 4 premières par exemple en utilisant l'argument ncp. Ensuite on a les résultats sur les groupes supplémentaires avec les coordonnées et les cos². On n'a pas de contribution puisque ce sont des groupes qui ne contribuent pas à la construction des axes. Le tableau suivant fournit les résultats sur les individus, par défaut les 10 premiers individus. Si on veut les résultats sur tous les individus, on utilise l'argument nb_elements= inf pour infinity. C'est-à-dire qu'on aura les résultats pour tous les éléments, donc tous les individus, toutes les variables, etc. Là encore, on a les coordonnées, les contributions et les cosinus carrés, d'abord sur la dimension 1 puis 2 puis 3. Ensuite nous avons les résultats sur les variables quantitatives actives, donc les résultats pour les 10 premières variables avec là encore coordonnées, contributions, cos². Pour les variables quantitatives supplémentaires, on a juste les coordonnées et les cos². Là encore ce sont des variables qui n'ont pas contribué à la construction des axes. Il n'y a pas de variables qualitatives ici qui sont actives donc on a des résultats uniquement pour les variables qualitatives supplémentaires. Et plus particulièrement pour les modalités des variables qualitatives supplémentaires. Donc on a la coordonnée, le cosinus carré, pas de contribution bien entendu, et une valeur-test notée V.test. La valeur-test permet de savoir si la coordonnée de la modalité est significativement différente de 0 ou non. Plus précisément, la valeur-test correspond à la transformation d'une probabilité en quantile de loi normale. Si la probabilité est inférieure à 5%, alors la valeur absolue de la valeur-test sera supérieure à 1.96. Le signe de la valeur-test indique si la coordonnée de la modalité est inférieure, pour un signe négatif, ou supérieure, pour un signe positif, à 0. Par exemple, la modalité env4 a une coordonnée significativement différente de 0 sur la 2ème dimension et supérieure à 0 sur cette 2ème dimension. Voilà pour les principaux résultats numériques obtenus à l'issue d'une AFM. Ensuite, plusieurs graphes sont apparus par défaut. Le nombre de graphes ainsi que les graphes construits dépendent de la présence ou non de groupes de variables quantitatives et de groupes de variables qualitatives. Décrivons maintenant un à un les graphes obtenus dans notre exemple. On aura toujours le graphe des groupes de variables avec Des triangles pleins pour les groupes actifs et des triangles vides pour les groupes illustratifs. Les couleurs de chacun des groupes dans ce graphe seront réutilisées dans les autres graphes. Si un groupe a une coordonnée élevée sur une dimension, alors cette dimension est également présente dans le groupe de variables. Autrement dit, ce groupe sépare les individus comme peut le faire l'AFM avec cette dimension. Si 2 groupes ont des coordonnées élevées et proches sur plusieurs dimensions, alors ils induisent une structure proche sur les individus. On a ensuite un graphe avec uniquement les individus moyens, c'est-à-dire les individus vus par l'ensemble des groupes de variables actifs. On dira par exemple que les vins T1 et T2 ont globalement des profils sensoriels très proches quand on prend en compte tous les points de vue sensoriels visuel, olfactif, gustatif, etc. Comme dans notre analyse certains groupes sont constitués de variables quantitatives, on trouve un graphe des variables avec le cercle des corrélations. Dans ce graphe, les variables sont coloriées en fonction de leur groupe d'appartenance. Donc une même couleur pour un même groupe. Ce graphe des variables s'interprète simultanément avec le graphe des individus comme pour une ACP. Donc par exemple, les vins sur la droite du graphe des individus sont des vins intenses au niveau de l'arôme et du goût. Et les vins sur le haut du graphe sont épicés, spice en anglais. Sur le graphe des individus, on peut représenter les points partiels pour certains individus. Par défaut, le graphe fourni représente les points partiels de 4 individus: les 2 individus qui ont une inertie intra la plus grande ainsi que les 2 individus qui ont les inerties intras les plus petites. Nous verrons comment représenter les points partiels de tous les individus par la suite. Dans notre analyse, nous avons des variables qualitatives et c'est pour cette raison que l'on trouve un graphe avec les modalités supplémentaires et les modalités actives. Ici il n'y a pas de modalité active donc seules les modalités supplémentaires sont représentées. Pour chaque modalité, le point moyen ainsi que ses points partiels sont représentés. Point moyen et point partiel s'interprètent ici comme pour le graphe des individus. On pourra dire par exemple que les vins sur le sol référence et ceux sur le sol Env4 sont visuellement perçus de la même façon mais ils sont très différents sur les descriptions olfactives et gustatives. On trouve enfin le graphe avec les axes partiels. Pour chaque groupe de variables, on a fait une analyse: pour les variables quantitatives une ACP, pour les variables qualitatives une ACM, et on a projeté en supplémentaire les dimensions de ces ACP et ACM sur les dimensions de l'AFM. Donc par exemple, pour le groupe de visuels, la première dimension du visuel est très liée à la première dimension de l'AFM alors que la 2ème dimension est un peu moins liée à la 2ème dimension de l'AFM. Pour le groupe de variables qualitatives origine, on a projeté les dimensions de l'ACM. Revenons maintenant sur certains graphes pour voir comment les modifier ou les améliorer. Redessinons le graphe des individus avec l'instruction plot. On obtient un graphe avec les individus actifs et les modalités des variables supplémentaires. Il est possible de rendre les modalités invisibles. On peut aussi améliorer la lisibilité du graphe en séparant mieux les libellés des individus. Pour cela, je vais diminuer un peu la taille de la police en utilisant l'argument cex= 0.8 par exemple. Les points sont un peu mieux séparés et le graphe est plus lisible. Sur ce graphe, je peux ajouter des points partiels pour par exemple les vins Ynvo et Per1. Par défaut, les points partiels sont habillés par les couleurs utilisées dans le graphe des groupes. Pour le vin 1VAU, le point rouge représente comment est vu le vin 1VAU par les variables d'olfaction uniquement et le point vert comment ce vin est vu par rapport aux variables visuelles uniquement. Petite astuce si on veut représenter les points partiels d'un seul groupe uniquement: il suffit de changer la palette de couleurs et d'utiliser la couleur transparent pour les groupes qu'on ne souhaite pas voir. Par exemple, si on veut représenter uniquement les points partiels du 3ème groupe, c'est-à-dire du groupe olfactif après agitation, on va utiliser la palette avec les couleurs black, transparent, transparent, blue transparent. La première couleur black correspond à la couleur des points moyens et ensuite on définit les couleurs de chaque groupe avec donc les groupes 1 et 2 en transparence, le 3ème groupe en bleu et le 4ème groupe en transparence. Et on dessine les points partiels sur l'ensemble des points en mettant partial= all. Il est possible de ne pas dessiner tous les points et de sélectionner certains individus. On peut par exemple sélectionner uniquement les vins bien projetés sur le plan, qui ont un cos² supérieur à 0.4. En noir avec un libellé, on trouve les individus qui ont un cos² supérieur à 0.4 et en gris les individus qui ont un cos² inférieur à 0.4. Sont dessinés uniquement les points partiels pour lesquels les individus ont un cos² supérieur à 0.4. Je peux également habiller les individus en fonction d'une variable, donc de la variable 1 qui est qualitative. Je ne vais plus mettre de points partiels ici parce qu'on a un peu trop d'informations. Les vins d'appellation Saumur sont en rouge, les Bourgueil en vert et les Chinons en bleu grâce à l'argument habillage= 1. J'aurais pu utiliser la variable de sol. Je peux soit mettre le numéro de la variable soit le nom de la variable. Et là les vins sont coloriés en fonction de la variable de sol. J'ai toujours une sélection avec cos² supérieur à 0.4. Je peux aussi sélectionner en fonction d'une contribution et prendre les 5 individus qui ont le plus contribué à la construction des axes. Sont alors coloriés uniquement les individus qui ont le plus contribué à la construction du plan. Il est possible de jouer sur la transparence avec l'argument unselect. En mettant unselect= 0, il n'y a pas du tout de transparence, les points sont de la même couleur qu'ils aient fortement contribué ou non, mais on voit qu'il n'y a pas de libellés pour les points qui ont peu contribué. Et au contraire je peux mettre une transparence totale, c'est-à-dire que les points disparaissent pour les individus qui ne sont pas les 5 qui ont le plus contribué à la construction des axes. Il peut y avoir parfois un petit problème avec la transparence car ces graphes-là ne peuvent pas être utilisés dans PowerPoint parce que la transparence n'est pas gérée et donc je vous conseille d'utiliser une couleur de gris, par exemple gray70. Les points sans libellé sont alors en gris, ce qui permettra d'utiliser le graphe dans PowerPoint pour éventuellement bouger les libellés par exemple. Par défaut, le plan 1-2 est fourni mais on peut construire le plan 3-4 en précisant axes= 3:4. Voici le graphe sur les axes 3 et 4 avec les individus qui ont le plus contribué à la construction des axes 3 et 4. Dans la sélection, je peux aussi préciser des noms d'individus et visualiser par exemple les vins Invo et Per 1. On peut aussi travailler sur le graphe des variables en utilisant choix= var pour préciser que l'on construit le graphe des variables. Le graphe par défaut est celui-ci où les variables sont habillées en fonction de leur groupe d'appartenance. Vous voyez qu'ici beaucoup de libellés se superposent. En fait, les libellés sont assez longs et ne peuvent pas être écrits sur la droite du graphe. Il est alors conseillé d'agrandir la fenêtre et de relancer la commande. Cette fois, les libellés peuvent aller plus vers la droite et donc assez peu de libellés se superposent, ce qui améliore la lisibilité du graphe. Ce graphe peut être amélioré en ajoutant une ombre sous le libellé grâce à l'argument shadow= TRUE. Maintenant le cercle des corrélations n'est plus dessiné quand un libellé est au-dessus du cercle. Le graphe est plus joli mais par contre l'ombre est un carré blanc qui peut être délicat à gérer si on utilise le graphe dans un autre logiciel comme PowerPoint. Si vous voulez bouger par la suite les libellés, il est préférable de ne pas mettre d'ombre mais mais si vous voulez utiliser le graphe tel quel, mettre une ombre améliorera la lisibilité du graphe. Comme pour les individus, on peut sélectionner des variables en fonction de leur contribution en conservant par exemple les 5 variables qui ont le plus contribué à la construction des axes. Les 5 variables qui ont contribué le plus auront leur libellé, pour les autres elles sont avec une certaine transparence. On voit leur appartenance aux groupes et on voit où elles se projettent. Cela permet d'avoir des graphes avec des libellés qui vont moins se chevaucher. Donc des graphes qui sont plus lisibles si on a beaucoup de variables. Souvent il est intéressant de faire une sélection car les variables proches du centre du cercle, c'est-à-dire avec des flèches très courtes, sont des variables peu intéressantes à interpréter car mal projetées. On s'intéressera souvent aux variables les mieux projetées qui ont donc une coordonnée élevée ou qui ont fortement contribué, c'est la même information, à la construction des axes. Je peux faire la même chose sur le plan 3-4 et donc avoir les variables qui ont le plus contribué à la construction du plan 3-4. On peut refaire le graphe des axes partiels en évitant d'avoir trop de dimensions pour chaque analyse séparée. Pour ce faire, il est préférable de relancer l'AFM en précisant l'argument ncp=3 ou ncp=2 afin de ne conserver que 3 ou 2 dimensions pour chaque ACP ou ACM. On reconstruit ensuite le graphe des axes partiels. Toujours en coloriant les axes partiels en fonction du groupe. Voilà pour les principales sorties graphiques. On peut aussi s'aider de la fonction dimdesc qui fournit une description automatique des dimensions factorielles, exactement comme pour l'utilisation de dimdesc sur les résultats d'une ACP ou d'une ACM. La première dimension factorielle est donc décrite par les variables quantitatives actives et supplémentaires les plus liées, c'est-à-dire corrélées positivement et négativement, à la première dimension de l'AFM puis par les variables qualitatives et les modalités les plus liées. Par défaut, les 3 premières dimensions factorielles sont décrites. Vous avez vu les principaux graphes et les principaux indicateurs de l'AFM. Les principales fonctions de l'AFM qui ont été utilisées sont mfa, summary.mfa et plot.mfa.
More from Yamossoun

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









