Analyse en composantes principales

Jean-François Delmas et Saad Salam
(last modification date: October 10, 2017)
Version pdf de ce document
Version sans bandeaux

1 Rappels
2 Présentation des données
3 Valeurs propres de la matrice des corrélations
4 Vecteurs propres de la matrice des corrélations
5 ACP
6 Qualité de la représentation des individus
7 Étude d’une variable nominale supplémentaire

Contents

1 Rappels
2 Présentation des données
3 Valeurs propres de la matrice des corrélations
4 Vecteurs propres de la matrice des corrélations
5 ACP
6 Qualité de la représentation des individus
7 Étude d’une variable nominale supplémentaire

1 Rappels

Considérons un nuage ν de n points dans un espace E de dimension p. Lorsque E est de dimension élevée, on ne peut pas visualiser l’espace de points. Un des buts de l’analyse en composantes principales est alors de trouver le meilleur sous-espace H de E, de dimension h égale à 2 ou 3 par exemple, dans lequel on aura la meilleure représentation du nuage. En fait, on va chercher à trouver le sous-espace H de dimension h sur lequel le nuage projeté du nuage ν aura la plus grande ”dispersion”. On cherchera donc à maximiser la somme des carrés des distances entre tous les couples de points projetés.

     ∑    2                  ∑      ⃗   2
maxH      dH(Pi,Pj ) =   maHx      ∥PiPj ∥H
      i,j                     i∑,j
                    =   max      ∥P ⃗G  ∥2 +  ∥P ⃗G ∥2 − 2G⃗P   ⋅G⃗P
                         H          i   H       j   H       i     j
                             i,j ∑
                    =   2n  max     ∥ P⃗jG  ∥2H,
                             H   j
G est le barycentre des points Pi.

On voit donc que maximiser la somme des carrés des distances entre tous les couples de projetés des points équivaut à maximiser la somme des carrés des distances entre les projetés des points et leur centre de gravité.

Notons (⃗e1,,e⃗h) une base orthonormée de H.

 n                  n
∑   2             ∑      ⃗    2
   dH (Pj,G )  =      ∥ PjG  ∥H
j=1                j=1
                  ∑ n ∑h
               =         (GP⃗j  ⋅ ⃗ei)2
                   j=1 i=1

                  ∑ h ∑n          2
               =         (GP⃗j  ⋅ ⃗ei)
                   i=1 j=1
                  ∑ h
               =      ∥ Xt ⋅e⃗i ∥2
                   i=1
                    h
                  ∑      t        t    t
               =      (X  ⋅ ⃗ei) ⋅ (X ⋅ ⃗ei)
                   i=1
                  ∑ h
               =      ⃗ei ⋅ Xt ⋅ X ⋅e⃗i.
                   i=1
La matrice Xt X est symétrique réelle. C’est donc la matrice d’une forme quadratique Q dans une base (ξ) de E et ainsi est diagonalisable dans une base orthonormée. De plus, si on note (λ1 λp) le spectre de Xt X et (⃗v1,,⃗vp) la base orthonormée de vecteurs propres associée, alors λk = max x=1,xV ect(v  ⃗
 p−k+1,,⃗v
p)Q(x). Alors, afin de maximiser l’expression précédente il faut choisir e⃗1 = ⃗v1,,⃗eh = ⃗vh.

Dans ce cas, j=1nd H2(P j,G) = j=1hλ j est l’inertie du nuage de points ν par rapport au sous-espace H, et ∑h
∑pj=1λj-
  i=1λi est le pourcentage d’inertie expliqué par le sous-espace H. Ce pourcentage d’inertie rend compte de la part de dispersion du nuage ν contenue dans le nuage projeté de ν sur H.

2 Présentation des données

Nous allons étudier dans cette partie la distribution des mesures de poids de différentes parties d’un groupe de 23 bovins1 (cf la table ci-dessous).

Les variables représentent:

  1. poids vif.
  2. poids de la carcasse.
  3. poids de la viande de première qualité.
  4. poids de la viande totale.
  5. poids du gras.
  6. poids des os.








BovinX1X2 X3 X4 X5 X6







1 39522435.179.1 6.014.9
2 41023231.973.4 8.716.4
3 40523330.776.5 7.016.5
4 40524030.475.3 8.716.0
5 39021731.976.5 7.815.7
6 41524332.177.4 7.118.5
7 39022932.178.4 4.617.0
8 40524031.176.5 8.215.3
9 42023432.476.0 7.216.8
10 39022333.877.0 6.216.8
11 41524730.775.5 8.416.1
12 40023431.777.6 5.718.7
13 40022428.273.511.015.5
14 39522929.474.5 9.316.1
15 39521929.772.8 8.718.5
16 39522428.573.7 8.717.3
17 40022328.573.1 9.117.7
18 40022427.873.212.214.6
19 40022126.572.313.214.5
20 41023325.972.311.116.6
21 40223427.172.110.417.5
22 40022326.870.313.516.2
23 40021325.870.412.117.5







On dipose d’une matrice poids de taille (23, 6) correspondant aux poids des 23 bovins selon les 6 critères. (fichier poids.txt). On charge les données dans Scilab, après avoir sauvegardé localement le fichier par exemple sous le nom poids.txt, à l’aide de la commande

poids=fscanfMat("poids.txt")

L’analyse des données nous conduit tout d’abord à calculer les paramètres descriptifs élémentaires presentés dans le tableau ci dessous.






MoyenneÉcart-type Min Max





X1 401.6 8.2 390.0420.0
X2 228.8 8.7 213.0247.0
X3 29.9 2.6 25.8 35.1
X4 74.7 2.5 70.3 79.1
X5 8.9 2.4 4.6 13.5
X6 16.6 1.2 14.5 18.7





L’écart-type d’une suite de poids P1,,Pn est estimé par:   -------------------
┌│        n
│∘ ---1--∑         ¯ 2
  n −  1    (Pi − P )
         i=1, où P = 1n i=1nP i.

3 Valeurs propres de la matrice des corrélations

La matrice des corrélations nous donne une première idée des associations existant entre les différentes variables.








X1 X2 X3 X4 X5 X6







X1 1.0000 0.6914-0.0329-0.0585 0.0820 0.0820
X2 0.6914 1.0000 0.2837 0.3903-0.3363 0.0917
X3-0.0329 0.2837 1.0000 0.8948-0.8773 0.0348
X4-0.0585 0.3903 0.8948 1.0000-0.9016 0.0032
X5 0.0820 -0.3363-0.8773-0.9016 1.0000-0.3368
X6 0.0820 0.0917 0.0348 0.0032-0.3368 1.0000







La matrice de corrélations est obtenue en exécutant la fonction correlation. MatCor=correlation(poids).

Cette fonction fait appel à la fonction covariance.

Calculons les valeurs propres de la matrice des corrélations et intéressons nous aux pourcentages d’inertie.





AxeValeur propre InertieInertie cumulée




1 2.9914 49.90% 49.90%
2 1.6125 26.90% 76.80%
3 1.0387 17.30% 94.10%
4 0.2487 4.10% 98.20%
5 0.0758 1.30% 99.50%
6 0.0329 0.50% 100.00%





PIC

Figure 1: Éboulis des valeurs propres

Les valeurs propres sont calculées sur la matrice de corrélation avec la fonction valprop.

L’inertie expliquée par la i-ème composante principale, qui est associée à la i-ème plus grande valeur propre, est calculée avec la formule: ∑p-λi---
  j=1 λj.

Question 1 Analyser le résultat obtenu.

4 Vecteurs propres de la matrice des corrélations

Les vecteurs propres sont calculés sur la matrice de corrélation avec la fonction vectprop qui renvoie les vecteurs propres rangés dans l’ordre décroissant des valeurs propres associées.








⃗v1 ⃗v2 ⃗v3 v⃗4 ⃗v5 ⃗v6







X1 0.063 0.743 0.060 0.597 0.283-0.063
X2 0.304 0.609 0.117-0.643-0.331 0.019
X3 0.534-0.164 0.137 0.461-0.646 0.200
X4 0.548-0.138 0.176-0.130 0.595 0.528
X5-0.552 0.147 0.172 0.032-0.193 0.778
X6 0.120 0.100-0.950 0.007-0.040 0.266







5 ACP

Nous obtenons, à partir de la matrice des données, les coordonnées des projetés des individus dans la base orthonormée des vecteurs propres de la matrice des corrélations avec la fonction acpindiv.

Cette fonction fait appel à la fonction reduire qui permet de centrer et de normer une matrice de données de telle sorte que la moyenne de chaque variable soit nulle et que son écart-type soit égal à 1.

Les coordonnées, calculées à partir de la matrice des données, des variables dans la base orthonormée des vecteurs propres sont obtenues avec la fonction acpvar.

Cela nous permet de représenter le nuage projeté du nuage initial de poids et le cercle des corrélations dans le plan formé par deux composantes principales quelconques.


PIC

Figure 2: Projection des individus sur les axes principaux 1 et 2


PIC

Figure 3: Cercle des corrélations pour les axes 1 et 2

Question 2 Que pouvez-vous dire sur le cercle des corrélations du plan factoriel 1-2?

Pour représenter les coordonnées de m points de p sur les axes i-j, on utilise la fonction nuage, où les lignes de la matrice A sont les coordonnées des m points de p.

Pour représenter le cercle des corrélations sur les axes i-j, on utilise la fonction cercle(A,i,j) ( cercle), où A est la matrice des coordonnées des variables dans la base orthonormée des vecteurs propres.

Question 3 Que pouvez-vous dire sur le cercle des corrélations du plan factoriel 2-3?

6 Qualité de la représentation des individus

La qualité est représentée par le cosinus de l’angle entre le vecteur et son projeté sur le plan factoriel considéré.

On utilise la fonction qualiteindiv(poids,i,j) (qualiteindiv.sce) pour représenter la qualité des individus sur les plans factoriels i-j.


PIC

Figure 4: Qualité de la représentation des individus dans le plan factoriel 1-2

Question 4 Quelle est votre analyse pour la qualité de la représentation sur les plans 1-2 et 2-3?

7 Étude d’une variable nominale supplémentaire

Les données proviennent de deux races Charolais ou Zébu.

race=['C','C','C','C','C','C','C','C','C','C','C','C'];  
race=[race,'Z','Z','Z','Z','Z','Z','Z','Z','Z','Z','Z'];

Le programme barycentres(acpindiv(poids),race,i,j) ( barycentres ) permet de visualiser la variable nominale supplémentaire race dans le plan factoriel i-j.

Question 5 Analyser le rôle de la variable nominale.


PIC

Figure 5: Variable supplémentaire dans le plan factoriel 1-2