Cours d'ACP : théorie et pratique (ancienne version)

Cette vidéo constitue un cours complet sur l'analyse en composantes principales (ACP). Le présentateur décrit d'abord les types de données admissibles (tableaux rectangulaires d'individus en lignes et de variables quantitatives en colonnes) et donne de nombreux exemples d'application (sensorielle, écologie, économie, génétique, marketing, sociologie). Il introduit les notions de moyenne, écart‑type, centrage et réduction (standardisation) des données, puis explique comment visualiser un nuage d'individus vivant dans un espace de haute dimension en cherchant des axes qui maximisent la dispersion (inertie). Le processus d’obtention des axes (premier facteur, deuxième facteur, orthogonalité) est détaillé, ainsi que l’interprétation des axes à l’aide du cercle de corrélation (corrélations entre variables et axes). Le cours montre comment mesurer la qualité de la projection (pourcentage d’inertie expliqué, cos²) et la contribution des variables et des individus à chaque axe. Il décrit la représentation des variables par des flèches, la notion de variables supplémentaires (quantitatives et qualitatives) et leur projection pour enrichir l’interprétation. Enfin, il aborde les tests statistiques (ANOVA, test de Fisher, tests de Student) pour les variables qualitatives, et résume la démarche pratique de l’ACP : choix des variables actives, décision de standardiser ou non, construction des axes, interprétation et validation des résultats.
Chapters
L'objectif de cette vidéo est de voir comment faire une analyse en composantes principales. Donc le plan de l'exposé est le suivant: je vais d'abord définir sur quels types de données est-ce qu'on peut réaliser une analyse en composantes principales, donner des exemples de domaines dans lesquels l'analyse en composantes principales peut être utile et puis définir quelques notations. Ensuite je m'intéresserai à l'étude des individus statistiques puis ensuite à l'étude des variables et enfin on passera du temps sur comment interpréter les résultats d'une analyse et donc on va fournir des aident à l'interprétation. Alors, quels types de données? L'ACP, l'analyse en composantes principales, s'intéresse à des tableaux de données rectangulaires avec en ligne des individus et en colonne des variables qui sont de nature quantitative. Donc on va considérer qu'on a I individus et qu'on a K variables. Et donc on va définir la moyenne d'une variable par X barre k qui est la moyenne des X Et puis l'écart-type d'une variable, je vais le noter Sk, et il sera défini par la racine de 1/I somme des i= 1 à I de ². Donc on voit qu'il y a ici un 1/I parce qu'on estime l'écart-type de nos données. On ne cherche pas à avoir une estimation d'un écart-type qu'on va extrapoler à une population. Donc c'est l'écart-type de la variable pour ces données. Alors des tableaux de données de ce type avec des individus en ligne et des variables en colonne, on en voit dans de nombreux domaines d'application. Donc j'ai listé quelques domaines d'application ici avec des exemples. Donc premier exemple qui peut être l'analyse sensorielle où on a des produits qui sont décrits par différentes variables qu'on appelle souvent des descripteurs sensoriels qui sont par exemple l'acidité, l'amertume, la saveur sucrée, etc. Et donc on a un tableau avec différents produits, disons des vins, et pour chaque vin on va avoir sa note d'acidité, sa note d'amertume, sa note de saveur sucrée, etc. Donc l'objectif de l'ACP, ça va être d'étudier ce tableau. En écologie, on a un exemple avec différentes rivières et les variables sont des polluants différents polluants, donc un tableau qui croise des rivières en lignes et des polluants en colonnes. En économie, on peut avoir des années et puis on suit différents indicateurs d'une année à l'autre. Les individus statistiques peuvent être les années, les individus statistiques pourraient aussi être des pays par exemple. En génétique, très souvent on a des patients, les variables qui décrivent les patients sont les gènes, différents gènes Donc on a un tableau de données avec de très nombreux gènes. En marketing, on a différentes marques et puis des indices de satisfaction. En sociologie, on peut avoir des individus statistiques qui sont des regroupements d'individus des différentes CSP et puis les variables sont les différentes activités et la mesure est le temps moyen passé par les individus d'une CSP pour une activité donnée. Des tableaux de ce type-là qui croisent des individus en ligne et des variables en colonne, il y en a eu énormément et ce dans de très nombreux domaines. Alors je vais prendre un exemple pour illustrer le cours. En ligne, j'ai des individus statistiques qui sont les différentes villes de France, 15 villes de France, et en colonne j'ai des variables quantitatives qui sont des températures mensuelles moyennes. Ces températures mensuelles moyennes ont été calculées sur 30 ans. Par exemple, à Bordeaux en janvier il fait en moyenne 5,6 degrés. Donc ce 5,6 degrés c'est la moyenne sur tous les jours de janvier pendant 30 ans. Et donc on a comme ça les 12 variables correspondant aux 12 mois de l'année et puis on a 2 variables qui ne sont pas des températures qui sont la latitude et la longitude des villes. Donc l'objectif de notre analyse en composantes principales va être d'étudier ce tableau. Comment étudier ce tableau? Ce tableau, on peut l'étudier de différentes façons. On peut voir ce tableau comme un ensemble de lignes, donc essayer de voir les différences qu'il peut y avoir d'une ligne à l'autre, les ressemblances qu'il peut y avoir d'une ligne à l'autre, ou bien on peut voir ce tableau comme un ensemble de colonnes, voir les ressemblances entre colonnes. Donc l'étude sur les individus statistiques, l'étude sur les lignes, pour les étudier ces individus, je vais avoir besoin de savoir quand 2 individus se ressemblent. Et quand est-ce qu'ils se ressemblent du point de vue de l'ensemble des colonnes. Si j'ai beaucoup d'individus, je vais avoir envie de faire un bilan: ces individus ont tendance à se ressembler, ils sont très proches du point de vue de l'ensemble des colonnes, ces autres individus sont très proches et assez éloignés du premier groupe d'individus. Donc j'ai envie comme ça de faire une sorte de typologie, une partition des individus, donc de construire des groupes d'individus qui soient homogènes du point de vue de l'ensemble des variables à l'intérieur d'un groupe tous les individus sont homogènes et puis d'un groupe à l'autre les individus sont assez différents. Au niveau des variables, je vais avoir, de façon symétrique, envie de rechercher les ressemblances entre variables. Quelles sont les variables qui m'apportent une information à peu près identique? Alors entre variables, plutôt que de ressemblances, on parle de liaisons et puis les liaisons qui sont les plus connues sont les liaisons linéaires. Ce sont des liaisons qui sont simples, qui sont très fréquentes et finalement qui peuvent résumer parfois de nombreuses liaisons. Même quand on a une liaison non linéaire entre 2 variables, il y a parfois des domaines sur lesquels la liaison est proche d'une liaison linéaire. Comment mesurer la ressemblance entre 2 variables? On peut la mesurer par un indicateur qui est le coefficient de corrélation. 2 variables qui ont un coefficient de corrélation très élevé, proche de +1, seront des variables qui apportent la même information. Et donc notre objectif avec notre analyse, ça va être de faire un bilan des ressemblances entre variables et de visualiser la matrice de corrélation. Et puis de trouver des indicateurs qui résument beaucoup de variables. Donc j'ai beaucoup de variables dans mon tableau et je veux faire un bilan, me dire toutes ces variables-là se ressemblent et j'aimerais bien aussi trouver un indicateur synthétique qui résume tout ce paquet de variables. Alors des indicateurs synthétiques, il y en a a priori, par exemple la moyenne c'est un indicateur a priori, mais ici je vais plutôt rechercher des indicateurs a posteriori, c'est-à-dire que je vais utiliser l'information contenue dans mes données pour trouver un indicateur. Alors évidemment, comme on travaille sur un tableau que je peux voir en ligne, que je peux voir en colonne, mais que je travaille sur le même tableau, il y a un lien entre ces deux études. Donc il y a un lien entre l'étude sur les individus et l'étude sur les variables. Donc quand je fais mon étude sur les individus et que je construis des groupes d'individus, je vais avoir envie de caractériser les différents groupes d'individus, les différentes classes d'individus. Et pour les caractériser, j'aimerais bien utiliser les variables. Et dire par exemple que les produits ici qui se ressemblent sont tous les produits qui sont à la fois acides et amers. Donc pour ça, je vais avoir besoin d'une procédure automatique surtout si j'ai énormément de variables. De même, quand je suis en train d'étudier les liaisons entre variables, je vais dire que ces différentes variables sont très liées entre elles, ça peut être intéressant d'avoir des individus qui sont spécifiques, c'est-à-dire des individus qui sont très particuliers, qui sont extrêmes. En termes de variables, je vais dire qu'il y a une liaison forte entre les variables mais je peux revenir aussi individus. Par exemple, la variable taille et la variable poids sont 2 variables qui sont très liées. Je les connais bien ces 2 variables mais je peux aussi visualiser cette liaison en me disant que les individus qui sont petits sont légers et les individus qui sont grands sont lourds. Donc ça, ça me permet aussi de voir la liaison qu'il y a entre les variables. Donc l'objectif de l'ACP ou les objectifs de l'ACP, ça va être d'une part un objectif exploratoire, descriptif, où on veut visualiser un tableau de données par des graphiques simples. Visualiser ces tableaux de données, c'est aussi faire une synthèse, un résumé du tableau de données. Donc on résume, on synthétise l'information contenue dans un tableau de données et pour synthétiser cette information, on va la visualiser. Alors plus dans le détail, si je reprends mon tableau de données, j'ai dit que je pouvais le voir comme un ensemble de lignes ou un ensemble de colonnes. Si je le vois comme un ensemble de lignes, je suis en train d'étudier les individus. Si je le vois comme un ensemble de colonnes, j'étudie les variables. Et donc étudier les individus, ça veut vouloir dire considérer le nuage de points, un point correspondant à un individu. Ce nuage de points est dans un espace de dimension élevée. Si j'ai K variables, mon nuage de points vit dans un espace à K dimensions. Pour mon étude sur les variables, Une variable c'est un point dans un espace cette fois à I dimensions. Il y a I coordonnées pour chaque variable. Donc un point est dans un espace à I dimensions. Donc je vais avoir un nuage des variables qui va vivre dans un espace à I dimensions. Alors l'étude des individus: un individu, on a dit que c'était une ligne du tableau et donc un point dans un espace à K dimensions. Si K= 1, si j'ai une seule dimension, c'est facile de représenter les individus: je fais une représentation axiale et je positionne mes individus en fonction de la valeur qu'ils prennent. Je les positionne sur l'axe en fonction de la valeur qu'ils prennent pour la variable. Si j'ai 2 variables, je peux construire un nuage de points classique, ce qu'on fait en régression simple où on a la variable Y en fonction de la variable X et puis on construit le nuage de points. Si j'ai 3 variables, ça commence à être un petit peu plus difficile mais il y a certains logiciels qui permettent de voir en 3 dimensions. On peut utiliser un logiciel qui va bouger le nuage de points et on va avoir une idée du nuage de points en le faisant bouger en 3 dimensions. Mais si j'ai 4 variables ou plus que 4 variables, c'est impossible de représenter un nuage de points en 4 dimensions. C'est impossible à représenter, par contre le concept mathématique qu'il y a derrière est simple: on a des coordonnées sur rank dimensions, k étant plus grand que 4. Donc maintenant comment est-ce qu'on va pouvoir faire pour visualiser un nuage d'individus si ce nuage d'individus vit dans un espace très grand? Pour ça, on va commencer par définir la notion de ressemblance: quand est-ce que 2 individus se ressemblent? 2 individus se ressemblent s'ils sont proches. On peut définir la distance entre 2 individus grâce à Pythagore: la distance au carré entre 2 individus, c'est la somme des carrés des écarts sur chacune des variables. Donc c'est une définition simple de la notion de ressemblance et donc finalement quand moi je veux étudier le nuage des individus, Ça revient à étudier la forme de ce nuage, voir les individus qui sont proches, les individus qui sont éloignés. Étudier la structure du nuage, c'est-à-dire étudier la forme du nuage des individus. On voit ici une représentation d'un nuage en 3 dimensions et on imagine la forme du nuage avec une photographie qui est une représentation en 2 dimensions seulement. Donc mes individus vivent dans un espace qui est grand et moi je vais vouloir le visualiser avec une représentation graphique en 2 dimensions. Donc je vais étudier la forme de ce nuage. Pour étudier la forme du nuage, on va parler du centrage et de la réduction des données. Centrer les données revient à translater le nuage et donc ça ne modifie pas du tout la forme du nuage. La forme de mon nuage n'est pas du tout modifiée par un centrage puisque c'est juste une translation du nuage. Donc je vais toujours centrer mes données. Maintenant on peut voir si on doit réduire ou pas les données. Donc on a le schéma tout à droite où on a la représentation d'individus avec leur taille et leur poids, donc la taille en fonction du poids. La taille est en centimètres et le poids est en quintal. Les données sont ici centrées. On voit qu'on a un nuage de points qui est très allongé et qui est vertical. Sur le schéma du milieu, on a la taille qui est représentée cette fois en mètres et le poids en kilogrammes. On voit maintenant que la forme du nuage est très différente puisqu'on a un nuage de points très allongé par rapport à l'horizontale. Nous, ce qu'on cherche, c'est à étudier la forme du nuage de points. On voit que selon l'unité qu'on a choisie, cm et quintal ou m et kg, on n'a pas du tout la même forme de nuage. Donc comment faire pour gérer ça? Une idée, c'est de se dire qu'on va centrer-réduire les données. Si on centre et réduit les données, on se ramène à des variables qui sont sans unité et qui sont donc comparables. Donc la réduction des données est indispensable si les unités de mesure sont différentes d'une variable à l'autre. Maintenant, si les variables sont dans les mêmes unités, on peut réduire ou ne pas réduire. Alors on verra que la réduction permet d'accorder la même importance à chaque variable. Ne pas réduire permet de donner plus d'importance aux variables qui ont une variabilité plus grande, qui ont une variance plus grande. Donc il y a une discussion ici à avoir sur normer ou ne pas normer, c'est-à-dire réduire ou ne pas réduire avant de faire une ACP. Dans la suite du cours, on va centrer toujours et réduire le jeu de données. Par rapport à notre exemple, on a le jeu de données centré-réduit. Donc ce jeu de données centré-réduit donne déjà quelques informations. On voit par exemple qu'à Brest, en juillet, on a une valeur de -2,06. Ça signifie que les températures à Brest sont assez extrêmes en juillet. Alors on a une valeur de -2, ce qui signifie que c'est des valeurs inférieures à la moyenne, et puis on a une valeur de 2 qui est assez extrême. On sait que les valeurs qui suivent une loi normale sont comprises entre -1,96 et 1,96. Donc ici on sait pas si les données suivent une loi normale, mais une valeur centrée-réduite de -2, c'est une valeur très extrême. Donc à Brest, il fait particulièrement froid en juillet. Et puis à Nice, on voit qu'il fait particulièrement chaud en février, octobre et novembre. Les températures sont supérieures à la moyenne et elles sont particulièrement grandes. Donc l'ACP, l'analyse en composantes principales, va permettre d'analyser ce tableau centré-réduit. Analyser ce tableau centré-réduit, ça veut dire le visualiser. Donc c'est difficile de voir ce tableau puisqu'il est en 12 dimensions. On ne peut pas le visualiser en 12 dimensions et ce qu'on va chercher à faire, c'est à en avoir une image approchée, mais une image qui s'en rapproche le plus possible. Alors on va essayer d'ajuster ce nuage des individus, donc l'approcher au mieux. L'ACP, son objectif, ça va être de fournir une image simplifiée du nuage de points qui soit la plus fidèle possible, qui permette d'avoir une idée sur les distances entre individus et que ces distances entre individus soient les plus fidèles possibles Donc l'ACP revient à trouver un sous-espace qui résume au mieux les données. Résumer au mieux les données, ça veut dire quoi? Une image est bonne si elle restitue le plus fidèlement possible la forme du nuage original. Alors on peut voir ça sur une petite animation. Donc on a un nuage de points ici qui est en 3 dimensions. Donc je vais bouger ce nuage de points. Ce nuage de points bouge. Donc vous avez une idée du nuage de points et moi j'ai le droit d'avoir uniquement une représentation en 2 dimensions. Uniquement un plan. Voilà une première proposition de visualisation du nuage 3D. Donc là, une deuxième proposition et puis enfin une troisième proposition du nuage 3D, celle-ci. Et donc la question est de savoir parmi ces 3 propositions quelle est la proposition qui restitue au mieux le nuage dans son ensemble. J'ai droit qu'à une seule photographie de mon nuage 3D. Laquelle est-ce que je choisis? Je vais avoir plutôt tendance à choisir la 3e proposition. Alors pourquoi? Parce qu'on a séparé, on a bien séparé les points, on a l'impression de mieux voir les distances entre individus. Donc ça, c'est l'intuition qui nous dit qu'il faut qu'on sépare bien les points. Et cette intuition est bonne. Donc la qualité d'une image, c'est celle qui restitue le mieux la forme du nuage. Une image est bonne si on visualise bien la diversité, la variabilité qu'il y a dans les données et surtout une image est bonne si elle ne perturbe pas trop les distances entre individus. Les distances entre individus sont dans un espace au départ à 12 dimensions et moi je les mets dans un espace à 2 dimensions donc j'ai un peu modifié les distances entre individus et je veux que ces distances ne soient pas trop modifiées. Alors comment est-ce que je peux quantifier la qualité d'une image? En fait avec la notion de dispersion: plus un nuage de points sera dispersés, mieux je verrai le nuage. Et donc un nuage de points est très dispersé s'il y a une forte variabilité. Et cette variabilité est sur plusieurs dimensions. Donc une variabilité sur plusieurs dimensions, c'est ce qu'on appelle une inertie. On va parler d'inertie maintenant. L'inertie, c'est en fait l'équivalent d'une variance mais généralisée à plusieurs dimensions. Alors une petite illustration, là encore d'une visualisation d'un nuage 3D. Ici j'ai une photographie, j'ai un animal qui vit dans un espace à 3 dimensions, qui est en 3 dimensions et j'ai une photographie qui le donne uniquement en 2 dimensions. Et quelle est l'image qui restitue au mieux la forme de mon nuage dans l'espace global? C'est plutôt l'image de droite où je reconnais un chameau parce que je vois beaucoup plus de choses et je vois notamment les 2 bosses et qu'il a 4 pattes. Si on rentre un peu plus dans le détail, comment ajuster le nuage des individus? Donc comment trouver la meilleure image approchée du nuage? En fait, ça va se faire en plusieurs étapes. Ce qu'on va commencer par faire, c'est essayer de trouver le premier axe, on parle aussi du premier facteur, qui déforme le moins possible le nuage de points. Donc si je note Hi la projection d'un individu sur un axe, O c'est le centre de gravité de mon nuage, eh bien iHi² c'est l'écart entre mon individu dans l'espace initial et sa projection sur un axe. Eh bien je veux que l'écart entre l'individu et sa projection soit le plus petit possible. Plus précisément, je veux que le carré de cet écart soit le plus petit possible. Et le carré de secte est égal au plus petit possible. Comme la distance Oi d'un individu à l'origine est toujours la même, Ihi est petite si Ohi est grande. Ça c'est grâce à Pythagore. On sait que Ohi²+ Ihi²= Oi². Donc comme Oi² est constant, Ihi² est petit si Ohi² est grand. Donc ce qu'on veut c'est avoir les Ohi² les plus grands possibles. Alors comme je veux ça sur tous les individus, je veux que la somme des OHi² soit la plus grande possible, la somme sur tous les individus. Et donc la somme des OHi², c'est bien la dispersion des individus qui soit la plus grande possible. Donc là j'ai trouvé un premier facteur. Ensuite, ce que je vais faire, c'est que je vais essayer de trouver le meilleur plan. Donc le meilleur plan, ça revient à trouver les points Hi qui appartiennent non plus à un axe mais qui appartiennent à un plan. Et tel que la dispersion soit la plus grande possible, là encore donc la somme des OHi² soit la plus grande possible. Alors une remarque, c'est que le meilleur plan, donc le plan qui permet de visualiser au mieux le nuage de points, contient le meilleur axe. Donc pour trouver le meilleur plan, ce qu'on peut faire c'est trouver le meilleur axe et ensuite trouver un axe orthogonal au premier axe qu'on a trouvé et qui maximise la somme des OHi². Donc on trouve le premier axe et ensuite on cherche juste un axe orthogonal au premier et qui maximise l'inertie projetée. Et puis une fois qu'on a trouvé le deuxième axe, on peut chercher un troisième axe et donc séquentiellement on va chercher les axes les uns après les autres. Et à chaque fois un axe est orthogonal à tous les axes précédents et maximise l'inertie. On peut visualiser ça. Ici j'ai une théière en 3 dimensions et je vais essayer de trouver les axes qui me permettent de visualiser au mieux cette théière. Je trouve le premier axe, c'est celui-ci, qui permet de visualiser au mieux la théière. Donc si j'avais à projeter les points de la théière sur un axe, j'aurais pris l'axe en rouge. Et maintenant je cherche un deuxième axe orthogonal au premier. Donc je fixe la première dimension et je cherche un axe orthogonal au premier qui me permet de visualiser au mieux la théière. Et donc là j'ai trouvé le premier axe en rouge et le deuxième axe en vert. Alors sur nos données avec les 15 villes, les 14 variables quantitatives, donc les 12 variables de température moyenne et les 2 variables géographiques latitude et longitude, ce que je vais faire c'est que je vais choisir de visualiser mon nuage des individus uniquement à partir des données de température. Donc je m'intéresse dans un premier temps uniquement aux 12 premières variables concernant les températures. Et donc si je représente mes individus, j'obtiens ce graphe. Alors ce graphe me dit quoi? Il me dit qu'il y a des villes, par exemple Montpellier et Marseille, qui sont très proches. Montpellier et Marseille sont très proches, ça signifie quoi? Ça signifie que les températures moyennes à Montpellier et à Marseille sont à peu près les mêmes et ce quel que soit le mois de l'année. Les valeurs sont à peu près les mêmes pour toutes les variables et donc les points sont proches. De même, Rennes et Nantes sont 2 villes qui ont des températures qui sont proches pour les 12 mois de l'année. Par contre, Nice et Lille ont des comportements très différents. Ces 2 villes sont complètement opposées, opposées sur le premier axe. Donc si c'est opposé sur le premier axe, ça signifie que ce sont des villes très différentes parce que le premier axe est celui qui sépare au mieux les points. Donc l'axe qui sépare au mieux les points, c'est un axe qui sépare Lille et Nice et donc ces 2 villes ont des comportements très différents et ce sur l'ensemble des variables. Alors maintenant qu'est-ce qui sépare, qu'est-ce qui oppose Lille à Nice? Pour cela, on peut avoir une bonne connaissance des données et dire qu'à Lille il fait plutôt froid, à Nice il fait plutôt chaud, mais si on veut uniquement avoir un raisonnement à partir du jeu de données, on va vouloir utiliser les variables pour interpréter ces dimensions de variabilité. Qu'est-ce qui oppose Lille à Nice? Pour savoir ce qui oppose Lille à Nice, ce qu'on va faire c'est qu'on va considérer les coordonnées des individus sur les axes. Par exemple ici, l'individu Brest, je vais récupérer sa coordonnée sur le premier axe Je note ça fi1, 1 pour premier axe, et puis sa coordonnée sur le deuxième axe, donc l'axe horizontal, fi2. Et donc pour chaque individu, j'ai sa coordonnée sur l'axe horizontal et sa coordonnée sur l'axe vertical. Et donc je peux créer 2 vecteurs: un premier vecteur qui regroupe toutes les coordonnées de tous les individus sur le premier axe et un deuxième vecteur qui regroupe toutes les coordonnées de tous les individus sur le 2ème axe. Donc ces vecteurs ont I coordonnées autant que chacune des variables du tableau de données. Pour interpréter le graphe des individus, je vais calculer la corrélation entre la variable, par exemple la variable janvier, et l'axe 1. Donc je calcule la corrélation entre janvier et l'axe 1 et je calcule la corrélation entre janvier et l'axe 2. Et puis si la variable janvier, par exemple, est très liée à l'axe 1, ça voudra dire que les valeurs de janvier sont très liées aux coordonnées sur l'axe 1. Et donc si la corrélation par exemple est proche de 1, ça veut dire que les individus qui ont de faibles valeurs pour janvier prennent de faibles valeurs sur l'axe 1 et donc ce seront des individus qui seront à gauche de mon plan. Et puis les individus qui ont de fortes valeurs pour janvier ont de fortes valeurs sur l'axe 1 et donc seront à droite de mon plan. Si j'ai une corrélation qui est négative, ça veut dire que les individus qui prennent de faibles valeurs pour janvier prennent de fortes valeurs sur l'axe 1. Les individus qui prennent de fortes valeurs pour janvier prennent de faibles valeurs pour l'axe 1. Et même chose avec l'axe 2, on a la corrélation avec l'axe 2. Et donc on va pouvoir construire un graphe avec une représentation de toutes les variables du jeu de données. Toutes ces variables vont se retrouver dans un cercle qu'on appelle le cercle de corrélation et on appelle ce graphe le graphe du cercle des corrélations. Pour l'exemple, le graphe du cercle des corrélations est le suivant. On voit que toutes les variables sont corrélées à l'axe 1, au facteur 1. On a une corrélation qui est positive et supérieure à 0.6, 0.7 pour toutes les variables. On a même des corrélations qui sont très élevées pour octobre et mars par exemple, on a des corrélations qui sont très proches de 1. Ça veut dire que les températures en octobre sont très liées aux coordonnées sur l'axe 1. Autrement dit, les villes qui sont à gauche avec une faible coordonnée sur l'axe 1 prennent de faibles valeurs au mois d'octobre, les villes qui sont au milieu prennent des valeurs moyennes pour le mois d'octobre et les villes qui sont à droite prennent des valeurs fortes pour le mois d'octobre. Quand je dis des valeurs fortes, c'est des valeurs fortes par rapport aux autres villes, toujours par rapport au mois d'octobre. Donc l'axe 1, comment est-ce qu'on peut l'interpréter? En fait, on a toutes les variables qui sont très liées à l'axe 1, donc ça veut dire qu'à droite du graphe on va avoir toutes les villes pour lesquelles il y a de fortes valeurs à la fois pour janvier, décembre, février, novembre, pour tous les mois de l'année. Donc à droite, les villes qui ont une forte coordonnée sur l'axe 1 sont des villes où il fait plutôt chaud tous les mois de l'année. Et puis à gauche, on a des villes où il fait plutôt froid tous les mois de l'année. Et ça c'est le principal facteur de variabilité, c'est ce qui différencie le plus les villes. C'est qu'il y a des villes où il fait froid un peu tout le temps et des villes où il fait chaud un peu tout le temps. Maintenant qu'est-ce qui sépare les villes par rapport au deuxième axe? Eh bien le deuxième axe, les corrélations sont un peu moins fortes, c'est normal puisque c'est un axe de variabilité qui est moins important. C'est le deuxième axe de variabilité. Donc en haut du graphe des villes, on a des villes où il fait plutôt chaud en janvier-décembre et plutôt froid en mai-juin-juillet. Il fait plutôt haut en janvier-décembre parce que la corrélation est positive. Elle n'est pas très proche de 1 mais elle est positive, de l'ordre de 0.5 on va dire. Et la corrélation est négative avec les variables mai-juin-juillet. Et donc les villes qui ont des coordonnées plutôt élevées sur l'axe 2 vont prendre des valeurs plutôt faibles en mai, juin, juillet. Autrement dit, en haut du graphe on va avoir des villes où il fait plutôt doux l'hiver, plutôt chaud l'hiver et plutôt froid l'été. Au contraire, les villes qui sont en bas du graphe, on a des villes où il fait plutôt chaud l'été, et plutôt froid l'hiver. Donc les principaux facteurs de variabilité sont: le premier axe des villes chaudes et des villes froides et le deuxième axe, je suis à une température moyenne annuelle constante. Ce qui différencie les villes sur le deuxième axe, c'est des villes où il fait plutôt chaud l'hiver et froid l'été, donc une petite amplitude thermique annuelle, et puis les villes qui sont en bas du graphe, des villes où il fait plutôt froid l'hiver et chaud l'été, donc une forte amplitude thermique annuelle. C'est ça qui va différencier principalement les villes. Donc il y a le premier axe de variabilité villes chaudes/ villes froides et le deuxième axe plutôt par rapport à l'amplitude thermique annuelle. Voyons maintenant l'étude des variables. Une variable c'est un point dans un espace à I dimensions puisqu'il y a I individus, c'est un vecteur de I coordonnées. Donc on va s'intéresser au nuage des variables. Qui vit donc dans cet espace à I dimensions. Les variables seront représentées par des flèches, c'est la coutume en analyse en composantes principales. Donc je représente la variable k par une flèche qui part de l'origine. Et donc le cosinus de l'angle entre la flèche qui représente la variable l et la flèche qui représente la variable k, l'angle θkl, le cosinus de cet angle est égal au produit scalaire entre la variable k et la variable l divisé par la norme de la variable k. K et la norme de la variable L. C'est donc égal à la somme des Xik XiL, la somme sur tous les i, divisée par la racine carrée de la somme des Xik² et la somme des XiL². Et donc là, puisque les X sont centrés, on peut lire somme des Xik moins X barre k fois somme des XiL moins X barre L divisée par l'écart-type de la variable k et l'écart-type de la variable L. Donc quand les données sont centrées, eh bien je reconnais finalement le coefficient de corrélation entre la variable k et la variable l. Donc j'ai une représentation géométrique ici du coefficient de corrélation entre 2 variables k et l. La représentation géométrique de cette corrélation est le cosinus de l'angle entre les variables k et les variables l. Alors si les variables sont réduites, eh bien en fait toutes les flèches sont de longueur 1 et donc toutes les flèches vont être à une distance 1 sur une hypersphère de rayon 1. Donc on a une flèche, une variable qui part du centre de l'hypersphère et qui va sur la sphère de rayon 1. Comment faire maintenant pour visualiser ce nuage de variables?
Parce que le nuage vit dans un espace à I dimensions et on ne peut pas visualiser sur les I dimensions.
On va utiliser la même stratégie que pour les individus, c'est-à-dire qu'on va essayer d'ajuster le nuage des variables et essayer de visualiser au mieux le nuage des variables. Donc on va chercher des dimensions qui permettent de voir au mieux le nuage des variables. Donc c'est un peu la même règle que pour les individus, c'est qu'on va chercher des axes orthogonaux et qui permettent de représenter au mieux les variables. Donc le premier axe, l'axe qui permet de voir au mieux l'ensemble des variables, c'est l'axe qui maximise la somme des corrélations entre le facteur et chacune des variables. Donc le meilleur facteur v1, c'est le facteur qui est le plus lié à l'ensemble des variables. Plus lié au sens de la corrélation au carré. Donc la variable v1, ça va être une variable synthétique qui résume au mieux l'ensemble des variables puisque très liée à l'ensemble des variables. Cette variable 1 va porter le premier axe et puis une fois que j'ai déterminé cette variable 1, je peux déterminer un deuxième axe qui est orthogonal au premier et qui permet de bien synthétiser le reste de l'information qui n'a pas encore été synthétisée par le premier axe. Et puis une fois que j'ai trouvé le 2ème axe, je peux trouver un 3ème axe, etc. Donc on va séquentiellement trouver les axes orthogonaux aux précédents et qui maximisent l'information qui n'est pas encore résumée par les premiers axes. Et donc l'ajustement du nuage des variables sur notre jeu de données, c'est la même représentation des variables que la représentation qu'on avait précédemment. Tout à l'heure on avait construit une représentation des variables pour nous aider à interpréter le nuage des individus. Et là, quand je construis des axes pour voir au mieux le nuage des variables, je retombe sur la même représentation. Donc ça c'est un peu magique, on va dire que c'est incroyable, c'est qu'on a la même représentation. Et donc cette représentation du nuage des variables, elle sert à aider à l'interprétation du nuage des individus. Ça m'a servi à caractériser les individus, donc dans mon exemple les villes froides, les villes chaudes, les villes avec une faible amplitude thermique, une forte amplitude thermique. Donc ce graphe-là m'a permis de caractériser le nuage des individus, la représentation des individus. C'est aussi, on vient de le voir ici, une représentation optimale du nuage des variables. Et puis j'ai une visualisation de l'ensemble des corrélations entre les variables prises 2 à 2 par les cosinus des angles entre les variables 2 à 2.
Et donc cette représentation, c'est aussi une visualisation de la matrice des corrélations.
C'est assez magique parce que c'est la même représentation. Alors justement pour les représentations, on a vu que le coefficient de corrélation entre la variable B et la variable A était égal au cosinus de l'angle entre la variable B a et la variable b. Mais cette égalité, c'est pour l'angle dans l'espace. Or, je ne visualise pas l'angle dans l'espace, je le visualise dans le plan de projection. Donc là, il y a un petit schéma qui permet de voir les variables dans l'espace et leurs projections. Par exemple, les variables d et e ici sont très proches du plan de projection. Les variables dans l'espace se projettent proches. Leur projeté Hd est très proche de d parce que la variable D est proche du plan de projection et donc l'angle entre D et E sera très proche de l'angle dans le plan de projection. Et donc l'angle du plan de projection, je vais pouvoir l'utiliser pour visualiser la corrélation. Plus exactement, le cosinus de l'angle HDHE est très proche du cosinus de l'angle entre D et E parce que les variables sont bien projetées et donc le cosinus de l'angle entre HDHE est très proche du coefficient de corrélation entre la variable D et la variable E. Par contre, quand les variables sont mal projetées, ce qui est le cas par exemple pour les variables A et B, ces 2 variables sont mal projetées, l'angle ici dans le plan de projection est petit alors que l'angle dans l'espace est très grand. Il y a une flèche qui part avec une coordonnée élevée sur une 3ème dimension quand la flèche B est plus vers le bas avec une coordonnée faible sur la 3ème dimension. Et donc ces 2 flèches se projettent à peu près au même endroit dans le plan de projection mais ces flèches sont mal projetées et donc le cosinus de l'angle ici n'est pas le cosinus de l'angle dans l'espace. Donc je peux pas lire le coefficient de corrélation pour les variables A et B. Le cosinus de l'angle que je vois ici, un angle faible ici, c'est pas proche du coefficient de corrélation. Donc je ne peux lire les coefficients de corrélation que pour les variables qui sont bien projetées. Et les variables sont bien projetées si elles sont proches du cercle de corrélation. Puisqu'on a une hypersphère de rayon 1, on la coupe par un plan et donc elle se projette dans un cercle de rayon 1. Si la flèche est proche du bord du cercle, la variable est bien projetée et donc je peux visualiser l'angle entre les variables qui sont bien projetées. Par contre, pour les variables mal projetées, Ha et Hb ici se projettent à peu près au même endroit mais il est impossible pour moi, juste avec la projection, de savoir si la flèche A est vers moi et la flèche B derrière moi ou si les 2 flèches sont vers moi.
Dans un cas, il y a une forte corrélation positive, dans l'autre cas il n'y a pas de corrélation.
Donc on ne peut interpréter que les variables bien projetées. Alors une interprétation importante c'est la qualité de la projection. Cette qualité de la projection, on peut la mesurer avec le pourcentage d'inertie qui est expliqué par chaque axe, qui est expliqué par un plan. Donc le pourcentage d'inertie c'est aussi le pourcentage d'information expliqué par chaque axe. Donc on peut construire un diagramme en barres avec le pourcentage d'inertie expliqué par chaque dimension. Donc on voit ici le pourcentage d'inertie expliqué par la 1ère dimension qui est de l'ordre de 80% et par la 2ème dimension qui est de l'ordre de 18%. Donc ça va me dire qu'avec la 1ère et la 2ème dimension je vais expliquer 98% de l'information contenue dans mon jeu de données. Donc au départ j'ai 12 variables, je résume ça avec 2 dimensions et je récupère 98% de l'information. Donc j'ai un très bon résumé qui synthétise très bien ce qu'il y a sur mes 12 variables. Et puis sur les dernières dimensions ici, je n'ai quasiment pas d'information. Dans d'autres exemples, il y aura beaucoup plus d'informations sur les axes 3 et 4 et il sera intéressant d'aller regarder ces axes et ces dimensions et d'aller chercher à interpréter ces dimensions. Alors ces pourcentages d'inertie, on les voit sur les graphes, c'est ce qui est écrit ici. 80% d'information sur le premier axe et 19% sur le deuxième axe. On a un tableau qui nous donne le pourcentage d'inertie si on a construit une ACP sur un jeu de variables indépendantes. Donc ici dans ce tableau on peut lire le quantile à 95% du pourcentage d'inertie des 2 premières dimensions de l'ACP quand on a des variables indépendantes. Donc par exemple avec 15 individus et 12 variables, cette valeur de 47,8 me dit qu'en ayant fait 10000 ACP avec 15 individus et 12 variables indépendantes, je fais l'ACP, je calcule les pourcentages d'inertie des 2 premiers axes, eh bien il y a 95% des valeurs qui sont inférieures à 47,8. Donc si je fais une ACP et que mon pourcentage d'inertie sur le plan est inférieur à 47,8, ça veut dire que mon plan d'ACP n'explique pas plus que ce que j'aurais eu comme explication avec des variables indépendantes. Donc ça veut dire que mon résumé n'est pas très synthétique. Alors dans notre exemple, on avait une valeur de 98% qui est bien supérieure à ce 47,8 et donc ça signifie que le plan de l'ACP de notre exemple résume bien l'information. Il n'y a pas que des variables indépendantes dans mon jeu de données, il y a des liaisons fortes dans mon jeu de données. Donc ici c'est le tableau avec le nombre de variables qui est plus important. Alors d'autres aides à l'interprétation qui sont intéressantes, c'est si on a des variables supplémentaires Les variables supplémentaires sont des variables qui ne servent pas à construire les axes, c'est-à-dire que ce sont des variables qui ne servent pas à calculer les distances entre individus. Mais par contre, ce sont des variables qu'on va utiliser en complément, en supplémentaire, pour nous aider à interpréter les axes. On peut avoir des variables quantitatives ou des variables qualitatives. Quand on a des variables quantitatives, eh bien c'est très simple, on va projeter ces variables quantitatives sur le plan de l'ACP, exactement comme on avait projeté des variables pour nous aider à interpréter le graphique des individus. On calcule le coefficient, par exemple pour la latitude, le coefficient de corrélation entre la latitude et la 1ère dimension, le coefficient de corrélation entre la latitude et la 2ème dimension, et on dessine la variable. Et donc avec cette projection, ici on a les variables latitude, longitude, et puis 2 variables qu'on avait envie de regarder une fois qu'on avait commencé à interpréter nos données. On avait vu que le premier axe semblait opposer des variables où il faisait plutôt froid tout le temps à des variables où il faisait plutôt chaud tout le temps et donc on a calculé la variable moyenne annuelle. On voit que cette variable moyenne annuelle est très très corrélée à la première dimension.
Il y a un coefficient de corrélation qui vaut 1 avec la première dimension.
Ça veut dire que la première dimension c'est en gros la moyenne annuelle.
Et la 2ème dimension, on voit qu'elle est très liée à l'amplitude thermique. Il y a une corrélation qui est proche de -1, c'est-à-dire que les villes qui ont une faible coordonnée sur la 2ème dimension ont une forte amplitude thermique annuelle.
Les villes qui sont en haut, par exemple Brest, sont des villes qui ont une faible amplitude thermique annuelle. Donc ça c'est pour les variables quantitatives supplémentaires. Pour les variables qualitatives supplémentaires, on va projeter les barycentres des individus qui prennent une modalité. Donc j'ai une variable région qui prend 4 modalités: nord-est, nord-ouest, sud-est, sud-ouest. Et puis je vais calculer le barycentre des 3 villes du nord-ouest: Brest, Rennes, Nantes et je positionne la modalité nord-ouest au barycentre de ces 3 villes. De même, je mets la modalité nord-est au barycentre des villes Lille, Paris, Strasbourg qui sont les 3 villes du nord-est. Et puis de cette façon on va projeter toutes les modalités de la variable qualitative.
Notez bien que la variable qualitative est représentée non pas sur le graphe des variables mais sur le graphe des individus. On visualise les barycentres des modalités. Alors maintenant 2 aides à l'interprétation: la qualité de représentation et la contribution. Donc on va s'intéresser à la qualité de représentation d'une variable ou d'un individu. La qualité de représentation est mesurée par le cosinus carré de l'angle entre une variable et son projeté sur le plan ou sur un axe.
Et puis de même pour un individu, on va calculer le cosinus carré de l'angle entre le vecteur qui part du centre du nuage et le point i correspondant à l'individu et le vecteur qui part du centre du nuage et qui va sur le projeté Aj.
Ce cosinus carré est calculé axe par axe. Donc on voit par exemple que pour la variable janvier, le cosinus carré avec la première dimension vaut 0.58 et avec la deuxième dimension il vaut 0.42. Donc la qualité de projection sur le plan, je vais avoir besoin de sommer 0.58+ 0.42 qui vaut 1. Donc ça veut dire que le cosinus carré est égal à 1, donc ça veut dire que l'angle est très proche de 0. Et donc la variable est extrêmement bien projetée. De même pour les individus, le cosinus carré pour Bordeaux vaut 0.95 pour la première dimension, 0 pour la deuxième, donc si je somme j'ai un cos² qui vaut 0.95 avec le plan, donc Bordeaux est une ville qui est extrêmement bien projetée sur le plan de projection. Alors pourquoi s'intéresser à la qualité de représentation? Des individus qui sont bien projetés ou des variables qui sont bien projetées, je vais pouvoir interpréter leur proximité Par contre, 2 individus qui sont mal projetés, ça voudra dire qu'ils ne sont pas proches du plan et donc s'ils sont proches sur le plan, peut-être qu'ils sont éloignés dans l'espace par rapport à une 3e ou une 4e dimension. Donc on va interpréter les proximités entre individus si les individus sont bien projetés. Au niveau des contributions, autre critère, on peut calculer la contribution d'une variable ou la contribution d'un individu à la construction d'un axe. La contribution d'une variable, c'est juste le carré de la corrélation entre la variable et l'axe divisé par la somme des carrés des corrélations entre les variables et l'axe. Donc ça va me dire s'il y a une variable qui contribue beaucoup à la construction de l'axe, si l'axe a été construit surtout à cause d'une variable. Et puis même chose pour les contributions d'un individu, c'est la coordonnée au carré de l'individu sur l'axe divisée par la somme des carrés des coordonnées de l'ensemble des individus. Ces contributions sont exprimées en pourcentage. Là encore, s'il y a un individu qui contribue très fortement à la construction d'un axe, ça veut dire que peut-être qu'à lui seul il contribue à la formation de l'axe et sans cet individu on aurait un axe différent. Donc dans ce cas-là, ce qu'on fait c'est qu'on va dire que l'individu est très particulier, on va expliquer en quoi l'individu est très particulier et après ça peut être intéressant de refaire l'analyse sans cet individu pour voir si les axes changent, d'accord? Si la première dimension de variabilité est toujours la même ou bien si elle est un peu différente sans un individu qui est très particulier. Alors des aides à l'interprétation très importantes quand on a beaucoup de variables, c'est en fait une description automatique des axes avec les variables, donc avec les variables quantitatives et puis ensuite on verra avec les variables qualitatives. Alors comment faire? On va calculer les corrélations entre chaque variable et la dimension et on va trier les coefficients de corrélation. Ensuite on va ne garder que les coefficients de corrélation qui sont significativement différents de 0.
Donc pour la description de la première dimension, on voit que la variable qui est la plus corrélée c'est la variable moyenne qui a une corrélation qui est extrêmement proche de 1 et qui permet de décrire au mieux le premier axe. Mais il y a d'autres variables, la variable octobre ou la variable septembre, qui sont extrêmement liées et sont corrélées positivement à la première dimension. Et on voit aussi qu'il y a la variable latitude qui est corrélée négativement à la 1ère dimension. Donc il y a beaucoup de variables qui permettent de caractériser la 1ère dimension.
Et puis pour la 2ème dimension, il y a moins de variables qui permettent de décrire cette 2ème dimension.
Alors c'est un peu attendu puisque la 2ème dimension est moins liée aux variables que la 1ère par construction puisque la 1ère c'est la principale dimension de variabilité. Les variables janvier et décembre sont corrélées positivement à cette 2ème dimension et puis les variables juillet, longitude et amplitude qui sont corrélées négativement à la 2ème dimension. Alors on voit que pour cette description des dimensions, on a à la fois des variables actives, les mois de l'année, et des variables supplémentaires longitude, amplitude, moyenne par exemple.
Donc voilà pour les descriptions par les variables quantitatives.
Maintenant pour les variables qualitatives, on va s'intéresser à l'analyse de variance de la variable qui correspond aux coordonnées des individus sur l'axe expliquées en fonction de la variable qualitative qui nous intéresse.
Donc si on a plusieurs variables qualitatives, on va construire une analyse de variance par variable qualitative. On va construire un test de Fisher pour voir s'il y a une liaison significative entre la variable et les coordonnées des individus sur l'axe.
Et puis on peut aussi construire des tests de Student pour tester chaque modalité et la comparer à la moyenne générale.
Pour la variable qualitative région, on a l'état carré de l'analyse de variance qui vaut 0.6, que 60% des coordonnées des individus sur la 2ème dimension est expliquée par la variable région. Et ça c'est significatif. Et puis plus dans le détail, on voit que les villes du nord-ouest de la France ont une coordonnée significativement positive sur le 2ème axe et au contraire les villes du sud-est de la France ont une coordonnée significativement négative sur le 2ème axe. Pour résumer, quelle est la pratique de l'ACP? La première chose à faire c'est de choisir quelles seront les variables qui seront actives. Les variables actives, c'est-à-dire les variables qui vont servir à calculer les distances entre individus. Quelles sont les variables qui vont servir à construire les axes? Les autres variables seront des variables qui ne serviront pas à construire les axes mais qui pourront servir à interpréter les axes, les dimensions.
Ensuite, il faut déterminer si on doit réduire ou pas les variables.
Alors on a vu que si les variables étaient exprimées dans des unités différentes, il est nécessaire de réduire, donc il n'y a pas de question à se poser. Par contre, si les variables sont toutes de même unité, on peut réduire et accorder la même importance à chaque variable ou ne pas réduire et on accordera un peu plus d'importance aux variables qui ont une variance plus grande. Donc ensuite on réalise l'ACP. Ensuite on va choisir le nombre de dimensions à interpréter: est-ce qu'on interprète uniquement 2 dimensions ou est-ce qu'on interprète aussi la 3e et la 4e dimension? Auquel cas on fera les graphes avec les dimensions 1-2 mais aussi le graphe avec les dimensions 3-4. Et puis ensuite on va interpréter les résultats en regardant simultanément le graphe des individus et le graphe des variables. On va faire des allers-retours entre ces 2 graphes pour exprimer et comprendre les différences et les ressemblances entre individus et pour comprendre les liaisons entre variables. Et puis on peut utiliser des indicateurs pour enrichir l'interprétation, on peut calculer des contributions, utiliser les cos² pour bien être sûr que les proximités qu'on visualise sur le plan entre individus sont bien des proximités aussi dans l'espace global. Et puis finalement quand on dit que 2 individus se ressemblent, il est intéressant de revenir aux données brutes pour être sûr qu'on qu'on ne fait pas une mauvaise interprétation. À chaque fois que l'analyse nous suggère une interprétation, il faut revenir aux données brutes pour valider ce qu'on est en train d'interpréter. Revenir soit aux données brutes soit aux données centrées-réduites. Alors quelques compléments: il y a un livre sur l'analyse de données, il y a beaucoup de livres sur l'analyse de données, mais il y en a un qui reprend un peu cette présentation du cours qui est l'analyse de données avec R aux Presses Universitaires de Rennes. Il y a un package FactoMineR pour faire de l'ACP qui permet de faire des ACP avec des variables supplémentaires quantitatives, qualitatives, avec les aides à l'interprétation, les calculs des qualités de représentation, des contributions. Et puis vous pouvez retrouver des vidéos sur YouTube avec une chaîne YouTube et une playlist de plusieurs vidéos en français et donc certaines vidéos en anglais. Ça montre comment mettre en œuvre sous FactoMineR, les ACP de ce cours.
More from Yamossoun

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









