fviz_pca: Visualisation de l'Analyse en Composante Principale - Logiciel R et analyse de données


Description

Graphique des individus/variables issues des résultats de l’Analyse en Composante Principale (ACP).

Les fonctions suivantes, du package factoextra, sont utilisées:

  • fviz_pca_ind(): Graphique des individus
  • fviz_pca_var(): Graphique des variables
  • fviz_pca_biplot() (or fviz_pca()): Biplot des individus et des variables

Installer et charger factoextra

Le package devtools est requis pour l’installation de factoextra.

if(!require(devtools)) install.packages("devtools")
devtools::install_github("kassambara/factoextra")

Charger factoextra:

library("factoextra")

Utilisation

# Graphique des individus
fviz_pca_ind(X, axes = c(1, 2), geom = c("point", "text"),
       label = "all", invisible = "none", labelsize = 4,
       pointsize = 2, habillage = "none",
       addEllipses = FALSE, ellipse.level = 0.95, 
       col.ind = "black", col.ind.sup = "blue", alpha.ind = 1,
       select.ind = list(name = NULL, cos2 = NULL, contrib = NULL),
       jitter = list(what = "label", width = NULL, height = NULL),  ...)
# Graphique des variables
fviz_pca_var(X, axes = c(1, 2), geom = c("arrow", "text"),
       label = "all", invisible = "none", labelsize = 4,
       col.var = "black", alpha.var = 1, col.quanti.sup = "blue",
       col.circle = "grey70",
       select.var = list(name =NULL, cos2 = NULL, contrib = NULL),
       jitter = list(what = "label", width = NULL, height = NULL))
# Biplot des individus et des variables
fviz_pca_biplot(X, axes = c(1, 2), geom = c("point", "text"),
   label = "all", invisible = "none", labelsize = 4, pointsize = 2,
    habillage = "none", addEllipses = FALSE, ellipse.level = 0.95,
    col.ind = "black", col.ind.sup = "blue", alpha.ind = 1,
    col.var = "steelblue", alpha.var = 1, col.quanti.sup = "blue",
    col.circle = "grey70", 
    select.var = list(name = NULL, cos2 = NULL, contrib= NULL), 
    select.ind = list(name = NULL, cos2 = NULL, contrib = NULL),
    jitter = list(what = "label", width = NULL, height = NULL), ...)
# Alias fviz_pca_biplot()
fviz_pca(X, ...)

Arguments

Argument Description
X un objet de classe PCA [FactoMineR]; prcomp et princomp [stats]; dudi et pca [ade4].
axes un vecteur numérique de longueur 2 spécifiant les axes à tracer.
geom un texte spécifiant la géométrie à utiliser pour le graphique. Les valeurs autorisées sont la combinaison de c(“point”, “arrow”, “text”). Utilisez “point” (pour afficher uniquement les points); “text” pour afficher uniquement les étiquettes (texte d’annotation); c(“point”, “text”) ou c(“arrow”, “text”) pour montrer les deux types.
label un vecteur de caractères spécifiant les éléments à étiqueter. La valeur par défaut est “all”. Les valeurs autorisées sont “none” ou la combinaison de c(“ind”, “ind.sup”, “quali”, “var”, “quanti.sup”). Utilisez “ind” pour étiqueter uniquement les individus actifs; “ind.sup” est pour les individus supplémentaires. “var” est pour les variables actives. “quali” est pour les variables qualitatives supplémentaires. “quanti.sup” est pour les variables quantitatives supplémentaires.
invisible une chaîne de caractères spécifiant les éléments à masquer sur le graphique. La valeur par défaut est “none”. Les valeurs autorisées sont la combinaison de c(“ind”, “ind.sup”, “quali”, “var”, “quanti.sup”).
labelsize taille de la police pour les étiquettes.
pointsize la taille des points.
habillage une variable catégorielle optionnelle de type “factor”. La valeur par défaut est “none”. Si X est un objet de type PCA provenant de FactoMineR, l’argument habillage peut être également spécifié par l’index ou le nom d’une variable qualitative supplémentaire. Cet argument est utilisé pour colorer les individus par des groupes (voir ?PCA dans FactoMineR).
addEllipses valeur logique. Si TRUE, ajoute des ellipses autour des individus lorsque habillage!= “none”.
ellipse.level la taille de l’ellipse de concentration en probabilité normale (i.e.: 0.95, 0.68, …).
col.ind,col.var couleurs pour les individus et les variables, respectivement. Les valeurs possibles comprennent également: “cos2”, “contrib”, “coord”, “x” or “y”. Dans ce cas, les couleurs des individus/variables sont automatiquement contrôlées par leurs qualités (“cos2”), leurs contributions (“contrib”), leurs coordonnées (x^2 + y^2, “coord”), les valeurs x (“x”) ou les valeurs y (“y”). Pour utiliser la coloration automatique (par cos2, contrib, ….), assurez-vous que habillage = “none”.
col.ind.sup couleur des individus supplémentaires.
alpha.ind,alpha.var contrôle la transparence des couleurs des individus et des variables, respectivement. La valeur peut varier de 0 (transparence totale) à 1 (aucune transparence). La valeur par défaut est 1. Les valeurs admises comprennent également: “cos2”, “contrib”, “coord”, “x” ou “y”, comme pour les arguments col.ind et col.var. Pour utiliser ceux-ci, assurez-vous que habillage = “none”.
select.ind,select.var

Sélection des individus/variables à dessiner. Les valeurs autorisées sont NULL ou une liste contenant le nom des arguments, cos2 ou contrib. La valeur par défaut est list(name = NULL, cos2 = NULL, contrib = NULL):

  • name: est un vecteur de caractères contenant les noms des individus/variables à sélectionner
  • cos2: si cos2 est dans [0, 1], ex: 0.6, alors les individus/variables avec un cos2 > 0.6 sont sélectionnées. Si cos2 > 1, ex: 5, alors les top 5 individus/variables avec le plus grand cos2 sont sélectionnées
  • contrib: si contrib > 1, ex: 5, alors les top 5 individus/variables avec la plus grande contribution sont sélectionnées.
jitter un paramètre d’ajustement de la position des points et textes pour réduire le chevauchement. C’est une liste contenant les objets what, width et height (Ex.; jitter = list(what, width, height)). what: l’élément à ajuster. Les valeurs possibles sont “point” ou “p”; “label” ou “l”; “both” ou “b”. width: degré d’ajustement selon l’axe des x (ex: 0.2). height: degré d ’ajustement selon l’axe des y (ex: 0.2).
col.quanti.sup couleur à utiliser pour les variables quantitatives supplémentaires.
col.circle couleur du cercle de corrélation.
Arguments optionnels à passer à la fonction fviz_pca_biplot().

Valeur

Un graphique de type ggplot2

Exemples

Analyse en composante principale

Une analyse en composantes principales (ACP) est effectuée en utilisant la fonction intégrée de R prcomp() et le jeu de données iris:

data(iris)
head(iris)
  Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1          5.1         3.5          1.4         0.2  setosa
2          4.9         3.0          1.4         0.2  setosa
3          4.7         3.2          1.3         0.2  setosa
4          4.6         3.1          1.5         0.2  setosa
5          5.0         3.6          1.4         0.2  setosa
6          5.4         3.9          1.7         0.4  setosa
# La variable Species (index = 5) est supprimée
# avant la PCA
res.pca <- prcomp(iris[, -5],  scale = TRUE)

fviz_pca_ind(): Graphique des individus

# Graphique par défaut
fviz_pca_ind(res.pca)

fviz_pca: Visualisation de l'Analyse en Composante Principale - Logiciel R et analyse de données

# Changer le titre principal et celui des axes
fviz_pca_ind(res.pca) +
  labs(title ="PCA", x = "PC1", y = "PC2")

fviz_pca: Visualisation de l'Analyse en Composante Principale - Logiciel R et analyse de données

# Changer les limites des axes en spécifiant le min et le max
fviz_pca_ind(res.pca) +
   xlim(-4, 4) + ylim (-4, 4)

fviz_pca: Visualisation de l'Analyse en Composante Principale - Logiciel R et analyse de données

# Utiliser seulement du texte
fviz_pca_ind(res.pca, geom="text")

fviz_pca: Visualisation de l'Analyse en Composante Principale - Logiciel R et analyse de données

# Utiliser uniquement des points
fviz_pca_ind(res.pca, geom="point")

fviz_pca: Visualisation de l'Analyse en Composante Principale - Logiciel R et analyse de données

# Changer la taille des points
fviz_pca_ind(res.pca, geom="point", pointsize = 4)

fviz_pca: Visualisation de l'Analyse en Composante Principale - Logiciel R et analyse de données

# Changer la couleur des points et le thème
fviz_pca_ind(res.pca, col.ind = "blue")+
   theme_minimal()

fviz_pca: Visualisation de l'Analyse en Composante Principale - Logiciel R et analyse de données

# Contrôler automatiquement la couleurs des individus
# par les valeurs de cos2 ou de contributions
# cos2 = qualité de réprésentation sur le graphique
fviz_pca_ind(res.pca, col.ind="cos2")

fviz_pca: Visualisation de l'Analyse en Composante Principale - Logiciel R et analyse de données

# Gradient de couleur
fviz_pca_ind(res.pca, col.ind="cos2") +
      scale_color_gradient2(low="white", mid="blue",
      high="red", midpoint=0.6, space = "Lab")

fviz_pca: Visualisation de l'Analyse en Composante Principale - Logiciel R et analyse de données

# Changer le thème et utiliser uniquement des points
fviz_pca_ind(res.pca, col.ind="cos2", geom = "point") +
      scale_color_gradient2(low="white", mid="blue",
      high="red", midpoint=0.6, space = "Lab")+ theme_minimal()

fviz_pca: Visualisation de l'Analyse en Composante Principale - Logiciel R et analyse de données

# Colorer en fonction de la contribution
fviz_pca_ind(res.pca, col.ind="contrib") +
      scale_color_gradient2(low="white", mid="blue",
      high="red", midpoint=4, space ="Lab")

fviz_pca: Visualisation de l'Analyse en Composante Principale - Logiciel R et analyse de données

# Contrôler la transparence des couleurs
# en fonction de la contribution
fviz_pca_ind(res.pca, alpha.ind="contrib") +
     theme_minimal()

fviz_pca: Visualisation de l'Analyse en Composante Principale - Logiciel R et analyse de données

# Colorer les individus par groupes
fviz_pca_ind(res.pca, label="none", habillage=iris$Species)

fviz_pca: Visualisation de l'Analyse en Composante Principale - Logiciel R et analyse de données

# Ajouter des ellipses
p <- fviz_pca_ind(res.pca, label="none", habillage=iris$Species,
             addEllipses=TRUE, ellipse.level=0.95)
print(p)

fviz_pca: Visualisation de l'Analyse en Composante Principale - Logiciel R et analyse de données

# Changer la couleur des groupes en utilisant
# les palettes RColorBrewer
p + scale_color_brewer(palette="Dark2") +
     theme_minimal()

fviz_pca: Visualisation de l'Analyse en Composante Principale - Logiciel R et analyse de données

p + scale_color_brewer(palette="Paired") +
     theme_minimal()

fviz_pca: Visualisation de l'Analyse en Composante Principale - Logiciel R et analyse de données

p + scale_color_brewer(palette="Set1") +
     theme_minimal()

fviz_pca: Visualisation de l'Analyse en Composante Principale - Logiciel R et analyse de données

# Changer la couleur manuellement
p + scale_color_manual(values=c("#999999", "#E69F00", "#56B4E9"))

fviz_pca: Visualisation de l'Analyse en Composante Principale - Logiciel R et analyse de données

# Sélectionner et visualiser les individus avec cos2 > 0.96
fviz_pca_ind(res.pca, select.ind = list(cos2 = 0.96))

fviz_pca: Visualisation de l'Analyse en Composante Principale - Logiciel R et analyse de données

# Sélectionner le top 20 selon le cos2 
fviz_pca_ind(res.pca, select.ind = list(cos2 = 20))

fviz_pca: Visualisation de l'Analyse en Composante Principale - Logiciel R et analyse de données

# Selectionner le top 20 selon la contribution
fviz_pca_ind(res.pca, select.ind = list(contrib = 20))

fviz_pca: Visualisation de l'Analyse en Composante Principale - Logiciel R et analyse de données

# Sélectionner par le nom
fviz_pca_ind(res.pca,
select.ind = list(name = c("23", "42", "119")))

fviz_pca: Visualisation de l'Analyse en Composante Principale - Logiciel R et analyse de données

fviz_pca_var(): Graphique des variables

# Graphique par défaut
fviz_pca_var(res.pca)

fviz_pca: Visualisation de l'Analyse en Composante Principale - Logiciel R et analyse de données

# Utiliser des points et textes
fviz_pca_var(res.pca, geom = c("point", "text"))

fviz_pca: Visualisation de l'Analyse en Composante Principale - Logiciel R et analyse de données

# Changer la couleur et le thème
fviz_pca_var(res.pca, col.var="steelblue")+
 theme_minimal()

fviz_pca: Visualisation de l'Analyse en Composante Principale - Logiciel R et analyse de données

# Contrôler la couleur selon la contribution
fviz_pca_var(res.pca, col.var="contrib")+
 scale_color_gradient2(low="white", mid="blue",
           high="red", midpoint=96, space ="Lab") +
 theme_minimal()

fviz_pca: Visualisation de l'Analyse en Composante Principale - Logiciel R et analyse de données

# Contrôler la transparence des variables
# selon leurs contributions
fviz_pca_var(res.pca, alpha.var="contrib") +
   theme_minimal()

fviz_pca: Visualisation de l'Analyse en Composante Principale - Logiciel R et analyse de données

# Sélectionner et visualiser les variables avec cos2 >= 0.96
fviz_pca_var(res.pca, select.var = list(cos2 = 0.96))

fviz_pca: Visualisation de l'Analyse en Composante Principale - Logiciel R et analyse de données

# Sélectionner le top 3 selon la contribution
fviz_pca_var(res.pca, select.var = list(contrib = 3))

fviz_pca: Visualisation de l'Analyse en Composante Principale - Logiciel R et analyse de données

# Sélectionner par noms
fviz_pca_var(res.pca,
   select.var= list(name = c("Sepal.Width", "Petal.Length")))

fviz_pca: Visualisation de l'Analyse en Composante Principale - Logiciel R et analyse de données

fviz_pca_biplot(): Biplot des individus et variables

fviz_pca_biplot(res.pca)

fviz_pca: Visualisation de l'Analyse en Composante Principale - Logiciel R et analyse de données

# Annoter uniquement les variables
fviz_pca_biplot(res.pca, label ="var")

fviz_pca: Visualisation de l'Analyse en Composante Principale - Logiciel R et analyse de données

# Annoter uniquement les individus
fviz_pca_biplot(res.pca, label ="ind")

fviz_pca: Visualisation de l'Analyse en Composante Principale - Logiciel R et analyse de données

# Cacher les variables
fviz_pca_biplot(res.pca, invisible ="var")

fviz_pca: Visualisation de l'Analyse en Composante Principale - Logiciel R et analyse de données

# Cacher les individus
fviz_pca_biplot(res.pca, invisible ="ind")

fviz_pca: Visualisation de l'Analyse en Composante Principale - Logiciel R et analyse de données

# Contrôler la couleur des individus selon le cos2
fviz_pca_biplot(res.pca, label ="var", col.ind="cos2") +
       theme_minimal()

fviz_pca: Visualisation de l'Analyse en Composante Principale - Logiciel R et analyse de données

# Change la couleur par groups, ajouter des ellipses
fviz_pca_biplot(res.pca, label="var", habillage=iris$Species,
               addEllipses=TRUE, ellipse.level=0.95)

fviz_pca: Visualisation de l'Analyse en Composante Principale - Logiciel R et analyse de données

# Top 30 des individus les plus contributifs
fviz_pca_biplot(res.pca, label="var",
               select.ind = list(contrib = 30))

fviz_pca: Visualisation de l'Analyse en Composante Principale - Logiciel R et analyse de données

Infos

Cette analyse a été réalisée en utilisant le logiciel R (ver. 3.2.1) et factoextra (ver. 1.0.3)







Want to Learn More on R Programming and Data Science?

==> Subscribe to our Mailing List <==

* indicates required


 Get involved :
  Click to follow us on and Google+ :   
  Comment this article by clicking on "Discussion" button (top-right position of this page)
  Sign up as a member and post news and articles on STHDA web site.


Suggestions


fviz_mca: Visualisation de l'Analyse des Correspondances Multiples - Logiciel R et analyse de données
fviz_ca: Visualisation de l'Analyse Factorielle des Correspondances simples avec factoextra - Logiciel R et analyse de données
Valeurs propres: visualisation de données avec factoextra - Logiciel R et analyse de données
factoextra: Réduire le chevauchement des points et des annotations - Logiciel R et analyse de données
fviz_contrib - Visualisation des contributions - Logiciel R et analyse de données
factoextra: Analyse et visualisation de données multivariées
get_pca: Extraire les résultats de l'analyse en composante principale - Logiciel R et analyse de données
get_mca: Extraire les résultats de l'analyse des correspondances multiples - Logiciel R et analyse de données
facto_summarize - Extraire et synthétiser les résultats d'analyse factorielle - Logiciel R et analyse de données
get_ca: Extraire les résultats pour les lignes/colonnes de l'analyse des correspondances - Logiciel R et analyse de données
fviz_cos2: Visualisation de la qualité de représentation des lignes/colonnes - Logiciel R et analyse de données

Cette page a été vue 5587 fois
Licence - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions
Licence Creative Commons