Ressources pour l’ACP

cercle des correlation ACP

L’ACP, ou Analyse en Composantes Principales, ou Principal Component Analysis en anglais, est une approche statistique qui est employée pour résumer l’information contenue dans une matrice (tableau) de données comportant un nombre important de variables numériques (je dirais à partir d’une dizaine jusqu’à une centaine, sans doute plus dans certains domaines).

Lorsque les données ne comportent que deux variables numériques, on peut facilement comprendre comment ces deux variables sont liées entre elles en réalisant un scatterplot. Mais lorsque le nombre de variables augmente, cela devient impossible à appréhender. L’ACP permet alors de passer d’un nuage de points (les observations) qui évolue dans un espace à N dimensions (N étant égal au nombre de variables (ou colonnes), à une représentation en deux dimensions, (ou éventuellement plusieurs représentations à deux dimensions).

1. Principe

De façon très résumé, en pratique l’ACP va rechercher l’axe dans lequel les observations sont le plus dispersées.

 

 

Cette animation est issue de ce post sur Cross Validated (n’hésitez pas à le consulter il est vraiment intéressant !).

Elle va ensuite considérer cet axe (c’est ce qu’on appelle la première composante principale), et son perpendiculaire (la seconde composante principale), pour définir un plan (le premier plan de l’ACP). Et pour résumer le nuage des observations, l’ACP va les projeter sur le plan défini. Une approche similaire est réalisée avec le nuage des variables.

A la fin de l’ACP, on obtient deux représentations graphiques, en deux dimensions : l’une concernant les observations, l’autre les variables, comme celles-ci :

ACP avec R

 

A partir de ces plots on va pouvoir étudier :

  • les relations entre les variables (les colonnes),
  • les relations entre les observations (lignes),
  • les relations entre les observations et les variables (par exemple, quelles sont les observations ayant des valeurs élevées pour telle ou telle variable).
  • essayer de donner une signification “métier” aux axes de l’ACP.

En réalité l’ACP ne s’arrête pas à 2 axes et en définie N-1. Mais, en pratique, on représente généralement les projections des observations et des variables sur les plans définis par les axes 1 et 2, voir 1 et 3 mais rarement plus.

Sans entrer dans le détail des calculs mathématiques, il est assez intuitif de comprendre que le passage d’un nuage de points à N dimensions, dans un espace à deux dimensions, est forcément imparfait et qu’une part de l’information originale se perd dans cette réduction. La dispersion du nuage de points dans les N dimensions originales s’appelle l’inertie, et pour évaluer la quantité d’information conservée par l’approche ACP, on calcul le pourcentage d’inertie expliqué par chacun des axes.Ces pourcentages sont d’ailleurs rapportés sur le plot du cercle des corrélations (plot des variables).

Dans le cadre des analyses prédictives, l’ACP n’est plus vraiment employée pour étudier les relations entres les observations ou entre les variables, mais simplement pour réduire le nombre de variables qui seront inclues dans le modèle de prédiction. Dans cette situation, les variables sont remplacée par les composantes principales.

2. Ressources vidéos

Si le paragraphe précédent est du charabia pour vous, je vous recommande VIVEMENT de visionner la vidéo que François Husson (d’agrocampus ouest) a réalisé sur l’ACP. Elle va de la théorie (expliquée de manière extrêmement pédagogique, avec des schémas, et des animations), à la pratique avec la réalisation d’une ACP avec le package FactoMineR (developpé, par François Husson). J’ai longtemps eu du mal à comprendre cette approche statistique et cette vidéo m’a BEAUCOUP BEAUCOUP aidé !

 

 

Et si vous n’accrochez pas, vous pouvez aussi essayer cette vidéo, de Jérôme Pagès, lui aussi d’agroucampus ouest. Elle est également très apprécié des étudiants :

ACP avec R

 

Si vous trouvez les vidéos trop longues, vous pouvez les visionner en vitesse 1.5, ça reste très compréhensible !

 

3.Le package FactoMineR

Plusieurs packages permettent de faire de l’ACP (vegan, ade4 par exemple), mais je vous recommande d’utiliser FactoMineR, car :

– l’ACP ne supporte pas les données manquantes. Or, par défaut, la fonction PCA() de FactoMineR les substitue par la moyenne de la variable. Cela est très pratique lorsque le jeu de données ne comporte que peu de données manquantes.
par défaut également, les données sont centrées, réduites ; cette procédure n’a donc pas besoin d’être spécifiée.
– les plots des variables et des observations sont générés de façon automatique.
– il est possible d’ajouter des variables supplémentaires sur les plots des variables et/ou des observations pour voir comment celles-ci sont liées aux axes de l’ACP, ou encore aux autres variables du jeu de données.
les sorties de la fonction PCA peuvent être utilisées avec le package factoextra développé par Alboukadel Kassambara (qui gère le site STHDA) afin d’améliorer les plots de base l’ACP ou en réaliser d’autres. Par exemple, pour visualiser la qualité de représentation de chaque variable, ou encore pour visualiser leur contribution aux axes.

4. Un Exemple

4.1 Les données du Décastar

Pour cette partie, je vais utiliser une partie du jeu de données décathlon (inclus dans le package FactoMineR). C’est un exemple ultra classique mais je le trouve vraiment pédagogique :

A l’origine le jeu de données comporte les résultats de 13 athlètes aux 10 épreuves du décathlon, et ce pour deux compétitions, le Décastar et les jeux olympiques. Ici, on va se limiter aux données du Décastar :

Le nom des athlètes n’est pas contenu dans une variable, mais en label des lignes. C’est ce qui permettra d’afficher le nom des athlètes sur le plot des observations.

En plus des 10 épreuves, le jeu de données comporte une variable “Rank” qui informe sur le classement de l’athlète et une variable “Points” qui contient le nombre de points réalisés.

 

4.2 La fonction PCA

Comme expliqué précédemment, par défaut, la fonction PCA() de FactoMineR centre et réduit les variables avant de réaliser l’ACP. Cette étape est importante afin que toutes les variables aient le même poids dans la construction des plans de l’ACP. Si pour une raison ou une autre vous souhaitez vous passer de la réduction des variables, (ce qui n’est pas recommandé) vous pouvez utiliser l’argument scale.unit=FALSE.

Ici, on va réaliser l’ACP uniquement sur les 10 variables des disciplines ; les variables score et rank seront ajoutées comme variables supplémentaires dans un second temps. Les plots des variables et des observations sont générés automatiquement.

ACP avec le logiciel R

 

Ici, on peut voir que l’axe 1 est plutôt expliqué par les variables du saut en longueur (long jump) , 100m, 110 mètres haies, alors que l’axe 2 est plutôt expliqué par le saut à la perche (Pole vault). La flèche du lancer de javelot est faible et ne peut donc pas s’interpréter.

4.3 Ajouter des variables supplémentaires

Il s’agit d’ajouter des variables sur les plots pour voir comment elles sont liées aux variables qui ont servi à construire l’ACP. Ces nouvelles variables ne sont pas prise en compte pour la définition des axes de l’ACP. On les ajoute après coup.

Pour illustrer l’ajout d’une variable supplémentaire de type catégoriel, je créé une variable “group” qui prend la valeur “high” si le nombre de points est > 8000, et “low” sinon :

 

J’ajoute les variables numériques Points et Rank, et la variable catégorielle group en utilisant les arguments quanti.supp et quali.supp :

ACP variab

Les résultats nous montrent que plus les athlètes sautent loin et courent rapidement les épreuves du 100 mètres et du 110 mètres haie plus leur nombre de points est important , et plus leur rang est faible (meilleur classement).

 

4.4 Autres types de résultats

La fonction summary() permet d’accéder à de nombreuses informations.

 

Dans la première partie des résultats, on retrouve les pourcentages d’inertie  expliqués par chaque axe, ainsi que les pourcentage cumulés:

 

pourcentages d'inertie

 

Remarque : les pourcentages d’inertie sont les valeurs propres ou d’eigen values (il s’agit de la quantité de variance expliquée), exprimées en pourcentage.

Il est également possible de réaliser un plot pour visualiser ces pourcentages d’inertie :

 

plot pourcentage inertie, valeurs propres

Dans la seconde partie des sorties de la fonction summary(), on retrouve les coordonnées de chaque observation (ici les athlètes) sur les différents axes de l’ACP, ainsi qu’une mesure de la contribution de l’observation sur chaque axe (ctr), et une mesure de sa représentation (cos2).

resultats observations

La troisième partie des résultats est identique à la deuxième, mais concerne les variables :

4.5 Utiliser le package factoextra

Le package factoextra peut être utilisé pour améliorer les représentations graphiques de base du package FactoMineR, et notamment pour explorer la contribution des variables aux axes, ou encore la qualité de leur représentation.

4.5.1 Visualiser le pourcentage d’inertie des axes

 

plot pourcentage inertie

4.5.2 Visualiser la qualité de la représentation des variables

qualité de la representation ACP

 

 

 

 

cercle des correlation ACP

 

4.5.3 Visualiser la contribution des variables aux axes

 

ACP logiciel R

4.5.4 Visualiser la qualité de la représentation des observations

 

ACP FactoMineR

 

Vous trouverez d’autres exemples de représentations ici.

 

Conclusion

L’ACP est une approche qui m’a longtemps posé problème, j’avais du mal à saisir le principe, et à interpréter les résultats. Pour en avoir discuté, à bâtons rompus, avec de nombreuses personnes, je sais que ces difficultés sont souvent partagées. J’espère donc que les ressources présentées dans cet article qui m’ont été très utiles, vous le seront aussi !

Si vous en connaissez d’autres, n’hésitez pas à me les indiquer en commentaire,

Et si cet article vous a plus, n’oubliez pas de le partager !

 

Partager l'article
  •  
  •  
  •  
  •  
  •  
    50
    Partages
  • 50
  •  
  •  
  •  
  •  

7 commentaires

  1. KOUAME Répondre

    Je recherchais justement un cours assezsouple sur l’ACP et vous me rendez ce grand service. Je vous remercie pour tout et surtout pour ces belles illustrations qui m’aideront beaucoup.

  2. Dany OTRON Répondre

    Bonjour Claire,
    Merci encore pour cet article pour qui vient enrichir nos connaissances.

  3. Akarth Répondre

    Merci pour le rappel très utile, cours effectuée en DEA d’économie mais trop générique à l’époque (avec Eviews). C’est on a du mal à trouver sur le net des ressources sur la question pour une mise à niveau.

  4. Perrine Répondre

    Très bon article merci!
    Je n’ai pas trouvé sur votre blog, auriez vous par hasard la même chose pour l’AFC?
    L’ACM?
    On ne sait jamais 🙂
    Très bonne continuation et à bientôt sur ce très bon blog!

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *