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)
# Ajouter des etiquettes (addlabels)
fviz_eig(res.pca, addlabels=TRUE, hjust = -0.3)
# Changer les limites de l'axe des y
fviz_eig(res.pca, addlabels=TRUE, hjust = -0.3) +
ylim(0, 80)
# Scree plot - Valeurs propres
fviz_eig(res.pca, choice = "eigenvalue",
addlabels=TRUE)
# Utiliser uniquement un barplot
fviz_eig(res.pca, geom="bar", width=0.8, addlabels=T)
# Utiliser uniquement un lineplot
fviz_eig(res.pca, geom="line")
# Changer le th?me
fviz_eig(res.pca) + theme_minimal()
# theme_classic()
fviz_eig(res.pca) + theme_classic()
# Graphique personnalis?
fviz_eig(res.pca, addlabels=TRUE, hjust = -0.3,
linecolor ="red") + theme_minimal()
# 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)
# Changer le titre
p + labs(title = "Variances - PCA",
x = "Principal Components", y = "% of variances")
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)
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)
Infos
Cette analyse a ?t? r?alis?e en utilisant le logiciel R (ver. 3.2.1) et factoextra (ver. 1.0.3)
Show me some love with the like buttons below... Thank you and please don't forget to share and comment below!!
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!