L'analyse en composantes principales (ACP) est l'outil de réduction de dimension le plus utilisé en statistiques exploratoires. R propose plusieurs implémentations — voici comment les utiliser et interpréter les résultats.
Principe de l'ACP
L'ACP transforme un tableau de données quantitatives en un nouveau jeu de coordonnées, les « composantes principales », qui maximisent successivement la variance captée. Les premières composantes contiennent l'essentiel de l'information.
Mathématiquement, c'est une diagonalisation de la matrice de covariance (ou de corrélation) des données centrées-réduites.
Avec prcomp (base R)
La fonction prcomp() est incluse dans R de base :
pca <- prcomp(data, scale. = TRUE)
summary(pca) donne la variance expliquée par chaque composante.
pca$rotation contient les coefficients de passage (loadings), pca$x les coordonnées individuelles.
Avec FactoMineR (plus riche)
Le package FactoMineR offre une ACP plus riche en sorties et en visualisations :
library(FactoMineR); library(factoextra)
pca <- PCA(data, graph = FALSE)
fviz_pca_biplot(pca) produit un biplot individus + variables, interprétable immédiatement.
Interpréter les résultats
- % de variance expliquée : on retient généralement les composantes qui cumulent 70-80% de la variance.
- Cercle des corrélations : variables proches du cercle = bien représentées ; variables proches entre elles = corrélées.
- Projection des individus : individus proches = profils similaires selon les composantes retenues.
Les étapes de l'analyse
Une ACP bien menée suit un workflow précis :
- Préparation des données : ne garder que les variables quantitatives, traiter les valeurs manquantes (suppression ou imputation), vérifier les outliers.
- Standardisation : centrer et réduire les variables (
scale = TRUE). Indispensable si les variables ont des unités ou des ordres de grandeur différents. - Choix du nombre de composantes : règle du coude sur l'éboulis des valeurs propres, critère de Kaiser (garder les axes avec valeur propre > 1), ou seuil de variance cumulée (70-80%).
- Interprétation des axes : examiner les contributions des variables aux axes retenus.
- Visualisation et commentaire : projections, cercles des corrélations, classifications supplémentaires.
Exemple complet avec iris
Le célèbre jeu de données iris (150 fleurs, 4 mesures + espèce) permet d'illustrer en quelques lignes :
library(FactoMineR); library(factoextra)
data(iris)
pca <- PCA(iris[, 1:4], graph = FALSE)
fviz_pca_biplot(iris_pca, habillage = iris$Species, addEllipses = TRUE)
Le biplot montre clairement la séparation entre setosa (bien à part) et les deux autres espèces (versicolor, virginica, plus proches).
Une question ou une suggestion ? Écrivez-nous.