ACP dans R : calcul, visualisation et interprétation
Résumez de nombreuses variables corrélées en quelques dimensions, puis lisez les variables, les individus et le biplot
Un guide pratique de l’analyse en composantes principales (ACP) dans R avec FactoMineR et factoextra : calculez l’ACP avec PCA(), lisez les valeurs propres et le graphique des éboulis, tracez le cercle des corrélations des variables, classez les contributions des variables et le cos2, représentez les individus, construisez le biplot et accédez à chaque résultat avec get_pca_var() / get_pca_ind(). Réalisé sur les données decathlon2.
Date de publication
24 juin 2026
Modifié
7 juillet 2026
AstucePoints clés
L’ACP résume de nombreuses variables numériques corrélées en quelques composantes principales non corrélées qui conservent l’essentiel de la variation — vous pouvez ainsi représenter et interpréter un tableau de grande dimension.
Calculez-la avec PCA() de FactoMineR (qui standardise les variables pour vous), puis visualisez tout avec factoextra.
Les valeurs propres (get_eigenvalue()) vous indiquent quelle part de variance chaque composante détient ; le graphique des éboulis (fviz_eig()) vous aide à décider combien en conserver.
Le cercle des corrélations des variables (fviz_pca_var()) montre quelles variables vont ensemble ; les contributions (fviz_contrib()) et le cos2 (fviz_cos2()) vous indiquent quelles variables pilotent chaque composante et y sont bien représentées.
Le graphique des individus (fviz_pca_ind()) positionne les observations ; le biplot (fviz_pca_biplot()) superpose les deux — lisez les directions des variables, pas les positions absolues.
Extrayez chaque nombre avec get_pca_var() et get_pca_ind() (coordonnées, cos2, contributions).
L’analyse en composantes principales (ACP) résume et visualise l’information contenue dans un jeu de données décrit par plusieurs variables quantitatives inter-corrélées. Chaque variable est une dimension, et dès que vous en avez plus de trois, un espace multidimensionnel devient impossible à représenter.
L’ACP extrait l’information importante et la ré-exprime sous la forme d’un petit ensemble de nouvelles variables, les composantes principales. Chaque composante est une combinaison linéaire des variables d’origine, et le nombre de composantes est au plus égal au nombre de variables d’origine. L’objectif est de trouver les directions — les composantes principales — selon lesquelles les données varient le plus, puis de conserver les premières. Autrement dit, l’ACP réduit un jeu de données multivarié à deux ou trois composantes que vous pouvez représenter, avec une perte d’information minimale.
Utilisez-la lorsque vous avez de nombreuses mesures numériques corrélées et que vous voulez : repérer des motifs cachés, éliminer le bruit et la redondance, et voir quelles variables évoluent ensemble. L’ACP est particulièrement utile lorsque les variables sont fortement corrélées — la corrélation signifie de la redondance, et la redondance est exactement ce que l’ACP compresse.
Nous utiliserons le jeu de données decathlon2 de factoextra : les performances d’athlètes lors de deux événements sportifs (Decastar et Jeux olympiques). Il comporte 27 individus (athlètes) décrits par 13 variables.
Tous les individus et variables n’entrent pas dans l’ACP — c’est un choix pédagogique délibéré :
Individus actifs (lignes 1:23) : utilisés pour construire les composantes principales.
Individus supplémentaires (lignes 24:27) : non utilisés pour construire les composantes — leurs coordonnées sont prédites a posteriori.
Variables actives (colonnes 1:10) : les dix résultats d’épreuves utilisés pour construire les composantes.
Variables supplémentaires : colonnes 11–12 (rang, points — continues) et colonne 13 (la compétition — une variable catégorielle/facteur, utile plus tard pour la coloration).
Nous commençons par le sous-ensemble actif — lignes 1:23, colonnes 1:10 :
library(factoextra)data(decathlon2)# Keep active individuals (rows 1:23) and active variables (cols 1:10)decathlon2.active <- decathlon2[1:23, 1:10]# A peek at the first 6 columns of the first 4 athleteshead(decathlon2.active[, 1:6], 4)
NoteStandardisez d’abord — mais PCA() le fait pour vous
L’ACP repose sur des distances, donc les variables aux échelles plus grandes (secondes vs mètres vs points) domineraient. La solution est de mettre chaque variable à l’échelle, à une moyenne de 0 et un écart-type de 1. La fonction de base est scale(), maisPCA() de FactoMineR fixe scale.unit = TRUE par défaut et standardise les données automatiquement — vous n’avez donc pas besoin de les standardiser à la main avant de l’appeler.
Calculer l’ACP
L’outil de référence est PCA() de FactoMineR. Sa forme simplifiée est PCA(X, scale.unit = TRUE, ncp = 5, graph = TRUE) :
X — un data frame ; les lignes sont des individus, les colonnes des variables numériques.
scale.unit — si TRUE (la valeur par défaut), les variables sont d’abord mises à l’échelle pour avoir une variance unitaire.
ncp — combien de dimensions conserver dans les résultats (5 par défaut).
graph — si TRUE, les graphiques sont tracés immédiatement ; nous fixons FALSE et les traçons nous-mêmes avec factoextra.
Installez les deux packages une fois, puis lancez l’analyse sur le sous-ensemble actif :
L’objet res.pca est une liste contenant tous les résultats — les valeurs propres, ainsi que les coordonnées, le cos2 et les contributions pour les variables comme pour les individus. Son affichage en montre le menu complet :
**Results for the Principal Component Analysis (PCA)**
The analysis was performed on 23 individuals, described by 10 variables
*The results are available in the following objects:
name description
1 "$eig" "eigenvalues"
2 "$var" "results for the variables"
3 "$var$coord" "coord. for the variables"
4 "$var$cor" "correlations variables - dimensions"
5 "$var$cos2" "cos2 for the variables"
6 "$var$contrib" "contributions of the variables"
7 "$ind" "results for the individuals"
8 "$ind$coord" "coord. for the individuals"
9 "$ind$cos2" "cos2 for the individuals"
10 "$ind$contrib" "contributions of the individuals"
11 "$call" "summary statistics"
12 "$call$centre" "mean of the variables"
13 "$call$ecart.type" "standard error of the variables"
14 "$call$row.w" "weights for the individuals"
15 "$call$col.w" "weights for the variables"
Nous allons décortiquer chacun de ces éléments avec factoextra ci-dessous.
Valeurs propres et graphique des éboulis
Les valeurs propres mesurent quelle part de variance chaque composante principale détient. Elles sont grandes pour les premières composantes et diminuent pour les suivantes — la première composante pointe le long de la direction de variation maximale. Extrayez-les avec get_eigenvalue() :
eigenvalue — la variance détenue par chaque composante. Elles totalisent 10 ici (10 variables standardisées, chacune de variance 1).
variance.percent — cette valeur propre en part du total. La première composante détient 4.124 / 10 = 41.24% de la variation.
cumulative.variance.percent — le total cumulé. Les deux premières composantes ensemble expliquent 41.24% + 18.39% ≈ 59.6% ; les trois premières atteignent environ 72%.
Combien de composantes conserver ? Deux règles courantes :
Valeur propre > 1 (la règle de Kaiser) — sur des données standardisées, une valeur propre supérieure à 1 signifie que la composante détient plus de variance qu’une seule variable d’origine, elle vaut donc la peine d’être conservée. Ici, cela désigne les trois premières.
Une part de variance cible — conservez suffisamment de composantes pour atteindre, disons, 70% ou 80% du total.
Il n’y a pas de nombre « correct » objectif — cela dépend de votre domaine et de vos données ; en pratique vous examinez les premières composantes à la recherche d’une structure intéressante. Une aide visuelle est le graphique des éboulis : les valeurs propres (en pourcentage de variance) ordonnées de la plus grande à la plus petite, avec fviz_eig() :
La courbe chute fortement, puis s’aplatit. Vous pourriez raisonnablement vous arrêter à la cinquième composante — les cinq premières détiennent 87% de l’information contenue dans les données.
Graphique des variables
Passons maintenant à la partie la plus utilisée d’une ACP : quelles variables vont ensemble, et lesquelles pilotent chaque composante.
Extrayez les résultats des variables avec get_pca_var() — il renvoie une liste de matrices pour les variables actives (coord = coordonnées, cor = corrélations, cos2 = qualité de représentation, contrib = contributions) :
Principal Component Analysis Results for variables
===================================================
Name Description
1 "$coord" "Coordinates for the variables"
2 "$cor" "Correlations between variables and dimensions"
3 "$cos2" "Cos2 for the variables"
4 "$contrib" "contributions of the variables"
Les trois que vous utiliserez le plus :
var$coord — les coordonnées des variables, utilisées pour tracer le cercle des corrélations.
var$cos2 — la qualité de représentation sur la carte factorielle (elle est égale au carré des coordonnées).
var$contrib — la contribution (%) de chaque variable à chaque composante.
Cercle des corrélations
La coordonnée d’une variable sur une composante est sa corrélation avec cette composante, le graphique des variables est donc un cercle des corrélations. Les coordonnées sont :
Voici le graphique des corrélations des variables. Lisez-le ainsi :
Les variables corrélées positivement pointent dans la même direction et se regroupent.
Les variables corrélées négativement pointent dans des directions opposées (de part et d’autre de l’origine).
La distance à l’origine mesure la qualité de représentation d’une variable : les flèches qui atteignent le cercle sont bien captées par ces deux composantes ; les flèches courtes près du centre ne le sont pas.
Qualité de représentation (cos2)
La qualité de représentation est le cos2 (cosinus carré = carré des coordonnées). La somme du cos2 d’une variable sur toutes les composantes vaut 1 ; si deux composantes la captent parfaitement, son cos2 sur ces deux-là totalise 1 et elle se place sur le cercle.
Ou bien sommez le cos2 sur les deux premières dimensions sous forme de diagramme en barres avec fviz_cos2() :
library(FactoMineR)library(factoextra)res.pca <-PCA(decathlon2[1:23, 1:10], graph =FALSE)# Total cos2 of variables on Dim.1 and Dim.2fviz_cos2(res.pca, choice ="var", axes =1:2)
Un cos2 élevé signifie que la variable est bien représentée (et se place près du cercle) ; un cos2 faible signifie qu’elle est mal représentée (près du centre) — n’accordez pas trop d’importance à l’endroit où elle tombe. Vous pouvez aussi colorer le cercle des corrélations selon le cos2 pour combiner les deux vues :
La contribution est la part (%) de la variance d’une composante qu’une variable explique. Les variables qui sont fortement corrélées à la PC1 et à la PC2 sont les plus importantes pour expliquer les données ; les variables qui ne sont corrélées à aucune composante contribuent peu et pourraient être écartées.
Plus la contribution est grande, plus la variable façonne cette composante. Tracez les principaux contributeurs de chaque composante avec fviz_contrib() :
library(FactoMineR)library(factoextra)res.pca <-PCA(decathlon2[1:23, 1:10], graph =FALSE)# Contributions to PC1fviz_contrib(res.pca, choice ="var", axes =1, top =10)
# Contributions to PC2fviz_contrib(res.pca, choice ="var", axes =2, top =10)
La ligne pointillée rouge est la contribution moyenne attendue : si toutes les variables contribuaient également, chacune représenterait 1 / 10 = 10%. Une variable au-dessus de la ligne est un contributeur important à cette composante. Ici, X100m, Long.jump et Pole.vault contribuent le plus aux deux premières dimensions. Colorez le cercle des corrélations selon la contribution pour le voir sur la carte :
Notecos2 vs contribution — ils répondent à des questions différentes
Le cos2 demande « cette variable est-elle bien représentée sur ces axes ? » (qualité). La contribution demande « dans quelle mesure cette variable a-t-elle façonné cet axe ? » (influence). Une variable peut être bien représentée (cos2 élevé) tout en contribuant peu à une composante donnée, et inversement — lisez les deux.
Description des dimensions
Pour obtenir les variables les plus significativement associées à chaque composante (triées par la p-value de la corrélation), utilisez dimdesc() de FactoMineR :
library(FactoMineR)data(decathlon2)res.pca <-PCA(decathlon2[1:23, 1:10], graph =FALSE)res.desc <-dimdesc(res.pca, axes =c(1, 2), proba =0.05)# Variables most associated with dimension 1res.desc$Dim.1
Link between the variable and the continuous variables (R-square)
=================================================================================
correlation p.value
Long.jump 0.7941806 6.059893e-06
Discus 0.7432090 4.842563e-05
Shot.put 0.7339127 6.723102e-05
High.jump 0.6100840 1.993677e-03
Javeline 0.4282266 4.149192e-02
X400m -0.7016034 1.910387e-04
X110m.hurdle -0.7641252 2.195812e-05
X100m -0.8506257 2.727129e-07
$quanti contient les résultats des variables quantitatives, triés par la p-value de la corrélation — une lecture rapide et objective de ce que chaque dimension signifie.
Graphique des individus
Les individus sont les athlètes. Extrayez leurs résultats avec get_pca_ind() — même structure que les variables (coord, cos2, contrib) :
Principal Component Analysis Results for individuals
===================================================
Name Description
1 "$coord" "Coordinates for the individuals"
2 "$cos2" "Cos2 for the individuals"
3 "$contrib" "contributions of the individuals"
Tracez les individus avec fviz_pca_ind(), colorés selon leur cos2 afin de voir quels athlètes sont bien représentés :
Les individus proches les uns des autres se ressemblent. Comme pour les variables, un cos2 élevé signifie que l’individu est bien représenté sur ces deux dimensions.
Les individus contribuent eux aussi aux composantes. Le même fviz_contrib() indique quels athlètes façonnent les deux premières dimensions, avec choice = "ind" :
library(FactoMineR)library(factoextra)res.pca <-PCA(decathlon2[1:23, 1:10], graph =FALSE)# Contribution of individuals to Dim.1 and Dim.2fviz_contrib(res.pca, choice ="ind", axes =1:2)
Les athlètes au-dessus de la ligne pointillée rouge pèsent le plus sur les deux premières composantes — généralement les performeurs extrêmes situés loin de l’origine sur la carte des individus.
Colorer les individus par groupe
Une variable facteur peut colorer les individus par groupes, avec des ellipses de concentration. Le sous-ensemble decathlon2.active n’a pas de variable de regroupement, nous le démontrerons donc sur les données intégrées iris, en utilisant Species. Calculez d’abord l’ACP (en écartant la colonne non numérique Species), puis tracez :
library(FactoMineR)library(factoextra)data(iris)# Drop the Species column (index 5) before the PCAiris.pca <-PCA(iris[, -5], graph =FALSE)fviz_pca_ind(iris.pca,geom.ind ="point", # points only, no labelscol.ind = iris$Species, # colour by speciespalette ="jco", # colourblind-safe journal paletteaddEllipses =TRUE, # concentration ellipseslegend.title ="Species")
setosa se sépare nettement ; versicolor et virginica se chevauchent un peu. Passez à des ellipses de confiance avec ellipse.type = "confidence", ou retirez le point moyen du groupe avec mean.point = FALSE.
Le biplot
Le biplot superpose les individus et les variables sur un même graphique avec fviz_pca_biplot() :
Un biplot est surtout utile avec un nombre modeste de variables et d’individus — sinon c’est un enchevêtrement. Et comme les individus et les variables ne sont pas à la même échelle, lisez la direction des flèches de variables, pas les positions absolues :
Un individu du même côté qu’une variable a une valeur élevée pour celle-ci.
Un individu du côté opposé a une valeur faible pour celle-ci.
Un biplot plus riche colore les individus par groupe et trace les variables dans une couleur contrastée — ici sur iris :
Jusqu’ici les composantes étaient construites à partir des seules lignes et colonnes actives. Les individus et variables supplémentaires ne servent pas à construire les composantes — ils sont projetés sur la carte finie a posteriori, prédits à partir de l’analyse active. Cela vous permet de superposer une information supplémentaire (quelques athlètes écartés, le rang et les points, la compétition qu’ils ont disputée) sans la laisser déformer les axes.
Déclarez les trois types lorsque vous appelez PCA(), sur l’ensemble des données decathlon2 :
library(FactoMineR)library(factoextra)data(decathlon2)# Active = rows 1:23, cols 1:10 (set implicitly).# Supplementary individuals (rows 24:27), continuous vars Rank/Points (11:12),# and the qualitative Competition factor (col 13).res.pca <-PCA(decathlon2,ind.sup =24:27,quanti.sup =11:12,quali.sup =13,graph =FALSE)# Predicted coordinates of the supplementary individualsres.pca$ind.sup$coord
L’analyse active est inchangée — les composantes restent celles que définissent les 23 athlètes actifs et les 10 épreuves. Les quatre athlètes supplémentaires se placent simplement là où le modèle le prédit. Colorez les individus selon le facteur supplémentaire Competition avec habillage = 13 :
Chaque athlète est projeté dans l’espace des composantes que les lignes et colonnes actives ont déjà défini, puis coloré selon le facteur supplémentaire Competition (Decastar vs Jeux olympiques) via habillage = 13. Le groupe Jeux olympiques se situe à une PC1 plus élevée que Decastar (moyennes de groupe PC1 ≈ +1.23 vs −1.34), donc les mêmes athlètes ont mieux performé aux Jeux olympiques — une lecture nette d’un effet qui n’a jamais façonné les axes.
Les variables supplémentaires ne sont pas tracées sur la carte des variables, mais leurs coordonnées sont leur corrélation avec chaque composante :
library(FactoMineR)data(decathlon2)res.pca <-PCA(decathlon2, ind.sup =24:27, quanti.sup =11:12, quali.sup =13, graph =FALSE)# Supplementary quantitative variables: their correlation with each componentres.pca$quanti.sup$coord
Sur Dim.1, Points corrèle à r = 0.96 et Rank à r = −0.70 : le score total du décathlon se projette presque parfaitement sur la PC1, et un meilleur rang final (plus bas) va de pair avec une PC1 plus élevée. La PC1 est donc l’axe de performance globale — confirmé par deux variables qui n’ont jamais aidé à construire les composantes.
Accéder aux résultats
Tout ce qui précède est sorti de deux fonctions d’extraction — gardez-les sous la main :
get_eigenvalue(res.pca) — valeurs propres + pourcentages de variance.
get_pca_var(res.pca) — coord, cor, cos2, contrib pour les variables.
get_pca_ind(res.pca) — coord, cos2, contrib pour les individus.
Pour gérer les éléments supplémentaires (prédire leurs coordonnées sans les laisser façonner les composantes), passez leurs indices à PCA() : PCA(decathlon2, ind.sup = 24:27, quanti.sup = 11:12, quali.sup = 13). La variable qualitative supplémentaire (la compétition) devient alors un groupe tout prêt pour colorer les individus via habillage = 13.
NoteLes mathématiques derrière l’ACP (optionnel)
L’ACP repose sur la décomposition en valeurs propres de la matrice de corrélation\(R\) des variables standardisées (de façon équivalente, la décomposition en valeurs singulières de la matrice de données mise à l’échelle).
Pour un jeu de données à \(p\) variables, \(R\) est la matrice \(p \times p\) des corrélations deux à deux. Résoudre
\[
R\,v_k = \lambda_k\,v_k
\]
donne \(p\) paires valeur propre–vecteur propre. Chaque vecteur propre\(v_k\) est une direction principale (les poids, ou loadings, qui combinent les variables d’origine), et sa valeur propre\(\lambda_k\) est la variance captée le long de cette direction. Les composantes sont triées de sorte que \(\lambda_1 \ge \lambda_2 \ge
\dots \ge \lambda_p\), et comme les variables sont standardisées,
\[
\sum_{k=1}^{p} \lambda_k = p ,
\]
donc chaque valeur propre divisée par \(p\) est la part de variance totale que cette composante explique — exactement la colonne variance.percent. Le score d’un individu sur la composante \(k\) est la projection de sa ligne standardisée sur \(v_k\) ; le cos2 d’une variable sur une composante est le carré de la corrélation entre elles, et ces valeurs somment à 1 sur l’ensemble des composantes. Voilà toute la machine : faire pivoter les axes sur les directions de plus grande variance, classées selon la part de variance que chacune détient.
Essayez en direct
Lancez l’analyse dans votre navigateur — aucune installation nécessaire. Essayez de remplacer par un autre jeu de données numérique intégré (par ex. mtcars), ou de colorer les variables par "contrib" plutôt que par "cos2", puis relancez et regardez les graphiques se mettre à jour.
🟢 Avec un agent IA
Vous avez vos propres données multivariées ? Demandez à Prova« lance une ACP sur mes données, dis-moi combien de composantes conserver, et lesquelles de mes variables pilotent chacune. » — elle répond avec du code R que vous pouvez exécuter sur votre jeu de données, puis vous aide à lire le graphique des éboulis, le cercle des corrélations et les contributions. The runtime is the judge.Demander à Prova →
Problèmes courants
Vous avez oublié de standardiser, et une variable domine. Si une seule variable à grande échelle semble définir la PC1, vous avez mal mis à l’échelle. Avec PCA(), cela arrive rarement — scale.unit = TRUE est la valeur par défaut — mais si vous utilisez prcomp() à la place, passez scale. = TRUE. Des unités mélangées (secondes, mètres, points) doivent être standardisées.
Vous ne savez pas si une variable est « active » ou « supplémentaire ». Les variables actives construisent les composantes ; les supplémentaires ne sont projetées qu’après coup et n’influencent jamais les axes. Décidez dès le départ, et passez les indices supplémentaires via quanti.sup / quali.sup / ind.sup afin qu’ils ne se glissent pas dans l’analyse.
Vous n’arrivez pas à décider combien de composantes conserver. Il n’y a pas de règle unique. Combinez le seuil valeur propre > 1 (sur données standardisées), une variance cible (par ex. 70–80% cumulés), et le coude du graphique des éboulis. Pour ces données, les trois premières composantes (72%) ou cinq (87%) sont toutes deux défendables.
Vous lisez le cos2 et la contribution comme une même chose. Ce n’en est pas une. Le cos2 = qualité de représentation (la variable est-elle bien montrée sur ces axes ?) ; la contribution = influence (dans quelle mesure a-t-elle façonné l’axe ?). Une variable peut obtenir un score élevé sur l’une et faible sur l’autre.
Questions fréquentes
NoteQu’est-ce que l’analyse en composantes principales (ACP) ?
L’ACP est une méthode non supervisée qui résume de nombreuses variables numériques corrélées en quelques composantes principales non corrélées — de nouvelles variables qui sont des combinaisons linéaires des variables d’origine, ordonnées de sorte que la première détienne le plus de variance. Elle réduit la dimensionnalité (vous pouvez représenter 2–3 composantes au lieu de dizaines de variables) tout en conservant l’essentiel de l’information, ce qui rend faciles à voir les motifs, la redondance et les variables corrélées.
NoteComment interpréter un biplot d’ACP dans R ?
Sur un biplot, concentrez-vous sur la direction des flèches de variables, pas sur les positions absolues (les individus et les variables ne sont pas à la même échelle). Un individu du même côté qu’une flèche de variable a une valeur élevée pour cette variable ; un individu du côté opposé a une valeur faible. Des flèches pointant dans la même direction marquent des variables corrélées positivement ; des directions opposées marquent des variables corrélées négativement. Construisez-le avec fviz_pca_biplot(res.pca).
NoteCombien de composantes principales dois-je conserver ?
Il n’y a pas de règle objective, alors combinez les signaux. La règle de Kaiser conserve les composantes dont la valeur propre > 1 (valable uniquement sur données standardisées). Sinon, conservez suffisamment de composantes pour atteindre une variance cumulée cible (souvent 70–80%). Le graphique des éboulis (fviz_eig()) aide : cherchez le coude au-delà duquel des composantes supplémentaires n’apportent que peu. En pratique, vous conservez les premières et vérifiez qu’elles présentent une structure interprétable.
NoteQu’est-ce que le cos2 en ACP, et en quoi diffère-t-il de la contribution ?
Le cos2 (cosinus carré) est la qualité de représentation d’une variable ou d’un individu sur une composante — un cos2 élevé signifie qu’il est bien montré sur cet axe (près du cercle des corrélations) ; il somme à 1 sur l’ensemble des composantes. La contribution est le pourcentage de la variance d’une composante qu’un élément explique — son influence sur cet axe. Le cos2 répond à « est-il bien représenté ? » ; la contribution répond à « dans quelle mesure a-t-il façonné cet axe ? ». Lisez les deux avec fviz_cos2() et fviz_contrib().
NoteQuelle est la différence entre l’ACP et l’analyse factorielle ?
L’ACP est une technique descriptive : elle fait pivoter les axes pour capter le maximum de variance et ne fait aucune hypothèse sur un modèle sous-jacent — les composantes ne sont que des sommes pondérées des variables observées. L’analyse factorielle exploratoire (AFE) suppose que des facteurs latents génèrent les variables observées plus une erreur unique, et estime ce modèle. Utilisez l’ACP pour résumer et visualiser ; utilisez l’analyse factorielle pour tester une hypothèse de structure latente. Voyez l’analyse factorielle.
NoteQue sont les variables et individus supplémentaires en ACP ?
Les lignes et variables actives construisent les composantes principales ; les éléments supplémentaires sont projetés sur la carte finie a posteriori et n’influencent jamais les axes. Utilisez-les pour superposer une information supplémentaire — des observations écartées, ou des variables que vous voulez relier aux composantes sans les intégrer au calcul des composantes. Passez leurs indices à PCA() : ind.sup pour les individus, quanti.sup pour les variables continues, quali.sup pour un facteur catégoriel (pratique pour la coloration via habillage).
Testez vos connaissances
ImportantExercice : ACP sur les mesures d’iris
Lancez une ACP sur les quatre mesures numériques du jeu de données intégré iris (écartez la colonne Species ). Affichez les valeurs propres, tracez le graphique des éboulis, et tracez le cercle des corrélations des variables coloré selon la contribution.
AstuceIndice
Écartez la colonne facteur avec iris[, -5], passez-la à PCA(..., graph = FALSE), puis utilisez get_eigenvalue(), fviz_eig() et fviz_pca_var(..., col.var = "contrib").
La première composante capte l’essentiel de la variance et est pilotée par la longueur des pétales, la largeur des pétales et la longueur des sépales, qui évoluent ensemble ; la largeur des sépales pointe dans l’autre sens.
Vérification rapide. La flèche d’une variable sur le cercle des corrélations est courte et se situe près du centre. Que vous dit cela sur son cos2, et quelle importance devez-vous accorder à sa position ?
NoteAfficher la réponse
Une flèche courte près du centre signifie un cos2 faible — la variable est mal représentée sur ces deux dimensions. Ne sur-interprétez pas l’endroit où elle tombe ; elle serait mieux montrée par d’autres composantes (ou nécessite plus de deux dimensions pour être captée).
Conclusion
Vous avez calculé l’ACP avec PCA(), lu les valeurs propres et le graphique des éboulis pour estimer combien de composantes conserver, interprété les variables à travers le cercle des corrélations, leurs contributions et le cos2, tracé les individus et le biplot, et extrait chaque nombre avec get_pca_var() et get_pca_ind(). L’ACP est le fondement de la réduction de dimension pour les données numériques. Pour les fonctions base-R, poursuivez avec prcomp vs princomp ; pour des données catégorielles, passez à l’ analyse des correspondances et à l’ analyse des correspondances multiples.
Vous préférez un livre ? Principal Component Methods in R est disponible en PDF téléchargeable — toutes les leçons de cette série, hors ligne et à vous.
Prouvez que vous savez le faire. Maîtrisez toute la série Réduction de dimension en R — suivez votre parcours, construisez des projets et obtenez un certificat.
Cette leçon est reproductible : chaque figure a été produite par le code montré — modifiez n’importe quel bloc et Exécutez, et le bac à sable + l’exercice se relancent en direct dans votre navigateur. The runtime is the judge.
Références
Kaiser, H. F. (1961). A note on Guttman’s lower bound for the number of common factors. British Journal of Statistical Psychology, 14, 1–2.
Jolliffe, I. T. (2002). Principal Component Analysis, 2nd ed. Springer.
Abdi, H., & Williams, L. J. (2010). Principal component analysis. Wiley Interdisciplinary Reviews: Computational Statistics, 2(4), 433–459.
Husson, F., Lê, S., & Pagès, J. (2017). Exploratory Multivariate Analysis by Example Using R, 2nd ed. CRC Press.
@online{2026,
author = {},
title = {ACP dans R : calcul, visualisation et interprétation},
date = {2026-06-24},
url = {https://www.datanovia.com/learn/machine-learning/dimension-reduction/principal-component-analysis},
langid = {fr}
}