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)


Enjoyed this article? I’d be very grateful if you’d help it spread by emailing it to a friend, or sharing it on Twitter, Facebook or Linked In.

Show me some love with the like buttons below... Thank you and please don't forget to share and comment below!!
Avez vous aimé cet article? Je vous serais très reconnaissant si vous aidiez à sa diffusion en l'envoyant par courriel à un ami ou en le partageant sur Twitter, Facebook ou Linked In.

Montrez-moi un peu d'amour avec les like ci-dessous ... Merci et n'oubliez pas, s'il vous plaît, de partager et de commenter ci-dessous!





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