Visualiser ses résultats d'ACP

Avec la librairie ade4 (en langage R)

L'essentiel de cette page !

La librairie ade4 permet de réaliser très simplement des acp avec R. Cet outil permet aussi de visualiser les résultats sans toutefois permettre une mise en forme souple.

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. Réaliser une ACP avec ade4

Étape 1 - Ouvrir des données

  • Ouverture des données - données cancers.txt

data = read.table("cancers.txt",sep="\t",header=T)

colnames(data)

rownames(data) = data[,1] # On donne à chaque ligne le nom de son cancer (Cancer 1, Cancer 2)

x = data[1:7,-1] ;x # On exclue la colonne 1 qui contenait les noms des cancers.

Dans cet exemple, on ouvre des données simulées

présentant des résultats moyens de concentration de 10 marqueurs sanguins (M1 à M10) pour 7 catégories de cancers (Cancer 1 à 7).

Chaque catégorie de cancer présente ainsi un taux moyen de marqueurs variable d'une catégorie à l'autre.

On cherche à voir s'il existe des cancers qui présenterait une signature sanguine caractéristique.

Pour cela on réalise une ACP.

Étape 2 - Réaliser l'ACP

install.packages("ade4")

library(ade4)

acp2 <- dudi.pca(x , scannf= F,scale=FALSE,,nf=3)

acp2


Paramètres de dudi.pca() : center = T ==> permet de centrer les données (soustraction de la moyenne)scale = T ==> permet de normer les données ==> center et scale = T donnent des données centrées-réduites.scalenf = F ==> permet d'afficher un graphique indiquant le poids de chaque composante sur la variabilité totale (diagramme de Pareto) ==> On peut alors sélectionner le nombre de composantes que l'on désire conserver.nf = 3 == indique le nombre de composantes à conserver

Étape 3 - Afficher les données en 2 dimensions - Ex : Axe1 = Composante 1 & Axe2 = Composante2

Une fois que l'on sait sur quelles composantes s'attarder, la première envie est de voir comment vont se répartir les points sur un nombre réduit de dimensions.

La commande s.label() permet ainsi de mettre en relation les composantes de son choix tandis que la commande s.corcircle() permet d'illustrer le poids de chaque variable sur les composantes.

Résultats de l'étude ACP : on peut voir que les résultats sont exploitables mais mériteraient une amélioration de la mise en forme.


Les résultats (ci-dessous) de l'ACP réalisée ci-dessus permettent de voir très rapidement que les 10 marqueurs sont à même de permettre de caractériser les cancers 1, 4 et 6. Les cancers 1 et 4 se différencient facilement des autres via les marqueurs M4 et M5. La caractérisation de M6 est plus subtile car elle repose sur un profil sanguin issus de plusieurs marqueurs.

Résultats d&#39;ACP (Analyse en Composantes Principales) avec le logiciel R project CRAN
  • Affichage des données en 2 dimensions (2D)

layout(matrix(1:4,2,2)) # Permet d'avoir 4 graphiques sur une seule fenêtre

      • Afficher la variabilité entre les composantes 1 et 2

s.label(acp2$li, xax = 1, yax = 2);mtext("Variabilité sur les axes 1 et 2")

      • Afficher quelle part de chaque marqueur joue sur les composantes 1 et 2.

s.corcircle(acp2$c1, xax = 1, yax = 2);mtext("Variabilité sur les axes 1 et 2")

      • Faire de même pour les composantes 2 et 3

s.label(acp2$li, xax = 2, yax = 3);mtext("Variabilité sur les axes 2 et 3")

s.corcircle(acp2$c1, xax = 2, yax = 3);mtext("Variabilité sur les axes 2 et 3")

2. Mettre en forme les résultats d'une étude de données avec ade4

La librairie ade4 n'est pas performante pour la mise en forme. On peut remplacer les points par des tags ou leur donner un aspect variable mais cela ne va pas très loin. Sincèrement, mieux vaut passer à d'autres fonctions !

Mais pour ceux qui y tiennent, voici quelques exemples réalisés avec ade4.

scatter.plot d&#39;ACP avec R project CRAN

Résultats de l'étude ACP : ce scatter-plot réalisé avec le package ade4 présente des limites : on peut afficher des étiquettes à la place des points et configurer le nom manuellement.

librairie : ade4

s.label(acp2$li, xax = 1, yax = 2, label=c("C1","C2","C3","C4","C5","C6","C7"),

clabel = 0.5, cpoint = 3,pch=16)

scatter.plot d&#39;ACP avec R project CRAN

On peut aussi juste afficher les points même sans la possibilité même de jouer sur la couleur.

librairie : ade4

s.label(acp2$li, xax = 1, yax = 2,

clabel = 0, cpoint = 3, pch=16)

Source interne :

Source extérieure pour ade4 :