Valeurs propres: visualisation de données avec factoextra - Logiciel R et analyse de données


Description

Cet article décrit comment extraire et visualiser les valeurs propres/variances des dimensions à partir des résultats de l’analyse en composantes principales (ACP), l’analyse des correspondances (CA) et de l’ analyse des correspondances multiples (MCA).

Le logiciel R et le package factoextra sont utilisés. Les fonctions décrites ici sont:

  • get_eig() (ou get_eigenvalue()): Extraction des valeurs propres/variances des composantes principales
  • fviz_eig() (ou fviz_screeplot()): Graphique des valeurs propres/variances des composantes principales

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

# Extraction des valeurs propres/variances
get_eig(X)
# Visualisation des valeurs propres/variances
fviz_eig(X, choice = c("variance", "eigenvalue"), 
  geom = c("bar", "line"), barfill = "steelblue",
  barcolor = "steelblue", linecolor = "black", 
  ncp = 5, addlabels = FALSE, ...)
# Alias de get_eig()
get_eigenvalue(X)
# Alias de fviz_eig()
fviz_screeplot(...)

Arguments

Argument Description
X Un objet de classe PCA, CA et MCA [FactoMineR]; prcomp et princomp [stats]; dudi, pca, coa et acm [ade4]; ca et mjca [ca package].
choice Texte spécifiant les données à visualiser. Les valeurs possibles sont: “variance” ou “eigenvalue”.
geom Un texte spécifiant la géométrie à utiliser pour le graphique. Les valeurs possibles sont: “bar” pour barplot, “line” pour lineplot or c(“bar”, “line”) pour utiliser les deux types.
barfill Couleur de remplissage du barplot.
barcolor Couleur de bordure pour le barplot.
linecolor Couleur à utiliser lorsque geom = “line”.
ncp Valeur numérique spécifiant le nombre de dimensions à montrer.
addlabels Valeur logique. si TRUE, des étiquettes sont ajoutées au dessus de chaque bar montrant l’information retenue par chaque dimension.
Arguments optionnels à passer aux fonctions geom_bar(), geom_line(), geom_text() ou fviz_eig().

Valeur

  • get_eig() (ou get_eigenvalue()): retourne un data.frame contenant 3 colonnes: les valeurs propres, le pourcentage de variance et le pourcentage cumulé de variance retenu par chaque dimension..
  • fviz_eig() (ou fviz_screeplot()): retourne 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)
# Extraction des valeurs propres/variances
get_eig(res.pca)
      eigenvalue variance.percent cumulative.variance.percent
Dim.1 2.91849782       72.9624454                    72.96245
Dim.2 0.91403047       22.8507618                    95.81321
Dim.3 0.14675688        3.6689219                    99.48213
Dim.4 0.02071484        0.5178709                   100.00000

Visualiser les valeurs propres/variances des dimensions

# Graphique par defaut
fviz_eig(res.pca)

Valeurs propres: visualisation de données avec factoextra - Logiciel R et visualisation de données

# Ajouter des etiquettes (addlabels)
fviz_eig(res.pca, addlabels=TRUE, hjust = -0.3)

Valeurs propres: visualisation de données avec factoextra - Logiciel R et visualisation de données

# Changer les limites de l'axe des y
fviz_eig(res.pca, addlabels=TRUE, hjust = -0.3) +
  ylim(0, 80)

Valeurs propres: visualisation de données avec factoextra - Logiciel R et visualisation de données

# Scree plot - Valeurs propres
fviz_eig(res.pca, choice = "eigenvalue", 
               addlabels=TRUE)

Valeurs propres: visualisation de données avec factoextra - Logiciel R et visualisation de données

# Utiliser uniquement un barplot
fviz_eig(res.pca, geom="bar", width=0.8, addlabels=T)

Valeurs propres: visualisation de données avec factoextra - Logiciel R et visualisation de données

# Utiliser uniquement un lineplot
fviz_eig(res.pca, geom="line")

Valeurs propres: visualisation de données avec factoextra - Logiciel R et visualisation de données

# Changer le thème
fviz_eig(res.pca) + theme_minimal()

Valeurs propres: visualisation de données avec factoextra - Logiciel R et visualisation de données

# theme_classic()
fviz_eig(res.pca) + theme_classic()

Valeurs propres: visualisation de données avec factoextra - Logiciel R et visualisation de données

# Graphique personnalisé
fviz_eig(res.pca, addlabels=TRUE, hjust = -0.3,
               linecolor ="red") + theme_minimal()

Valeurs propres: visualisation de données avec factoextra - Logiciel R et visualisation de données

# Changer les couleurs, limites de l'axe des y et le thème
p <- fviz_eig(res.pca, addlabels=TRUE, hjust = -0.3,
               barfill="white", barcolor ="darkblue",
               linecolor ="red") + ylim(0, 85) + 
               theme_minimal()
print(p)

Valeurs propres: visualisation de données avec factoextra - Logiciel R et visualisation de données

# Changer le titre
p + labs(title = "Variances - PCA",
         x = "Principal Components", y = "% of variances")

Valeurs propres: visualisation de données avec factoextra - Logiciel R et visualisation de données

Les thèmes suivants sont disponibles: theme_gray(), theme_bw(), theme_linedraw(), theme_light(), theme_minimal(), theme_classic().

Analyse des correspondences

La fonction CA() dans le package FactoMineR est utilisée:

library(FactoMineR)
data(housetasks)
res.ca <- CA(housetasks, graph = FALSE)
get_eig(res.ca)
        eigenvalue variance.percent cumulative.variance.percent
Dim.1 5.428893e-01     4.869222e+01                    48.69222
Dim.2 4.450028e-01     3.991269e+01                    88.60491
Dim.3 1.270484e-01     1.139509e+01                   100.00000
Dim.4 5.568500e-33     4.994437e-31                   100.00000
fviz_eig(res.ca)

Valeurs propres: visualisation de données avec factoextra - Logiciel R et visualisation de données

Analyse des correspondances multiples

La fonction MCA() dans le package FactoMineR est utilisée:

library(FactoMineR)
data(poison)
res.mca <- MCA(poison, quanti.sup = 1:2,
              quali.sup = 3:4, graph=FALSE)
get_eig(res.mca)
       eigenvalue variance.percent cumulative.variance.percent
Dim.1  0.33523140        33.523140                    33.52314
Dim.2  0.12913979        12.913979                    46.43712
Dim.3  0.10734849        10.734849                    57.17197
Dim.4  0.09587950         9.587950                    66.75992
Dim.5  0.07883277         7.883277                    74.64319
Dim.6  0.07108981         7.108981                    81.75217
Dim.7  0.06016580         6.016580                    87.76876
Dim.8  0.05577301         5.577301                    93.34606
Dim.9  0.04120578         4.120578                    97.46663
Dim.10 0.01304158         1.304158                    98.77079
Dim.11 0.01229208         1.229208                   100.00000
fviz_eig(res.mca, ncp = 10)

Valeurs propres: visualisation de données avec factoextra - Logiciel R et visualisation 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?

Follow us by Email

by FeedBurner

On Social Networks:


 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.
Cette page a été vue 1890 fois