CM2 ACP Principes généraux PDF
Document Details
Uploaded by Deleted User
Université de Rennes I
Cédric Wolf
Tags
Summary
These lecture notes provide a general overview of principal component analysis (PCA), focusing on the fundamental principles and a practical example. The document explains how data variations within a dataset shape the data and provides two statistical- and geometrical-view points. It also covers matrix analysis to identify main axes for a visualization perspective.
Full Transcript
ACP Analyse en Composantes Principales Principes généraux Cédric Wolf Université de Rennes I, Unité Mixte de Recherche « ECOBIO » ACP : Les données Tableau de mesures : un tableau de p variables quantitatives mesurées sur n individu...
ACP Analyse en Composantes Principales Principes généraux Cédric Wolf Université de Rennes I, Unité Mixte de Recherche « ECOBIO » ACP : Les données Tableau de mesures : un tableau de p variables quantitatives mesurées sur n individus. Les lignes sont des individus statistiques ou des observations. Les colonnes sont les variables mesurées sur ces individus Les 2 ensembles (individus et caractères) sont nettement distincts et non interchangeables. ACP : Exemple Exemple : « Individus » = Stations et « Variables » = Données physico-chimiques « Individus » = Dates et « Variables » = Abondances d’espèces « Individus » = Etudiants et « Variables » = Notes « Individus » = Villes et « Variables » = données démographiques Fil rouge : Étude sur la relation entre morphologie, taille du cerveau et intelligence Description : 40 étudiants et 7 variables : ✓ Sexe, ✓ Mesure d’intelligence FSIQ, ✓ Mesure d’intelligence VIQ, ✓ Mesure d’intelligence PIQ, ✓ Poids de l’étudiant, ✓ Taille de l’étudiant, ✓ Poids du cerveau (par résonance magnétique) ACP : Exemple Tableau de 40 lignes et 7 colonnes (la première, contenant le “nom” des indivdus, ne compte pas) Attention : la variable Sexe n'est pas quantitative : on ne peut pas l'intégrer pour l'ACP tableau=read.table("exacp.txt",h=T) head(tableau) ACP : Exemple Tableau de 40 lignes et 6 colonnes row.names(tableau)=paste(row.names(tableau),tableau$Sexe,sep="") tab=tableau[,-1] head(tab) Les informations du nuage ? L'information contenue dans un tableau de donnée se traduit par des variations à l'intérieur du tableau ; ces variations donnent au “nuage” des données une forme particulière variance (notion statistique) variation Inertie = Distance² (notion géométrique et mécanique) Nous allons voir que ces 2 notions sont identiques Les informations du nuage ? Point de vue statistique (2 variables) : Variance de X Variance de Y n n ( X i − mX ) ² (Yi − mY ) ² i =1 s² X = s ²Y = i =1 n n variance totale sT²= s²X + s²Y 1 n s ²T = ( X i − mX ) ² + (Yi − mY ) ² n i =1 Pour un individu (point) i : 1 contr (i) = ( X i − mX ) ² + (Yi − mY ) ² n = contribution de i à la variance totale Les informations du nuage ? Y Point de vue géométrique (2 variables) i ◼ Soit G le centre du nuage = point “moyen” Yi G (ses coordonnées sont les moyennes de chaque variable) mY ◼ Pour un point i (G i)² = (Xi - mX )² + (Yi - mY )² X 0 mX Xi à n près = contribution de i à la variance totale ◼ Pour l’ensemble des points (G i)² = (Xi - mX )² + (Yi - mY )² Donc : n 1 s² T = n (G i)² i=1 Variance totale = Inertie totale (Tableau) (Nuage) La forme du nuage correspond donc aux variations (statistiques) du tableau Les informations du nuage ? Problème : Au delà de 3 variables, la représentation est virtuelle… On ne peut pas voir ces variations… Objectif : Réduire la dimension ! Trouver le meilleur plan (sous-espace) de projection permettant de visualier “au mieux” le nuage de points en espace réduit (=visible !) “au mieux” , c'est à dire : En gardant un maximum de variance (=distances entre individus = informations) En conservant les liens (corrélations) entre variables En conservant autant que possible les écarts entre points Axe principal Représentation simplifiée à 1 dimension? L’axe principal (ou axe majeur) va être la direction dans laquelle le nuage présente le plus d’allongement En pratique, c’est la droite qui : maximise la quantité (G fi)² (inertie projetée) (= ce qu'on pourra “voir” sur cet axe) et simultanément minimise la quantité (i fi)²= di² (inertie résiduelle) (ce qu’on ne “verra” pas) (Rappel : Pythagore Intertie (i) = Gi ² = Gfi² + ifi² ) Axes principaux Représentation simplifiée à 2 dimension? Comment choisir le second axe ? L’axe “mineur” va être perpendiculaire à l'axe principal, (il ne porte que l'inertie résiduelle) En deux dimensions, l’inertie totale se décompose alors entièrement par rapport à ces deux axes : (G i)² = (carrés des projections sur l’ axe principal) + (carrés des projections sur l’axe mineur) Cas pratique : dim >> 2. Le second axe sera choisi : - Perpendiculaire au premier : pour ne porter “que” de l’inertie résiduelle - De sorte qu’il porte un maximum d’inertie résiduelle à son tour (il en restera) Cela revient à chercher l’allongement maximum perpendiculairement à l’axe 1 etc… tant qu’il reste de l’inertie résiduelle ! Objectif : Axes principaux On va donc chercher une série d'axes d'inertie portée décroissante satisfaisant deux conditions : ✓ Les inerties projetées, axe par axe sont maximales ✓ Les axes sont mutuellement orthogonaux (les inerties s’additionneront : Pythagore). S’il y a p variables, il existe p axes satisfaisant ces conditions. Il conviendra ensuite de ne garder pour la représentation que les axes principaux qui porteront une inertie “suffisante” sachant que l’on ne sait bien “lire” un graphique qu’en deux dimensions… Comment les trouver ? : Analyses factorielles ( utilisant les matrices ) ACP normée ✓ Le choix des unités de mesure change l’ordre de grandeur des variables de départ, et influence donc fortement les résultats finaux. On commence donc généralement par normaliser (centrer-réduire le tableau de donnée) ✓ Pour cela on calcule le tableau (matrice) T des données centrées-réduites définie par : X ij− X j Avec : T ij= σ Xj est la moyenne de la variable (colonne) j j σj est l’écart-type de la variable (colonne) j Pour chaque colonne de M, la moyenne est 0 et l'écart-type (donc aussi la variance) est 1 ✓ Graphiquement cela revient à se placer au centre du nuage et avoir une même échelle dans toutes les directions Rem : Cette étape n’est pas obligatoire, mais très fortement conseillée, en particulier si les ordres de grandeur des différentes variables sont très différents ACP : Exemple head(tab) apply(tab,2,mean) apply(tab,2,sd) ACP : Exemple TCR = apply(tab,2,scale,center=TRUE,scale=TRUE) head(TCR) apply(TCR,2,mean) apply(TCR,2,sd) Rem : Le “centrage” se fait ici par l'estimation de l'écart-type de la population, pas par l'écart-type de l'échantillon (les deux sont possibles) Rappel : Covariance, Corrélation ✓ La covariance entre 2 variables aléatoires X et Y est donnée par la formule : 1 Cov( X,Y )= ∑ ( X k − X )⋅(Y k −Y ) N k Rem : Cov(X,X) = σX2 , variance de X ✓ La corrélation entre X et Y est définie comme : Cov( X,Y ) ρ ( X,Y )= σ Xσ Y Où σX et σY sont les écart-types des variables X et Y ✓ Comprise entre -1 et 1, la corrélation mesure l’intensité de la liaison linéaire entre les deux variables. Rem : Si les variables X et Y sont centrées-réduites, la covariance et la corrélation sont égales Matrice de corrélation (covariance) ✓ On peut construire la matrice des covariances : σ2 ( X 1 ) C 12 ⋯ C 1k ⋯ C 1p ( ) 2 C 21 σ ( X 2) ⋮ C 2p ⋮ ⋮ ⋱ ⋮ ⋮ S=S XX = C k1 C k2 ⋯ σ2 ( X k ) ⋯ C kp ⋮ ⋮ ⋮ ⋱ ⋮ C p1 C p2 ⋯ C pk ⋯ σ 2 ( Xp ) Avec C ij =Cov( X i ,X j )=Cov ( X j ,X i )=C ji la covariance de Xi et Xj ✓ S est une matrice symétrique de taille p x p (p = nombre de variables) ✓ Lorsque l’on a centré-réduit la matrice auparavant, S a des valeurs comprises entre –1 et 1, des 1 sur la diagonale. Matrice de corrélation (covariance) ✓ On peut construire la matrice des covariances : σ2 ( X 1 ) C 12 ⋯ C 1k ⋯ C 1p ( ) 2 C 21 σ ( X 2) ⋮ C 2p ⋮ ⋮ ⋱ ⋮ ⋮ S=S XX = C k1 C k2 ⋯ σ2 ( X k ) ⋯ C kp ⋮ ⋮ ⋮ ⋱ ⋮ C p1 C p2 ⋯ C pk ⋯ σ 2 ( Xp ) σ tot =∑k σ 2 ( X k ) est la variance totale (=p = Nb de variables si tableau centré-réduit) Chaque axe contribue a cette variance à hauteur de σ²(Xk) (=1 si tableau centré réduit) Poids “identique” a priori Les coefficients non diagonaux sont les informations redondantes entre les axes Exemple : Matrice de corrélation cor(TCR) FSIQ VIQ PIQ Poids Taille MRI FSIQ 1.00000 0.94664 0.93413 -0.12568 -0.07961 0.35764 VIQ 0.94664 1.00000 0.77814 -0.16383 -0.06562 0.33748 PIQ 0.93413 0.77814 1.00000 -0.05265 -0.07219 0.38682 Poids -0.12568 -0.16383 -0.05265 1.00000 0.62982 0.42751 Taille -0.07961 -0.06562 -0.07219 0.62982 1.00000 0.59252 MRI 0.35764 0.33748 0.38682 0.42751 0.59252 1.00000 Matrice de corrélation : données corrélées ✓Identifier les variables “fortement” corrélées (positivement ou négativement) ✓ Variables très corrélées information redondante Son poids est augmenté artificiellement dans l'analyse. ✓ En pratique, le seuil retenu pour considérer deux variables très corrélées (positivement ou négativement) va dépendre du nombre de variables : plus il y en a, plus on peut se permettre de baisser ce seuil. Exemples (indicatifs !) : 0.8 pour un dizaine de variables ; 0.9 pour une demi-douzaine ou moins ; 0.7 pour une quinzaine ou plus Il n'y a pas de règle ; c'est un choix à faire ✓ Une fois le seuil déterminé, lorsque l'on détecte une corrélation supérieure à ce seuil (en valeur absolue), on élimine une des deux variables de l'analyse. Cette étape préliminaire à l'analyse en elle-même est généralement ignorée par les logiciels ; c'est donc à vous d’y faire attention Exemple : Matrice de corrélation cor(TCR) FSIQ VIQ PIQ Poids Taille MRI FSIQ 1.00000 0.94664 0.93413 -0.12568 -0.07961 0.35764 VIQ 0.94664 1.00000 0.77814 -0.16383 -0.06562 0.33748 PIQ 0.93413 0.77814 1.00000 -0.05265 -0.07219 0.38682 Poids -0.12568 -0.16383 -0.05265 1.00000 0.62982 0.42751 Taille -0.07961 -0.06562 -0.07219 0.62982 1.00000 0.59252 MRI 0.35764 0.33748 0.38682 0.42751 0.59252 1.00000 On ne garde qu'un seul des 3 tests de QI (FSIQ)... Exemple : Matrice de corrélation TCR2=TCR[,-c(2,3)] cor(TCR2) head(TCR2) Inertie totale = 4 Les nouveaux axes : Machinerie ✓ S est une matrice carrée et symétrique La théorie des matrices (diagonalisation) nous dit qu’il existe une matrice orthogonale U telle que : S = U D tU avec : U = matrice orthogonale : donnant les vecteurs propres normés (taille p x p) D = matrice des valeurs propres (matrice diagonale de taille p x p) Graphiquement, cela revient à effectuer un changement de repère (donc un autre angle de vue pour le nuage de points)