Visualiser ses résultats d'ACP
Avec la librairie factoextra (en langage R)
L'essentiel de cette page !
Factoextra est une librairie qui permet de mettre joliment en forme des résultats d'ACP.
Cette librairie permet de mettre en forme les résultats de tous types d'ACP comme les résultats issus des commandes prcomp() ou dudi.pca().
Je vous invite à consulter la page générale d'aide à la réalisation d'analyse en composantes principales avec R si vous désirez faire des études ACP et mettre en forme vos résultats.
1. Exemple d'ACP
un jeu de données qui récapitule des scores obtenus à 5 épreuves par différents types de bacheliers.
Une ACP pourrait permettre de visualiser si les lycées se distingues à ces épreuves en fonction de leurs bacs ou encore si on a des profils d'étudiants en difficulté à soutenir.
Comment réaliser une ACP - données data_bac.txt
data_bac = read.table("data_bac.txt",sep="\t",header=T) # tableau à titre d'exemple : télécharger ici.
colnames(data_bac)
tableau <- data.frame(data_bac$score_maths,data_bac$score_conversions,data_bac$score_scientifiques,data_bac$score_expérimentales,data_bac$score_exploitation)
colnames(tableau) = c("Calculs","Conversions","Connaissances","Manipulations","Exploitation")
rownames(tableau) = data_bac$num
acp2 <- prcomp(tableau, scale = T)
Comment exécuter la librairie factoextra ?
L'exécution de cette librairie est très particulière et nécessite des commandes particulières.
if(!require(devtools)) install.packages("devtools")
devtools::install_github("kassambara/factoextra")
library(factoextra)
2. Mises en forme fines avec la librairie factoextra
titre = "Répartition de résultats en fonction du bac (simulation)"
fviz_pca_ind(acp2,title=titre)
Comment modifier le type de point en fonction de la catégorie ?
# D'après l'exemple précédent
fviz_pca_ind(acp2,title=titre, label="none", habillage=data_bac$bac)
Comment entourer les catégories dans des ellipses tracées automatiquement en fonction de l'intervalle de confiance ?
# Toujours d'après l'exemple précédent
#ellipse.level = dimension générale des ellipses <=> niveau de confiance de 0% à 100% (de 0 à 1)
fviz_pca_ind(acp2, title=titre,label="none", habillage=data_bac$bac,addEllipses=TRUE,ellipse.level=c(0.5))
Comment mettre un peu plus en forme le scatter plot ?
# Toujours d'après l'exemple précédent
# ellipse.alpha = définit la transparence des ellipses (0, fort à 1, opaque)
#palette = impose un système de coloration pour les catégories
fviz_pca_ind(acp2, title=titre,label="none", habillage=data_bac$bac,addEllipses=TRUE,ellipse.level=c(0.7),ellipse.alpha = 0.3, palette = c("red","#999999", "#E69F00", "#56B4E9"))
Voir comment changer le type de point....
Comment afficher les variables qui jouent sur une composante (diagramme circulaire) ?
fviz_pca_var(acp2)
Diagramme circulaire : n'afficher que les facteurs jouant principalement sur les composantes
# Exemple : afficher les 3 facteurs principaux
fviz_pca_var(acp2, select.var = list(contrib = 3))
Diagramme circulaire : attribuer un gradient de couleur sur l'importance relative de chaque facteur
fviz_pca_var(acp2, col.var = "contrib",
gradient.cols = c("white", "blue", "red"),
ggtheme = theme_minimal())
# cf. rubrique paramètres graphiques de ce site pour changer de thème
Comment superposer au scatter plot les variables qui jouent sur les composantes ?
# Il faut faire appel à la commande fviz_pca_biplot
fviz_pca_biplot(acp2, title=titre,label="var", habillage=data_bac$bac,addEllipses=TRUE,ellipse.level=c(0.7),ellipse.alpha = 0.3, palette = c("red","#999999", "#E69F00", "#56B4E9"),select.var = list(contrib = 3))
Source interne
Je vous invite à consulter la page générale d'aide à la réalisation d'analyse en composantes principales avec R si vous désirez faire des études ACP et mettre en forme vos résultats.
Sources pertinentes externes pour aller plus loin :