Engineer's Book

Engineers – Telecoms – Physics – Teaching – Surveying

Analyse en Composantes Principales ACP ou PCA

Written By: Jean-Paul Cipria - Mai• 30•12
ACP : analyse en composantes principales

ACP : Métaux présents dans les branchies de poisson – Faculté Marie Curie (1)

Comment trouver, en nombre limité, les « bonnes » variables descriptives d’un système quand on en possède une bonne cinquantaine ?

… Taux d’oxygène, température, pression, concentration, CO², métaux, types de poissons, prédateurs, algues, poids, taille, sexe, couleur, lumière, champ électrique, magnétique, gravitation , densité, sel, planctons, courants, houle, profondeur, position, saisons, vents, pluie, sources d’eau, terre, argile, gravillons, calcaire, rochers, habitat … etc.

A recomposer : article de 2012 très pédagogique. Du moins je comprends bien ce que j’ai écrit il y a 6 ans ! 🙂

Pourquoi ?

Reconstructions de Scènes Terrains 3D ==> Modèles Numériques de Terrain ==> Clouds Datas …

  • 1. Centrer les nuages sur MA Référence Locale de géomètre (2000, 5000, 0) ou référence locale de l’engin en déplacement, ou WG84 centre de la Terre ou IGN1 .. etc.
  • 2. Déterminer selon les axes principaux du nuage et orienter celui-ci par rapport à MON repère ou référentiel (x,y,z,t) si l’engin est en mouvement.

Le problème est résolu dans cet article :

Avant-propos

Je me demandais comment déméler le nuage de mesures RF en ultra large spectre (UWB), qui dépend de :

  • type de modulation,
  • fréquence,
  • niveau de bruit,
  • vitesse de groupe,
  • … etc.

Quand me vînt le souvenir de cours du CNAM sur une façon de ‘décaler’ ou tourner les axes afin de mieux représenter le phénomène physique. En cherchant je suis tombé sur la méthode VariMax puis sur l’analyse en composantes principales (ACP). Méthode que j’ai bien apprise il y a  … 18 ans !

[tab1:ACP]

Il apparait que certains facteurs (ou variables) de mesure ne sont tout simplement pas les bonnes:

  • soit qu’ils sont des fonctions affines d’une autre variable (donc colinéaires),
  • soit qu’ils ne représentent pas grand chose,
  • et surtout que l’axe ‘vrai’ de la mesure peut être entre les deux axes de deux variables de mesure.

 Il est donc souhaitable de changer les axes et donc de changer le type de variables de mesure. La plupart du temps il n’est guère possible en application d’ingénieur (ou en physique appliquée) de changer d’outil de mesure et même de grandeur de mesure.

L’aspect mathématique du ‘changement de représentation’ de l’analyse par composantes principales est bien pratique. Mais … l’abord mathématique est difficile, l’emploi de matrice est compliqué et l’interprétation … hasardeuse. Une fois tous ces écueils passés, l’ACP est une super méthode de … réflexion sur la représentation des phénomènes physiques et sur sa façon de mesurer.

Objectifs de l’analyse en composantes principales

L’analyse en composantes principales s’intéresse aux corrélations entre variables (de mesure) et consiste à réduire le nombre de celles-ci, par exemple de 100 à 50, et à les regrouper par ‘affinités’ ou ‘axes’ ou ‘échelles’ – par exemple 9 échelles.

L’intérêt de Matlab est pédagogique mais aussi scientifique. En effet nous contrôlons les calculs pas à pas, ainsi que … l’affichage. Nous pouvons à tout moment changer une fonction (et même un signe – 😉 ) et contrôler immédiatement les résultats de simulation. Ce que ne permettent pas (?) les applications directes en ACP.

Caractéristiques de l’ACP

  • Réduire le nombre de variables, ou mesures de type différent, appliquées aux items (ou individus).
  • Expliquer ou rendre compte de la variance qui existe sur les variables (et non sur les individus).
  • La première composante, constituée de la valeur propre c_1  et du vecteur propre \vec C_1 , doit maximiser la variance exprimée dans les variables var_1 , var_2 … On obtient par exemple 70% de variance ‘identique’ aux variables.
  • La deuxième composante c_2  (valeur propre) doit maximiser le reste de variance ‘inexpliquée’ de la composante c_1 soit (100 -70) = 30%.
  • Le vecteur propre \vec C_1  désigne la direction de l’axe principal (abscisse). Sa ‘cohérence’ ou sa ‘quantité’ de variance est indiquée par la valeur propre c_1 .
  • Le vecteur propre \vec C_2  désigne la direction de l’axe secondaire (ordonnée). Sa ‘cohérence’ ou sa ‘quantité’ de variance est indiquée par la valeur propre c_2 .

Analyse factorielle

L’analyse factorielle (AF) serait une variation de l’ACP. Ce qui est partiellement vrai (ou faux). A expliquer !

Définition de l’analyse en composantes principales

Citation : « Dictionary of statistics and methodology » (Vogt, 1993) :

Ensemble de méthodes permettant de procéder à des transformations linéaires d’un grand nombre de variables inter-corrélées de manière à obtenir un nombre relativement limité de composantes non corrélées.

Cette approche facilite l’analyse en regroupant les données en des ensembles plus petits et en permettant d’éliminer les problèmes de multi-colinéarité entre les variables. L’analyse en composantes principales s’apparente à l’analyse factorielle, mais c’est une technique indépendante qui est souvent utilisée comme première étape à une analyse factorielle (Vogt, 1993, page 177).

[tab1:Méthode]

Méthode

  1. Ranger les items en ligne et les variables de mesure en colonne :
    H_1=\left[\begin{array}{ c c c}var^1&var^2&var^3\\x_1^1&x_1^2&x_1^3\\x_2^1&x_2^2&x_2^3\\x_3^1&x_3^2&x_3^3\\x_4^1&x_4^2&x_4^3\end{array}\right]
  2. Calculer la moyenne de chaque variable (colonne) :
    \bar{x}=\frac{1} {n}.\sum_{i=1}^{n}x_i
  3. Calculer l’écart-type de chaque variable (colonne)
    Dev=\left[\frac{1} {n}.\sum_{i=1}^{n}(x_i-\bar{x})^2\right]^{\frac{1}{2}}
  4. Centrer les variables :
    x_{c}=x-\bar{x}
  5. Réduire les variables :
    red=\frac{x_{c}}{Dev}
    Diviser par les écarts-types :
    Revient à diagonaliser la colonne écart-type puis à l’inverser et à multiplier par les variables réduites et centrées.
    RED=\left[\begin{array}{ c c c}var^1&var^2&var^3\\red_1^1&red_1^2&red_1^3\\red_2^1&red_2^2&red_2^3\\red_3^1&red_3^2&red_3^3\\red_4^1&red_4^2&red_4^3\end{array}\right]
    Avec red=\frac{x_r}{Dev}
  6. Calculer les corrélations :
    COR=RED^t*RED
    Il faut transposer la matrice puis la multiplier par elle-même.
    C’est une matrice carrée dont la diagonale est l’auto-corrélation de chaque variable et les autres sont les cross-corrélations.
  7. Calculer les vecteurs propres et les valeurs propres :
    Ceci consiste à trouver, en fait, une nouvelle base, orthogonale, dans laquelle chaque élément de l’espace ne s’exprime que par un seul vecteur (je sais, c’est tiré par les cheveux !). Ainsi, au niveau de la matrice nous nous retrouvons avec une diagonale qui représente  les valeurs propres et des 0 sur le reste des champs de matrice.
    VP=\left[\begin{array}{ c c c}Cor^1&Cor^2&Cor^3\\ValeurP_1^1&0&0\\0&ValeurP_2^2&\\0&0&ValeurP_3^3\end{array}\right]
    Et en reprenant les notations du début de cet article nous identifions :
    VP=\left[\begin{array}{ c c c}\vec{C_1}&\vec{C_2}&\vec{C_3}\\c_1&0&0\\0&c_2&\\0&0&c_3\end{array}\right]
  8. Calculer le ‘poids’ relatif de chaque axe \vec{C}_i :
    Poids=\frac {c_i}{\sum_{i=1}^nc_i}
  9. Projeter les valeurs réduites sur les vecteurs de base :
    Revient à multiplier la matrice réduite avec la matrice diagonale des vecteurs propres.
    Proj=RED*VP
    L’opérateur ‘*’ est dans ce cas le produit scalaire x.C_{1,x}+y.C_{1,y} dans le cas Euclidien ou bien \int_Sx(t).C_x(t).dt dans un cas plus général (ou C s’exprimerait sur x,y !). Le cas des matrices est représenté par une simple multiplication comme ci-dessus.
  10. Afficher les données avec en abscisse l’axe de poids le plus fort et en ordonnée le suivant.
    Ou par une expression en projection – revient à projeter sur deux axes seulement au lieu de n :
    Proj_{1,2}=Proj*\vec{C_1}+Proj*\vec{C_2}
    Ceci revient, évidemment, à négliger les autres projections.
  11. Interpréter …Ouf …

.

[tab1:VariMax]

Rotation VariMax

  1. Entrer les échantillons qui sont fonction des variables de mesure.
  2. Établir la matrice de corrélation des variables (et non des échantillons).
    C’est une matrice carré diagonale. La diagonale est à 1 car :
    Cor(x_i,x_i)=1
    Si le déterminant est nul (Det<=10^{-5} ) alors une des variables est probablement entièrement liée à une autre. Si le déterminant est nul alors la matrice est nulle sauf sur la diagonale (Identité).
  3. Les axes factoriels résument 80% de l’information disponible.
  4. Corrélation entre les axes factoriels par rapport aux variables d’entrées.
    (Factor loadings >= 0,70)
  5. Rotation des axes de façon à privilégier les corrélations. Ainsi les axes sont plus faciles à interpréter en fonction des variables d’entrée.

[tab1:Exemples]

Exemples

Données fortement corrélées

Figure ACP

ACP : -Données fortement corellées

ACP : -Données fortement correlées

Nous remarquons, dans la figure ci-dessus, que la première composante à un poids (ou valeur propre) égale à 1 et que la deuxième est pratiquement nulle. Les données sont pratiquement alignées. Les cinq variables décrivant le système sont nettement corrélées.

 Table des données

J’ai rempli, à la main, cette table qui incrémente la première variable par 1. Qui décale la deuxième et incrémente de la même façon. Ainsi var_2 est une fonction affine de var_1 , … etc.

100 200 300 400 500
101 201 301 401 501
102 202 302 402 502
103 203 303 403 503
104 204 304 404 504
105 205 305 405 505
106 206 306 406 506
107 207 307 407 507
108 208 308 408 508
109 209 309 409 509
110 210 310 410 510
111 211 311 411 511
112 212 312 412 512
113 213 313 413 513
114 214 314 414 514
115 215 315 415 515
116 216 316 416 516
117 217 317 417 517
118 218 318 418 518
119 219 319 419 519
120 220 320 420 520
121 221 321 421 521
122 222 322 422 522
123 223 323 423 523
124 224 324 424 524
125 225 325 425 525

Exemple de M. Labat – Université Marie-Curie

Figure

(1) Je reprends les données du site suivant [LABAT1] :  ou les concentrations de divers métaux, 5 variables, dans les branchies de 25 poissons, 25 individus. Les calculs sont effectués sous Matlab. Remarque : J’ai du affecter un signe – à la première composante pour retrouver la courbe du site ! A mon avis les composantes sont indépendantes du signe puisqu’elles représentent des vecteurs propres et que nous prenions \vec C_1 ou  -\vec C_1 n’a pas d’importance ?

Nous remarquons que les deux composantes ‘rassemblent’ environ 72 % de la variance du système.

ACP

ACP : Métaux présents dans les branchies de poisson – Faculté Marie Curie (1)

.

L’exercice en ces pages consiste à ‘reproduire’ les calculs et les représentations. Ceci valide la figure de M. Labat en [LABAT2] :

Table de données

38.01  4.49  27.55  170.55  91.21
37.89  11.73  74.27  149.09  106.84
39.67  12.83  32.76  184.63  98.73
36.58  26.09  42.77  172.19  78.17
33.46  3.86  45.08  183.11  94.81
30.68  6.80  40.55  208.76  89.48
30.58  503.18  25.63  170.27  76.75
34.56  2.66  68.03  229.48  98.92
29.54  6.57  42.21  186.76  87.68
33.08  9.63  11.35  239.21  63.57
37.53  11.28  162.38  187.04  131.95
33.24  283.12  34.33  154.02  89.20
41.92  20.00  5.95  183.01  64.83
36.38  31.15  48.07  228.00  97.89
31.37  299.47  50.59  223.25  116.24
51.23  27.76  14.99  236.84  101.35
66.32  55.54  110.90  332.15  120.87
36.64  55.54  32.23  270.13  81.25
64.61  37.90  16.15  490.95  91.61
54.66  121.64  17.58  655.14  79.28
45.73  391.83  27.56  419.00  105.95
52.42  35.05  35.10  694.53  79.00
67.70  615.21  33.74  360.80  113.84
39.56  86.22  34.05  294.30  86.02
20.50  41.39  16.37  85.89  43.78

[tab1:Logiciels]

Logiciels

TANAGRA

TANAGRA est un logiciel gratuit de DATA MINING destiné à l’enseignement et à la recherche. Il implémente une série de méthodes de fouilles de données issues du domaine de la statistique exploratoire, de l’analyse de données, de l’apprentissage automatique et des bases de données.

Logiciel SPS

Logiciel SA

[tab1:Réf.]

Références

Acronymes

ACP : Analyse en Composantes Principales ACP voir PCA.
AF : Analyse Factorielle.
PCA : Principal Componant Analysis.

Lien

Téléchargement logiciel Tanagra

Explications ACP

  • http://www.uqtr.ca/cours/srp-6020/acp/acp.pdf

.

[tab1:END]

Jean-Paul Cipria – 30/05/2012

You can follow any responses to this entry through the RSS 2.0 feed. You can skip to the end and leave a response. Pinging is currently not allowed.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Anti-Spam Quiz: