silico.biotoul.fr
 

M1 BBS Math TD ACP

From silico.biotoul.fr

(Difference between revisions)
Jump to: navigation, search
m (ACP avec la fonction princomp)
m (Données utilisées)
Line 24: Line 24:
</source>
</source>
 +
<!--
Chargement de la librairie graphics dont nous aurons besoin pour la fonction <tt>arrows</tt> pour tracer des flèches :
Chargement de la librairie graphics dont nous aurons besoin pour la fonction <tt>arrows</tt> pour tracer des flèches :
<source lang='rsplus'>
<source lang='rsplus'>
library(graphics)
library(graphics)
</source>
</source>
 +
-->
== ACP avec la fonction <tt>princomp</tt>==
== ACP avec la fonction <tt>princomp</tt>==

Revision as of 08:49, 9 October 2017

Contents

Analyse en Composantes Principales

Récapitulatif de l'approche : M1 BBS ACP

Données utilisées

Dans ce TD, nous utilisons le jeu de données sur les iris. Description sur wikipedia http://en.wikipedia.org/wiki/Iris_flower_data_set

Et dans R, avec la commande

?iris

Chargement des données

d=iris[,1:4] # données numériques
head(d)
cl=iris[,5] # variétés d'iris (pour les couleurs notamment)

Affichage, recherche visuelle de corrélations

pairs(d, col=cl, pch=16)


ACP avec la fonction princomp

Effectuer une ACP (non normée) à l'aide de la fonction princomp (et non prcomp qui utilise la décomposition en valeurs singulières au lieu des vecteurs propres et valeurs propres).

Afficher les individus projetés sur les 2 premiers axes.

Quelles sont les variances portées par ces axes ? Est-ce satisfaisant ?

Recalculer ces proportions à partir des valeurs propres et identifier les vecteurs propres dans ce que renvoie la fonction princomp.

Projection des individus dans le nouveau repère

Pour effectuer le changement de repère, c'est-à-dire de projeter les individus (lignes) dans le nouveau, il suffit d'utiliser le produit matriciel pour multiplier la matrice des coordonnées initiales U avec les vecteurs propres E : Uproj = UE

Effectuer la transformation et comparer le résultat avec le précédent.

La fonction princomp effectue un centrage des valeurs. Pour obtenir les mêmes échelles il faut donc soustraire la moyenne (des colonnes) à chaque valeur avant de faire la transformation.

Effectuer le centrage et la transformation et comparer.

ACP "manuelle"

L'ACP consiste à projeter les individus dans un nouveau repère. La projection est obtenue à partir des vecteurs propres associés aux plus fortes valeurs propres de la matrice de variance-covariance des individus centrés. Les étapes consistent donc en :

  1. centrage des individus (comme précédemment)
  2. calcul de la matrice de variance-covariance des individus centrés (fonction cov en R)
  3. calculs des valeurs propres et vecteurs propres de la matrice de variance-covariance(fonction eigen en R)
  4. projection pour obtenir les coordonnées (comme précédemment)

Effectuer les étapes ci-dessus et afficher le résultat. Comparer avec le résultat de princomp.

Obtenez-vous les mêmes variances portées par les axes ?

ACP normée avec princomp

Afin de ne pas accorder plus d’importance aux variables dont la variance est plus élevée, il faut normaliser les valeurs.

Remarque : Cela revient à utiliser la matrice de correlation plutot que de variance-covariance.

Effectuer une ACP normée à l'aide de la fonction princomp.

Comparez les résultats avec et sans normalisation. Qu'observez-vous ?

ACP normée "manuelle"

Pour faire une ACP normée, on travaille sur la matrice de corrélations.

Effectuez les mêmes étapes que dans la section ACP manuelle en utilisant la matrice des individus centrés et la matrice de corrélations plutôt que celle de variance-covariance.

Comparez les résultats à ceux d ela fonction princomp.

Malheureusement, pour reproduire fidèlement les résultats de princomp, on ne peut pas utiliser la fonction cor car la formule utilisée pour la variance (et donc l'écart-type) est var(x) = \frac{\Sigma (x -   \overline{x})^2}{n-1} au lieu de var(x) = \frac{\Sigma (x -   \overline{x})^2}{n} dans princomp (n étant le nombre de valeurs). Il faut donc le faire soi-même.

Pour centrer et réduire les valeurs, il faut donc appliquer la formule suivante : x_{cn} = \frac{x - \overline{x}}{\texttt{ecart-type}(x)} = \frac{x - \overline{x}}{ \sqrt{ \frac{ \Sigma (x - \overline{x})^2}{n}}}

Effectuez vous-même la réduction des valeurs en utilisant n au lieu de n − 1 pour le calcul de la variance et de l'écart-type pour le calcul de la matrice des individus centrés réduits. Ensuite, vous pourrez effectuer les mêmes étapes que dans l'ACP manuelle (utilisation de la matrice de variance-covariance).

Liens

  • Initiation à l'analyse en composantes principales réalisée par A. B. Dufour et J. R. Lobry