cours
Tutoriel sur l'analyse en composantes principales dans R
Introduction à l'analyse en composantes principales (ACP)
En tant que data scientist dans le secteur du commerce de détail, imaginez que vous essayez de comprendre ce qui rend un client heureux à partir d'un ensemble de données contenant les cinq caractéristiques suivantes : dépenses mensuelles, âge, sexe, fréquence d'achat et évaluation du produit. Pour mieux analyser et tirer des conclusions exploitables, nous devons comprendre l'ensemble des données ou, à tout le moins, les visualiser. Les êtres humains ne peuvent pas facilement visualiser plus de trois dimensions, et il n'est donc pas facile de visualiser les données des clients avec cinq caractéristiques (dimensions). C'est là qu'intervient l'analyse en composantes principales (ACP).
"Mais qu'est-ce que l'analyse en composantes principales ?
Il s'agit d'une approche statistique qui peut être utilisée pour analyser des données de haute dimension et en extraire les informations les plus importantes. Pour ce faire, les données originales sont transformées en un espace de moindre dimension et les variables fortement corrélées sont regroupées. Dans notre scénario, l'ACP sélectionnerait trois caractéristiques telles que les dépenses mensuelles, la fréquence d'achat et l'évaluation du produit. Cela pourrait faciliter la visualisation et la compréhension des données.
Après ce tutoriel, vous aurez une meilleure compréhension de l'analyse en composantes principales et de la manière de l'appliquer à des scénarios réels en utilisant le célèbre package corrr de R.
Regardez et apprenez-en plus sur l'analyse en composantes principales dans R dans cette vidéo de notre cours.
Apprendre R pour l'apprentissage automatique
Comment fonctionne l'APC ? Un guide en 5 étapes
Même si nous nous concentrons sur l'ACP, gardons à l'esprit les cinq principales techniques de composantes principales suivantes, qui visent à résumer et à visualiser des données multivariées. L'ACP, contrairement aux autres techniques, ne fonctionne qu'avec des variables quantitatives.
Méthodes des composantes principales
Nous n'entrerons pas dans l'explication du concept mathématique, qui peut être assez complexe. Cependant, la compréhension des cinq étapes suivantes peut vous donner une meilleure idée de la manière de calculer l'ACP.
Les cinq étapes principales du calcul des composantes principales
Étape 1 - Normalisation des données
En reprenant l'exemple de l'introduction, considérons, par exemple, les informations suivantes pour un client donné.
- Dépenses mensuelles : 300
- L'âge : 27
- Evaluation : 4.5
Ces informations ont des échelles différentes et l'exécution d'une ACP à partir de ces données conduira à un résultat biaisé. C'est là qu'intervient la normalisation des données. Il garantit que chaque attribut a le même niveau de contribution, évitant ainsi qu'une variable ne domine les autres. Pour chaque variable, la normalisation est effectuée en soustrayant sa moyenne et en la divisant par son écart-type.
Étape 2 - Matrice de covariance
Comme son nom l'indique, cette étape consiste à calculer la matrice de covariance à partir des données normalisées. Il s'agit d'une matrice symétrique, et chaque élément (i, j) correspond à la covariance entre les variables i et j.
Étape 3 - Vecteurs propres et valeurs propres
Géométriquement, un vecteur propre représente une direction telle que "vertical" ou "90 degrés". Une valeur propre, en revanche, est un nombre représentant la quantité de variance présente dans les données pour une direction donnée. À chaque vecteur propre correspond une valeur propre.
Étape 4 - Sélection des composantes principales
Il y a autant de paires de vecteurs propres et de valeurs propres que de variables dans les données. Dans les données ne comportant que les dépenses mensuelles, l'âge et le taux, il y aura trois paires. Toutes les paires ne sont pas pertinentes. Ainsi, le vecteur propre ayant la valeur propre la plus élevée correspond à la première composante principale. La deuxième composante principale est le vecteur propre ayant la deuxième valeur propre la plus élevée, et ainsi de suite.
Étape 5 - Transformation des données dans un nouvel espace dimensionnel
Cette étape consiste à réorienter les données originales sur un nouveau sous-espace défini par les composantes principales. Cette réorientation est effectuée en multipliant les données originales par les vecteurs propres calculés précédemment.
Il est important de se rappeler que cette transformation ne modifie pas les données originales elles-mêmes, mais qu'elle fournit une nouvelle perspective pour mieux représenter les données.
Applications de l'analyse en composantes principales
L'analyse en composantes principales a de nombreuses applications dans notre vie quotidienne, notamment (mais pas uniquement) dans les domaines de la finance, du traitement d'images, des soins de santé et de la sécurité.
Finances
Prévoir les cours des actions à partir des cours passés est une notion utilisée dans la recherche depuis des années. L'ACP peut être utilisée pour réduire la dimensionnalité et analyser les données afin d'aider les experts à trouver les composantes pertinentes qui expliquent la majeure partie de la variabilité des données. Vous pouvez en savoir plus sur la réduction de la dimensionnalité dans R dans notre cours dédié.
Traitement des images
Une image est composée de plusieurs éléments. L'ACP est principalement appliquée à la compression d'images pour conserver les détails essentiels d'une image donnée tout en réduisant le nombre de dimensions. En outre, l'ACP peut être utilisée pour des tâches plus complexes telles que la reconnaissance d'images.
Soins de santé
Dans la même logique de compression d'images. L'ACP est utilisée dans les examens d'imagerie par résonance magnétique (IRM) pour réduire la dimensionnalité des images afin d'améliorer la visualisation et l'analyse médicale. Elle peut également être intégrée dans des technologies médicales utilisées, par exemple, pour reconnaître une maladie donnée à partir d'images scannées.
Sécurité
Les systèmes biométriques utilisés pour la reconnaissance des empreintes digitales peuvent intégrer des technologies tirant parti de l'analyse en composantes principales pour extraire les caractéristiques les plus pertinentes, telles que la texture de l'empreinte digitale et des informations supplémentaires.
Exemple concret d'ACP en R
Maintenant que vous comprenez la théorie sous-jacente de l'ACP, vous êtes enfin prêt à la mettre en pratique.
Cette section couvre toutes les étapes de l'installation des paquets appropriés, du chargement et de la préparation des données, de l'application de l'analyse en composantes principales dans R et de l'interprétation des résultats.
Le code source est disponible dans l'espace de travail de DataCamp.
Mise en place de l'environnement
Pour mener à bien ce tutoriel, vous aurez besoin des bibliothèques suivantes, et chacune d'entre elles nécessite deux étapes principales pour être utilisée efficacement :
- Installez la bibliothèque pour accéder à toutes les fonctions.
- Chargement pour pouvoir utiliser toutes les fonctions.
paquet corrr dans R
Il s'agit d'un paquetage R pour l'analyse des corrélations. Il se concentre principalement sur la création et la manipulation des cadres de données R. Vous trouverez ci-dessous les étapes à suivre pour installer et charger la bibliothèque.
install.packages("corrr")
library('corrr')
Paquet ggcorrplot dans R
Le paquet ggcorrplot fournit de nombreuses fonctions, mais ne se limite pas à la fonction ggplot2 qui facilite la visualisation des matrices de corrélation. Comme pour l'instruction ci-dessus, l'installation est simple.
install.packages("ggcorrplot")
library(ggcorrplot)
FactoMineR en R
Principalement utilisé pour l'analyse de données exploratoires multivariées, le paquet factoMineR donne accès au module ACP pour effectuer une analyse en composantes principales.
install.packages("FactoMineR")
library("FactoMineR")
paquet factoextra dans R
Ce dernier paquet fournit toutes les fonctions nécessaires pour visualiser les résultats de l'analyse en composantes principales. Ces fonctions incluent, sans s'y limiter, le scree plot, le biplot, pour ne mentionner que deux des techniques de visualisation abordées plus loin dans l'article.
Explorer les données
Avant de charger les données et d'effectuer toute autre exploration, il est bon de comprendre et de disposer des informations de base relatives aux données avec lesquelles vous allez travailler.
Données sur les protéines
L'ensemble de données sur les protéines est un ensemble de données multivariées à valeurs réelles décrivant la consommation moyenne de protéines par les citoyens de 25 pays européens.
Pour chaque pays, il y a dix colonnes. Les huit premiers correspondent aux différents types de protéines. Le dernier correspond à la valeur totale des valeurs moyennes des protéines.
Voyons un aperçu rapide des données.
Tout d'abord, nous chargeons les données à l'aide de la fonction read.csv()
, puis str()
, ce qui donne l'image ci-dessous.
protein_data <- read.csv("protein.csv")
str(protein_data)
Nous pouvons constater que l'ensemble de données comporte 25 observations et 11 colonnes, et que chaque variable est numérique, à l'exception de la colonne Pays, qui est un texte.
Description des données relatives aux protéines
Vérifier la présence de valeurs nulles
La présence de valeurs manquantes peut fausser les résultats de l'ACP. Il est donc fortement recommandé d'adopter l'approche appropriée pour s'attaquer à ces valeurs. Notre tutoriel Top Techniques to Handle Missing Values Every Data Scientist Should Know peut vous aider à faire le bon choix.
colSums(is.na(protein_data))
La fonction colSums()
combinée à la fonction is.na()
renvoie le nombre de valeurs manquantes dans chaque colonne. Comme nous pouvons le voir ci-dessous, aucune des colonnes ne présente de valeurs manquantes.
Nombre de valeurs manquantes dans chaque colonne
Normaliser les données
Comme indiqué au début de l'article, l'ACP ne fonctionne qu'avec des valeurs numériques. Nous devons donc nous débarrasser de la colonne Pays. De même, la colonne Total n'est pas pertinente pour l'analyse puisqu'il s'agit de la combinaison linéaire des variables numériques restantes.
Le code ci-dessous crée de nouvelles données avec uniquement des colonnes numériques.
numerical_data <- protein_data[,2:10]
head(numerical_data)
Avant la normalisation des données (seules les cinq premières colonnes sont affichées)
La normalisation peut maintenant être appliquée à l'aide de la fonction scale().
data_normalized <- scale(numerical_data)
head(data_normalized)
Données normalisées (seules les cinq premières colonnes sont affichées)
Application de l'ACP
Toutes les ressources sont maintenant disponibles pour effectuer l'analyse ACP. Tout d'abord, la fonction princomp()
calcule l'ACP et la fonction summary()
affiche le résultat.
data.pca <- princomp(data_normalized)
summary(data.pca)
R Résumé de l'APC
La capture d'écran précédente montre que neuf composantes principales ont été générées (Comp.1 à Comp.9), ce qui correspond également au nombre de variables dans les données.
Chaque composante explique un pourcentage de la variance totale de l'ensemble des données. Dans la section Proportion cumulée, la première composante principale explique près de 77 % de la variance totale. Cela signifie que près des deux tiers des données de l'ensemble des 9 variables peuvent être représentées par la seule première composante principale. Le second explique 12,08% de la variance totale.
La proportion cumulée de Comp.1 et Comp.2 explique près de 89% de la variance totale. Cela signifie que les deux premières composantes principales peuvent représenter fidèlement les données.
C'est une bonne chose d'avoir les deux premiers éléments, mais que signifient-ils vraiment ?
Pour répondre à cette question, il convient d'étudier leur relation avec chaque colonne à l'aide des coefficients de pondération de chaque composante principale.
data.pca$loadings[, 1:2]
Matrice de chargement des deux premières composantes principales
La matrice de chargement montre que la première composante principale présente des valeurs positives élevées pour la viande rouge, la viande blanche, les œufs et le lait. Toutefois, les valeurs pour les céréales, les légumineuses, les fruits à coque et les oléagineux, ainsi que les fruits et légumes sont relativement négatives. Cela suggère que les pays ayant une consommation plus élevée de protéines animales sont en excès, tandis que les pays ayant une consommation plus faible sont en déficit.
En ce qui concerne la deuxième composante principale, elle présente des valeurs négatives élevées pour le poisson, les féculents et les fruits et légumes. Cela implique que les régimes alimentaires des pays sous-jacents sont fortement influencés par leur situation géographique, par exemple les régions côtières pour le poisson et les régions intérieures pour un régime riche en légumes et en pommes de terre.
Visualisation des composantes principales
L'analyse précédente de la matrice de chargement a permis de bien comprendre la relation entre chacune des deux premières composantes principales et les attributs des données. Cependant, il se peut qu'elle ne soit pas attrayante sur le plan visuel.
Il existe quelques stratégies de visualisation standard qui peuvent aider l'utilisateur à se faire une idée des données, et cette section vise à couvrir certaines de ces approches, en commençant par le scree plot.
Scree Plot
La première approche de la liste est le scree plot. Il permet de visualiser l'importance de chaque composante principale et peut être utilisé pour déterminer le nombre de composantes principales à retenir. Le scree plot peut être généré à l'aide de la fonction fviz_eig()
.
fviz_eig(data.pca, addlabels = TRUE)
Scree plot des composantes
Ce graphique montre les valeurs propres dans une courbe descendante, de la plus élevée à la plus basse. Les deux premières composantes peuvent être considérées comme les plus significatives puisqu'elles contiennent près de 89% de l'information totale des données.
Biplot des attributs
Le biplot permet de visualiser les similitudes et les dissemblances entre les échantillons et montre en outre l'impact de chaque attribut sur chacune des composantes principales.
# Graph of the variables
fviz_pca_var(data.pca, col.var = "black")
Biplot des variables par rapport aux composantes principales
Trois informations principales peuvent être observées à partir du graphique précédent.
- Tout d'abord, toutes les variables regroupées sont positivement corrélées entre elles, ce qui est le cas par exemple pour la viande blanche/rouge, le lait et les œufs qui sont positivement corrélés entre eux. Ce résultat est surprenant car ils ont les valeurs les plus élevées dans la matrice de chargement par rapport à la première composante principale.
- Ensuite, plus la distance entre la variable et l'origine est élevée, mieux la variable est représentée. D'après le biplot, les œufs, le lait et la viande blanche ont une magnitude plus élevée que la viande rouge et sont donc bien représentés par rapport à cette dernière.
- Enfin, les variables qui sont négativement corrélées sont affichées de part et d'autre de l'origine du graphique.
Contribution de chaque variable
L'objectif de la troisième visualisation est de déterminer dans quelle mesure chaque variable est représentée dans un composant donné. Cette qualité de représentation est appelée Cos2 et correspond au cosinus carré. Elle est calculée à l'aide de la fonction fviz_cos2
.
- Une valeur faible signifie que la variable n'est pas parfaitement représentée par cette composante.
- Une valeur élevée, en revanche, signifie une bonne représentation de la variable sur ce composant.
fviz_cos2(data.pca, choice = "var", axes = 1:2)
Le code ci-dessus a calculé la valeur du cosinus carré pour chaque variable par rapport aux deux premières composantes principales.
D'après l'illustration ci-dessous, les céréales, les graines oléagineuses, les œufs et le lait sont les quatre variables dont le cos2 est le plus élevé et qui contribuent donc le plus aux PC1 et PC2.
Contribution des variables aux composantes principales
Biplot combiné avec cos2
Les deux dernières approches de visualisation : le biplot et l'importance des attributs peuvent être combinées pour créer un seul biplot, où les attributs ayant des scores cos2 similaires auront des couleurs similaires. Pour ce faire, la fonction fviz_pca_var
est réglée avec précision comme suit :
fviz_pca_var(data.pca, col.var = "cos2",
gradient.cols = c("black", "orange", "green"),
repel = TRUE)
D'après le graphique ci-dessous :
- Les attributs à cos2 élevé sont colorés en vert : Céréales, légumineuses, graines oléagineuses, œufs et lait.
- Les attributs cos2 moyens ont une couleur orange : la viande blanche, les féculents, le poisson et la viande rouge.
- Enfin, les attributs à faible cos2 ont une couleur noire : les fruits et les légumes,
Combinaison de biplot et de cos2 score
Conclusion
Cet article a traité de l'analyse en composantes principales et de son importance dans l'analyse des données à l'aide de la matrice de corrélation du progiciel corrr. En plus de couvrir certaines applications du monde réel, il vous a également guidé à travers un exemple d'ACP avec différentes stratégies de visualisation, de l'utilisation de la fonction existante à l'affinement en utilisant la combinaison de biplot et cos2 pour une meilleure compréhension et visualisation de la relation entre l'analyse ACP dans r et les attributs.
Nous espérons qu'il vous permettra d'acquérir les compétences nécessaires pour visualiser et comprendre efficacement les informations cachées dans vos données.
Pour approfondir votre apprentissage de l'analyse en composantes principales, consultez le tutoriel Analyse en composantes principales en Python. Il illustre l'utilisation de l'ACP avec Python sur des ensembles de données tabulaires et d'images. Notre cours Introduction à R est une bonne étape pour maîtriser les bases de l'analyse de données en R, y compris les vecteurs, les listes et les cadres de données, et pour s'entraîner à utiliser R avec des ensembles de données réels.
Obtenez une certification dans le rôle de Data Scientist de vos rêves
Nos programmes de certification vous aident à vous démarquer et à prouver aux employeurs potentiels que vos compétences sont adaptées à l'emploi.

FAQ sur l'analyse ACP
L'ACP est-elle une extraction ou une sélection de caractéristiques ?
L'ACP s'appuie sur une transformation linéaire non supervisée pour effectuer l'extraction des caractéristiques et la réduction de la dimensionnalité.
Quand devez-vous utiliser l'ACP ?
Il est recommandé d'utiliser l'ACP lorsqu'il s'agit de variables fortement corrélées. En cas de faible corrélation, l'ACP peut ne pas réussir à mieux réduire les données.
Quelles sont les limites de l'ACP ?
Tout d'abord, l'ACP ne fonctionne qu'avec des variables numériques. Elle ne fonctionne donc pas bien lorsque les variables ne sont pas fortement corrélées. En outre, l'ACP est sensible à l'échelle des caractéristiques et les résultats sont affectés par les valeurs aberrantes.
Quel est le principal avantage de l'ACP ?
L'APC comprend de multiples avantages et n'est pas limité à :
- Réduire le nombre de variables dans les données en supprimant celles qui sont bruyantes, ce qui peut également réduire l'ajustement excessif.
- Améliorer les performances des algorithmes en se concentrant uniquement sur les caractéristiques pertinentes.
- Améliorer la visualisation des données pour une meilleure compréhension des données.
Qu'est-ce que PC1 et PC2 dans l'analyse en composantes principales ?
L'axe PC1 correspond à la première direction principale le long de laquelle les données présentent la plus grande variation. L'axe PC2 correspond à la deuxième direction la plus importante le long de laquelle les données présentent la plus grande variation. De même, PC1 est toujours orthogonal à PC2.
Quelles sont les hypothèses de l'analyse en composantes principales ?
L'analyse en composantes principales repose sur les hypothèses suivantes :
- Il existe une combinaison linéaire entre les variables.
- Il suppose que les composantes principales ayant la variance la plus élevée sont plus importantes que celles qui ne le sont pas, et considère qu'elles incluent le bruit dans les données.
- Les erreurs expérimentales constituent d'autres valeurs aberrantes dans les données.
- L'ensemble des données issues de l'ACP donne une excellente représentation des données d'origine.
Comment réaliser une ACP dans R ?
Le paquet factoMineR donne accès au module PCA pour effectuer l'analyse en composantes principales dans R.
Cours pour R
cours
Intermédiaire R
cours