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.

Télécharger les données daca_bac.txt

  • 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)

Une ACP brut avec factoextra
  • 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)

Coloration des catégories d&#39;une analyse en composante principale avec le logiciel R
  • 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))

Entourer des catégories de points par des Ellipses avec le logiciel R (ACP)
  • 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"))

Paramétrage des couleurs des ACP PCA avec factorextra R project CRAN

Voir comment changer le type de point....

  • Comment afficher les variables qui jouent sur une composante (diagramme circulaire) ?

fviz_pca_var(acp2)

diagramme circulaire (description des composantes d&#39;ACP factoextra) (R project CRAN)
  • 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 : afficher les principaux facteurs qui jouent sur les composantes d&#39;ACP (factoextra, R project CRAN)
  • 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

Diagramme circulaire : afficher un code couleur pour illustrer l&#39;importance de chaque facteur d&#39;ACP sur les composantes (R project CRAN)
  • 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))

Superposer les variables d&#39;une ACP structurant les composantes visibles en scatter-plot R project CRAN