Acp
Acp
Acp
Ricco RAKOTOMALALA
Université Lumière Lyon 2
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 1
PLAN
1. Position du problème
2. ACP : calculs via la diagonalisation de la matrice des corrélations
3. ACP : calculs via la décomposition en valeurs singulières
4. Pratique de l’ACP
5. Rotation des axes pour une meilleure interprétation
6. Les logiciels (SPAD, SAS, Tanagra et R)
7. Plus loin (1) avec l’ACP : techniques de ré-échantillonnage
8. Plus loin (2) : test de sphéricité et indice(s) MSA
9. Plus loin (3) : ACP sur les corrélations partielles, gestion de « l’effet taille »
10. Plus loin (4) : analyse en facteurs principaux
11. Bibliographie
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 2
Construire un nouveau système de représentation
(composantes principales, axes factoriels, facteurs : combinaisons linéaires des variables originelles)
qui permet synthétiser l’information
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 3
Analyser un tableau de données – Variables toutes quantitatives Variables « actives » quantitatives
c.-à-d. seront utilisées pour la
j : 1,, p construction des facteurs
Questions :
(1) Quelles sont les véhicules qui se ressemblent ? (proximité entre les individus)
(2) Sur quelles variables sont fondées les ressemblances / dissemblances
(3) Quelles sont les relations entre les variables
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 4
Position du problème (1)
Analyse des proximités entre les individus
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 5
Que voit-on dans ce graphique ? Positionnement des individus (2 variables)
1. Les variables CYL et PUISS sont liées.
CYL x PUIS
2. « Opel Reckord » et « Taunus 2000 (Ford) » ont le
même profil (caractéristiques) Renault 30
120
3. « Renault 30 » et « Toyota Corolla » ont des
Datsun 200L
profils opposés…
Alfetta 1.66
Un graphique ne fait que révéler des informations
100
Opel Rekord
présentes dans le tableau de données ! Fiat 132 Taunus 2000
PUISS
Modele CYL PUISS Audi 100
Mazda 9295
Toyota Corolla 1166 55 Lancia Beta Princess 1800
80
Rancho
Alfasud TI Peugeot 504
Citroen GS Club 1222 59
Simca 1300 1294 68
Simca
Lada 1300
1300
Lada 1300 1294 68
Lancia Beta 1297 82
60
Citroen GS Club
Alfasud TI 1350 79 Toyota Corolla Renault 16 TL
Rancho 1442 80
Renault 16 TL 1565 55 1000 1500 2000 2500 3000
Alfetta 1.66 1570 109 CYL
Fiat 132 1585 98
Audi 100 1588 85
Mazda 9295 1769 83
Peugeot 504 1796 79
Princess 1800 1798 82
Que faire si on veut prendre en compte (p >
Opel Rekord 1979 100
Taunus 2000 1993 98 2) variables simultanément ?
Datsun 200L 1998 115
Renault 30 2664 128
Tableau trié selon CYL
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 6
Positionnement des individus (p >2)
1500 2500
CYL On pourrait croiser les variables 2 à 2, mais :
1. Très difficile de surveiller plusieurs cadrans en
100
même temps.
PUISS
2. Etiqueter les points rendrait le tout illisible.
60
460
LONG
400
175
LARG
160
1200
POIDS atypiques.
800
170
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 7
Positionnement des individus – Principe de l’ACP (1) – Notion d’inertie
les individus. On peut la voir comme une compression avec entre 2 individus (i, i’) j 1
CYL x PUIS
120
L’inertie indique la dispersion autour du barycentre,
100
PUISS
c’est une variance multidimensionnelle (calculée sur
p dimensions) 80
60 G
Cas particulier de 2 variables c.r. (1) Trouver la première composante F1 qui maximise l’écartement
(Ip = p =2) Minimisation
global des points par rapport à l’origine :
1 n 2
F2
CYL x PUIS F1 1 Fi1 1.796628
89.83% n i 1
3
10.17%
1 est la part d’inertie expliquée par le 1er axe
89.83%
2
1 n 2 2
-2
2 Fi 2 0.203372 10.17%
I
n i 1 p
-3
-3 -2 -1 0 1 2 3
p
CYL.CR
(3) Et bien évidemment :
k 1
k 1.797 0.203 2 I p
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 11
Relations entres variables – Principe de l’ACP (2) – Matrice des corrélations
xij x j xim xm
Le coefficient de corrélation mesure la liaison (linéaire) 1 n
n i 1
entre deux variables Xj et Xm rjm
s j sm
1500 2500
CORR CYL PUISS LONG LARG POIDS V.MAX CYL
CYL 1 0.797 0.701 0.630 0.789 0.665
100
Matrice des corrélations R PUISS 0.797 1 0.641 0.521 0.765 0.844 PUISS
60
LONG 0.701 0.641 1 0.849 0.868 0.476
460
sur les données « autos » LARG 0.630 0.521 0.849 1 0.717 0.473 LONG
400
POIDS 0.789 0.765 0.868 0.717 1 0.478
175
V.MAX 0.665 0.844 0.476 0.473 0.478 1 LARG
160
1200
POIDS
Elle traduit numériquement ce que l’on peut observer dans
800
170
V.MAX
les graphiques croisés des variables
140
1500 2500 400 440 800 1200
faire apparaître les « blocs » de variables mais…. LONG 0.868 0.701 0.641 1.000 0.849 0.476
LARG 0.717 0.630 0.521 0.849 1.000 0.473
V.MAX 0.478 0.665 0.844 0.476 0.473 1.000
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 12
Relations entres variables – Principe de l’ACP (2) – Construction des composantes
p
1 rj2 ( F1 )
Construire la première composante F1 qui permet de maximiser le carré de
sa corrélation avec les variables de la base de données
j 1
1
Part d’inertie expliquée par F1 =
p
p
De nouveau, on observe la décomposition de l’information en composantes non
corrélées (orthogonales)
k 1
k p
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 13
Relations entres variables – Principe de l’ACP (2) – Approximation des corrélations
ACP sur les p = 6 variables,
1
Correlation scatterplot (PCA_1_Axis_1 vs. PCA_1_Axis_2) Liaison de la variable « poids » avec le 1er axe
cercle des0.9
corrélations.
0.8 rpoids ( F1 ) 0.905 et
2
rpoids ( F1 ) 0.819
0.7
0.6
0.5
LARG
LONG
14%0.4 La représentation de la variable n’est pas
0.3 POIDS
0.2
complète, on a besoin d’un second facteur F2
PCA_1_Axis_2
0.1
0
-0.1
-0.2
CYL
rpoids ( F2 ) 0.225 et
2
rpoids ( F2 ) 0.050
-0.3
PUISS
-0.4
-0.5 V.M AX
-0.6 Si on exploite tous les « p » facteurs
-0.7
p
r
-0.8
-0.9
-1
2
poids ( Fk ) 0.819 0.050 1
-1 -0.9-0.8-0.7-0.6-0.5-0.4-0.3-0.2-0.1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 k 1
PCA_1_Axis_1 74%
q 1
approximation dans l’espace des
rpoids,cyl ( F1 ) rpoids ( Fk ) rcyl ( Fk ) 0.90519 0.89346 0.809
variables (approximation des k 1
corrélations)
[Ex. si on ne prend en compte que
rpoids,v.max 0.478
« q = 1 » facteur] rpoids,v.max ( F1 ) 0.90519 0.75471 0.683
Approximation mauvaise parce que V.MAX est mal représentée sur le
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/
premier facteur [(0.75471²)=57% de l’information seulement] 14
Les mains dans le cambouis : comment sont obtenus les résultats de l’ACP ?
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 15
Objectif des calculs
Construire un ensemble de composantes (F1, F2, …, Fk,…), combinaisons linéaires des variables
originelles (centrées et réduites), dont on peut apprécier la qualité de restitution de l’information à
travers l’inertie reproduite (k)
Qui permettent de calculer les coordonnées des Que l’on interprétera en calculant leur corrélations (et
individus dans le repère factoriel, et de juger de leur autres indicateurs dérivés : CTR et COS²) avec les
proximité dans les différents plans factoriels variables originelles (X1, X2, …, Xp)
Valeur de la variable Z2 (X2 après centrage et Plus la corrélation est élevée en valeur absolue, plus forte est
réduction) pour l’individu n°i l’influence de la variable sur le facteur
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 16
Calcul via la diagonalisation de la matrice des corrélations
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 17
#chargement du fichier de données
autos <- read.table(file="autos.txt",sep="\t",row.names=1,header=T,dec=".")
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 19
z ij On obtient les coordonnées
factorielles des individus avec
Fik k uik
Principe de la SVD
Z vk k uk
Z UV T avec
Z T uk k vk
k2
Calcul des inerties : k
n
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 20
Que lire et comment lire les résultats de l’ACP ?
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 21
Détermination du nombre de composantes à retenir
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 22
Valeurs propres et détection empirique du nombre « q » de facteurs à retenir
n 1 3
4
0.373066
0.213922
0.159144
0.121121
6.22%
3.57%
94.17%
97.73%
5 0.092801 0.049511 1.55% 99.28%
A droite, nous avons 2 x écart-type des 6 0.04329 - 0.72% 100.00%
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 24
Valeurs propres et détection numérique du nombre « q » de facteurs à retenir (ACP normée) [2]
Toutes les approches sont cohérentes : q = 1 seul facteur semble suffire dans cette étude. Par
commodité (hum, pas si sûr, cf. interprétation et rotation des axes), on en choisira q = 2.
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 25
Caractérisation des composantes par les variables
Analyse des relations entre les variables via les composantes
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 26
Caractérisation des facteurs à l’aide des variables – Cercle des corrélations
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 29
1 n 2 1 n p 2 1 n 2
I p d (i, G ) zij d i
di² indique la part de l’individu dans l’inertie totale (dans l’espace originel
N.B.
n i 1 n i 1 j 1 n i 1 – variables c.r.). C’est le carré de la distance à l’origine.
Axe 1 Axe 2
Lecture : Les véhicules se N° Modele Coord. CTR Cos² Coord. CTR Cos² SUM(COS²)
caractérisent par l’encombrement 1 Alfasud TI -2.139 6% 56% -1.786 21% 39% 94%
2 Audi 100 1.561 3% 37% 1.527 15% 35% 71%
(axe 1, illustrés par les véhicules {9, 3 Simca 1300 -1.119 2% 58% 0.675 3% 21% 79%
10, 13}) et la performance (axe 2, 4 Citroen GS Club -2.574 8% 98% -0.113 0% 0% 98%
5 Fiat 132 0.428 0% 16% -0.696 3% 41% 57%
avec surtout {1, 2, 11}). 6 Lancia Beta -0.304 0% 8% 0.196 0% 3% 12%
7 Peugeot 504 0.684 1% 31% 0.933 6% 58% 88%
8 Renault 16 TL -1.948 5% 67% 0.980 6% 17% 84%
Remarque : {6, 16 et 5} sont mal 9 Renault 30 4.410 24% 89% -1.064 7% 5% 94%
représentés sur les q = 2 premières 10 Toyota Corolla -3.986 20% 98% -0.236 0% 0% 98%
11 Alfetta 1.66 0.438 0% 4% -1.912 24% 82% 86%
composantes parce qu’ils ne se 12 Princess 1800 1.018 1% 53% 0.842 5% 36% 89%
distinguent ni par l’ encombrement 13 Datsun 200L 2.941 11% 78% 0.559 2% 3% 81%
14 Taunus 2000 1.315 2% 70% -0.487 2% 10% 80%
(proche de la moyenne) ni par la 15 Rancho -0.691 1% 24% 0.898 5% 41% 65%
performance (se situent dans la 16 Mazda 9295 0.386 0% 22% -0.356 1% 19% 40%
17 Opel Rekord 2.290 7% 86% -0.104 0% 0% 86%
moyenne). 18 Lada 1300 -2.709 9% 93% 0.144 0% 0% 93%
4
entre les individus.
2
Et on peut comprendre le pourquoi des
Comp.2 (14%)
Audi 100
Renault 16 TLRancho Peugeot 504
proximités en considérant dans le même Simca 1300 Princess 1800
Datsun 200L
Lada 1300 Lancia Beta
0
temps le cercle des corrélations. Citroen GS Club
Toyota Corolla Mazda 9295
Opel Rekord
Taunus 2000
Fiat 132
Renault 30
Alfasud TI
-2
Correlation scatterplot (PCA_1_Axis_1 vs. PCA_1_Axis_2) Alfetta 1.66
1
0.9
0.8
0.7
0.6
-4
0.5
LARG
0.4 LONG
0.3 POIDS
0.2
PCA_1_Axis_2
0.1
0
-0.1 CYL -4 -2 0 2 4
-0.2
-0.3
-0.4
PUISS Comp.1 (74%)
-0.5 V.M AX
-0.6
-0.7
-0.8 Remarque : certains proposent de mêler les deux représentations dans
-0.9
-1 un graphique dit « biplot ». Attention, les proximités individus-variables
-1 -0.9-0.8-0.7-0.6-0.5-0.4-0.3-0.2-0.1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
PCA_1_Axis_1 n’ont pas vraiment de sens. Ce sont les directions qui importent dans ce
cas.
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 31
Variables illustratives
Renforcer l’interprétation des composantes
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 32
Variables illustratives
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 33
Variables illustratives quantitatives
yi y Fik Fk n
1 n 1 n
Fik yi y
n i 1
ry ( Fk ) i 1
s y sFk s y k
Calculer les corrélations des variables supplémentaires avec Correlation scatterplot (PCA_1_Axis_1 vs. PCA_1_Axis_2)
1
les facteurs. c.-à-d. calculer le coefficient de corrélation 0.9
PCA_1_Axis_2
0.1
1 1 r -1
u y n 3 ln uy 2 -1 -0.9-0.8-0.7-0.6-0.5-0.4-0.3-0.2-0.1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
2 1 r
PCA_1_Axis_1
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 34
1
gk
ng
F
i: yi g
ik
Comp.1 Comp.2
Variables illustratives qualitatives
4
Possibilité de tester la significativité de l’écart par
rapport à l’origine (moyenne des composantes = 0) avec
2
la « valeur test » (Morineau, 1984).
Comp.2 (14%)
Audi 100
Renault 16 TLRancho Peugeot 504
Princess 1800
Simca 1300 Datsun 200L
0
M
Citroen GS Club TBOpel Rekord
VTgk
Toyota Corolla
B 9295
Mazda Taunus 2000
Fiat 132
n ng s 2
n ng k Renault 30
Fk
Alfasud TI
-2
n 1
Alfetta 1.66
n 1 ng ng
-4 Conclusion : La finition progresse avec la
Ecart significatif à (~) 5% si VTgk 2 « gamme / encombrement », elle n’a aucun
lien avec la « sportivité ».
-4 -2 0 2 4
Comp.1 (74%)
Remarque : On pourrait également s’appuyer sur
l’ANOVA pour comparer les moyennes, et/ou calculer
le rapport de corrélation.
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 35
Individus illustratifs (supplémentaires)
Positionner de nouveaux individus
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 36
Pourquoi des individus illustratifs (supplémentaires) ?
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 37
Calculs pour les individus illustratifs
Description des véhicules Moyennes et écarts-type calculés sur
Modele CYL PUISS LONG LARG POIDS V.MAX
Peugeot 604 2664 136 472 177 1410 180 l’échantillon d’apprentissage (individus
Peugeot 304 S 1288 74 414 157 915 160 actifs, n = 18).
Moyenne 1631.667 84.611 433.500 166.667 1078.833 158.278
Ecart-type 363.394 19.802 21.484 5.164 133.099 11.798
4
POIDS 0.430512 0.2426758
V.MAX 0.3589443 -0.6198626 issus de l’ACP
Comp.1 Comp.2
2
Modele
Comp.2 (14%)
Audi 100
Peugeot 604 5.5633 -0.3386
Renault 16 TLRancho Peugeot 504
Peugeot 304 S -2.2122 -1.2578 Simca 1300 Princess 1800
Datsun 200L
Lada 1300 Lancia Beta
0
Coordonnées factorielles des individus Citroen GS Club
Toyota Corolla Mazda 9295
Opel Rekord
Taunus 2000
Fiat 132
Peugeot 604
illustratifs : produit scalaire entre Peugeot 304 S Renault 30
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 39
p
Rotation VARIMAX (démarche)
La composante est issue d’une maximisation globale 1 rj2 ( F1 )
j 1
Mais, il se peut très bien que chaque variable présente individuellement une
corrélation « moyenne » avec la composante. L’interprétation est difficile.
Attribute Axis_1 Axis_2
- Corr. % (Tot. %) Corr. % (Tot. %)
LONG 0.88615 79 % (79 %) 0.38103 15 % (93 %)
LARG 0.81354 66 % (66 %) 0.41274 17 % (83 %) Correlation scatterplot (PCA_1_Axis_1 vs. PCA_1_Axis_2)
1
POIDS 0.90519 82 % (82 %) 0.22453 5 % (87 %)
0.9
F2 * F2
CYL 0.89346 80 % (80 %) -0.11491 1 % (81 %) 0.8
V.MAX 0.75471 57 % (57 %) -0.57352 33 % (90 %) 0.7 F1 *
0.6
PUISS 0.88686 79 % (79 %) -0.38469 15 % (93 %)
0.5
Var. Expl. 4.42086 74 % (74 %) 0.85606 14 % (88 %) LARG
0.4 LONG
0.3 POIDS
0.2
PCA_1_Axis_2
FF1
L’idée est de faire pivoter les facteurs (à nombre de facteurs fixés) de 0.1
0
CYL1
manière à rendre plus tranchées (clarifier) les liaisons ou non-liaisons -0.1
-0.2
des variables avec l’un des facteurs (on peut préserver ou non -0.3
PUISS
-0.4
l’orthogonalité). L’interprétation des facteurs est facilité. -0.5 V.M AX
-0.6
-0.7
Attribute Axis_1 Axis_2 -0.8
- Corr. % (Tot. %) Corr. % (Tot. %) -0.9
-1
LONG 0.91748 84 % (84 %) -0.2978 9 % (93 %) -1 -0.9-0.8-0.7-0.6-0.5-0.4-0.3-0.2-0.1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
LARG 0.88379 78 % (78 %) -0.22608 5 % (83 %) PCA_1_Axis_1
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 40
Rotation VARIMAX (représentation des individus)
Simca 1300
Citroen GS Club Audi 100 Alfasud TI 1350 79 393 161 870 165
Peugeot 504
Princess 1800 Toyota Corolla 1166 55 399 157 815 140
Lancia Beta
Lada 1300 1294 68 404 161 955 140
0
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 41
Préambule : les signes des vecteurs propres sont fixés arbitrairement, ils peuvent
être différents d’un logiciel à l’autre. Ce n’est pas un problème. Le plus important
est que les positions relatives entre les individus (proximités) et les variables
(corrélations) soient préservées.
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 42
SPAD
La référence de l’analyse de
données « à la française ».
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 44
R
Avec pléthore de packages : ade4, ca, FactoMineR, psych, etc.
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 45
Tanagra
ACP et Rotation VARIMAX
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 46
Attention, ce sont des procédures purement mécaniques. Les résultats doivent
être validés par l’interprétation des facteurs.
Ex. Toutes pousseront (à tort, on le sait maintenant) à négliger le 2nd facteur pour
les données AUTOS
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 47
Analyse parallèle
Déterminer la distribution des k sous H0 (absence de lien entre les variables)
variables est complètement cassé (on est sous H0) moyenne et écart-type.
2. Réaliser l’ACP sur cette nouvelle version des données, collecter les
v.p.
3. Répéter T fois les opérations (1) et (2)
Variante : Plutôt que la moyenne, on
4. On obtient pour chaque k une collection de v.p., on en déduit la
peut aussi prendre le quantile d’ordre 0.95
moyenne k qui sert de seuil critique
pour un test unilatéral à 5%
5. On décide que la composante k est pertinente si k > k
(0.95) Critical
Component Eigenvalue
value
1 4.4209 2.2255
2 0.8561 1.6438
3 0.3731 1.2513
4 0.2139 0.9783
5 0.0928 0.7357
6 0.0433 0.4874
Démarche :
1. Effectuer un tirage aléatoire avec remise de n observations parmi n (certains
individus se répètent ainsi)
2. Réaliser l’ACP sur cette nouvelle version des données, collecter les v.p.
3. Répéter T fois les opérations (1) et (2)
4. On obtient pour chaque k une collection de v.p., on en déduit la distribution
empirique. Pour chaque « k », on calcule le quantile d’ordre 0.05 (k0.05)
5. On déduit que la composante k est pertinente si k0.05 > 1 L’idée est de procéder à un test de
significativité à 5% (la v.p. est-elle
significativement plus grande que 1 ?)
1 3.692685
2 0.513354
3 0.229661
Remarque : ceci étant, il faut être prudent. Si on s’intéresse à
4 0.096113
l’intervalle de confiance bootstrap à 90%, on se rend compte que
5 0.037946
celui du 2nd facteur couvre la valeur « 1 ».
6 0.006305
Démarche :
1. Effectuer un tirage aléatoire avec remise de n observations parmi n
(certains individus se répètent ainsi)
2. Réaliser l’ACP sur cette nouvelle version des données, collecter les
v.p.
3. Répéter T fois les opérations (1) et (2)
4. On obtient pour chaque k une collection de v.p., on en déduit la
distribution empirique. Pour chaque « k », on calcule l’intervalle de
confiance à 90% avec les bornes = les quantiles d’ordre 0.05 et 0.95 On retrouve l’idée du coude : est-ce que la
[k0.05 ; k0.95] composante « k » amène de l’information
additionnelle significative par rapport aux
5. On déduit que la composante k est pertinente si k0.05 > k+10.95 c.-à-
suivantes ?
d. la borne basse de « k » est-elle plus grande que la borne haute de
« k+1 » (y a-t-il un décalage significatif ?). 5
Scree test
4
Component (0.05) Lower bound (0.95) Upper bound
1 3.692685 4.975922
3
2 0.513354 1.42439
Eigenvalue
3 0.229661 0.577211
4 0.096113 0.295001 2
5 0.037946 0.122611
6 0.006305 0.052366 1
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 51
Test de sphéricité de Bartlett
Basée sur l’analyse de la matrice des corrélations R
B 95.11988 Conclusion : rejet de H0, les variables ne sont pas indép. 2 à 2. Il est possible de compresser
ddl 15
p-value <0.00001 l’information avec l’ACP. Efficacement même si l’on en juge la valeur de |R|.
Effectivement, on a vu que F1 représentait 74% de l’info dispo.
Remarque : une variante de ce test peut être utilisée pour détecter le nombre de composantes
« significatives », mais elle s’avère trop permissive en pratique.
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 52
MSA : Measure of sampling adequacy [ou indice KMO (Kaiser – Mayer – Olkin)]
Idée du MSA : confronter la matrice des corrélations brutes avec la matrice des corrélations partielles.
Si MSA 1, l’ACP peut agir efficacement parce que corrélations partielles sont quasi-nulles (en valeur
absolue) ; si MSA << 1, problème car pas de redondance entre les variables.
r
2
jm
j m j
MSA Données « AUTOS »
r r * 2
2
jm jm MSA = 0.740
j m j j m j
MSA par variable : détecter les variables qui se détachent des autres, ceux dont la corrélation partielle
reste proche de la corrélation brute c.-à-d. qui participent peu à la redondance globale plus l’indice est
faible, plus la variable est faiblement liée globalement aux autres.
r
2 R CYL PUISS LONG LARG POIDS V.MAX
jm r CYL 1 0.797 0.701 0.630 0.789 0.665
m j
MSAj
r r * 2 PARTIAL R CYL PUISS LONG LARG POIDS V.MAX
2
jm jm r* CYL 1 0.107 -0.060 0.109 0.320 0.189
m j m j
MSA
CYL 0.940 « CYL » est la variable la plus liée à l’ensemble des autres
PUISS 0.674
LONG 0.803
LARG 0.784
POIDS 0.693
V.MAX 0.598 « V.MAX » est celle qui participe le moins à la tendance collective
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 54
Retrancher l’influence d’une ou plusieurs variables qui pèsent sur toutes les autres
dans l’analyse
Une manière de gérer « l’effet taille » qui écrase souvent la 1ère composante
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 55
Problème de « l’effet taille » en ACP
Correlation scatterplot (PCA_1_Axis_1 vs. PCA_1_Axis_2)
1
0.9
0.8
0.7
Ex. « CYL » pèse sur
0.6
l’ensemble des variables,
« Effet taille » : parfois, une ou plusieurs 0.5
0.4
LARG
LONG
0.3 POIDS
déterminant le 1er
variables pèsent sur l’ensemble des autres et 0.2
PCA_1_Axis_2
0.1 facteur, et entraînant
0
PCA_2_Axis_2
0.3 Mazda 9295
0
Long Larg
r s_LARG_1
r s_LONG_1
-3 Alfetta 1.66
-0.9
V.max
r s_V. MAX_1
-1 -3 -2 -1 0 1 2
-1 -0.9 -0.8 -0.7 -0.6 -0.5 -0.4 -0.3 -0.2 -0.1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 PCA_2_Axis_1
PCA_2_Axis_1
De nouveaux types de résultats apparaissent.
Les 2 dimensions apparaissent nettement. (1) Encombrement / Ex. Eu égard à sa cylindrée, la RENAULT 30 :
gamme : à cylindrée égale, on distingue les voitures 1. N’est pas si encombrante (moins que les autres même)
longues/larges/lourdes des autres. (2) Performances : la puissance et la 2. N’est pas si performante (dans la moyenne simplement)
rapidité caractérisent les véhicules. Sans qu’il soit nécessaire de post- Ex. L’Alfasud Ti est une petite teigneuse
Ricco Rakotomalala
traiter cette fois-ci (rotation des axes).
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/
Ex. Le moteur de la Renault 16 TL est vraiment sous exploité 57
Plutôt que de s’intéresser à la variabilité totale des variables, analyser
la variabilité partagée
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 58
Gestion des variables non pertinentes en ACP
L’ACP cherche à reproduire toute la variabilité des données, c’est pour cette raison que la somme des
COS² des variables est égale à 1 lorsqu’on prend en compte tous les facteurs.
Cette idée n’est pas toujours pertinente quand des variables totalement étrangères à l’étude
s’immiscent dans le fichier de données. Elles pèsent de manière indue sur les résultats.
Modele CYL PUISS LONG LARG POIDS V.MAX RND1 RND2 RND3 RND4 RND5 RND6
Alfasud TI 1350 79 393 161 870 165 1.029 0.109 0.267 -0.949 0.053 -1.144
Audi 100 1588 85 468 177 1110 160 0.379 0.367 -1.054 0.106 1.316 1.632
Simca 1300 1294 68 424 168 1050 152 -0.346 0.737 -0.056 -0.430 0.274 1.044
Citroen GS Club 1222 59 412 161 930 151 0.849 0.494 -0.320 0.729 0.637 0.793
Fiat 132 1585 98 439 164 1105 165 -1.425 -0.210 0.535 -0.200 -1.983 0.832
Lancia Beta 1297 82 429 169 1080 160 0.890 0.071 -1.308 -0.971 -0.131 -1.134
Peugeot 504 1796 79 449 169 1160 154 -0.860 -0.001 -0.315 -1.329 -0.605 1.299
Renault 16 TL 1565 55 424 163 1010 140 2.379 -1.367 -0.633 -1.448 0.609 -0.175
Renault 30 2664 128 452 173 1320 180 -0.578 0.705 -1.304 2.124 -1.132 -2.091
Toyota Corolla 1166 55 399 157 815 140 0.381 0.330 0.121 -1.285 0.570 -1.628
Alfetta 1.66 1570 109 428 162 1060 175 0.204 0.287 -2.117 -1.675 0.111 2.773
Princess 1800 1798 82 445 172 1160 158 0.216 0.549 -0.619 -0.096 -1.632 -0.066
Datsun 200L 1998 115 469 169 1370 160 0.603 0.914 1.403 -0.371 -1.892 0.681
Taunus 2000 1993 98 438 170 1080 167 -0.326 0.857 -0.565 1.455 0.370 -0.656
Rancho 1442 80 431 166 1129 144 -0.787 0.948 -1.389 -0.377 -0.139 -0.721
Mazda 9295 1769 83 440 165 1095 165 -0.931 1.222 -0.133 -1.090 -1.201 0.187
Opel Rekord 1979 100 459 173 1120 173 0.984 0.831 -0.138 0.545 -1.730 1.459
Lada 1300 1294 68 404 161 955 140 0.986 0.791 -0.100 0.037 0.221 0.764
Ces variables additionnelles vont masquer les relations existantes entre les autres
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 59
ACP sur AUTOS avec 6 Attribute Axis_1 Axis_2 Axis_3 Axis_4
- Corr. % (Tot. %) Corr. % (Tot. %) Corr. % (Tot. %) Corr. % (Tot. %)
-0.8847 78 % (78 %) -0.0295 0 % (78 %) -0.1463 2 % (80 %) -0.2681 7 % (88 %)
variables « bruitées » CYL
-0.8912 79 % (79 %) -0.0157 0 % (79 %) -0.0217 0 % (79 %) 0.0356 0 % (80 %)
PUISS
LONG -0.8452 71 % (71 %) -0.2290 5 % (77 %) 0.3167 10 % (87 %) -0.0911 1 % (88 %)
LARG -0.7702 59 % (59 %) -0.3696 14 % (73 %) -0.0191 0 % (73 %) -0.1024 1 % (74 %)
-0.8905 79 % (79 %) -0.0488 0 % (80 %) 0.1851 3 % (83 %) -0.1536 2 % (85 %)
Nombre de composantes POIDS
-0.7541 57 % (57 %) -0.1145 1 % (58 %) -0.0820 1 % (59 %) 0.1318 2 % (61 %)
V.MAX
Scree plot RND1 0.4695 22 % (22 %) -0.3550 13 % (35 %) 0.0293 0 % (35 %) -0.5753 33 % (68 %)
RND2 -0.4413 19 % (19 %) 0.4068 17 % (36 %) -0.2630 7 % (43 %) 0.5380 29 % (72 %)
5 RND3 0.0474 0 % (0 %) 0.7548 57 % (57 %) 0.3744 14 % (71 %) -0.3263 11 % (82 %)
RND4 -0.5592 31 % (31 %) 0.0730 1 % (32 %) -0.6058 37 % (69 %) -0.0873 1 % (69 %)
RND5 0.6468 42 % (42 %) -0.4995 25 % (67 %) -0.3422 12 % (78 %) 0.1718 3 % (81 %)
4
RND6 -0.0811 1 % (1 %) -0.3246 11 % (11 %) 0.7132 51 % (62 %) 0.4404 19 % (81 %)
Var. Expl. 5.40111 45 % (45 %) 1.42714 12 % (57 %) 1.36642 11 % (68 %) 1.09082 9 % (77 %)
3 2 (?)
L’effet taille subsiste : La « sportivité » est complètement noyée au milieu
2 4 (?) « encombrement / gamme » (masquée par) des variables « rnd »
1 Comp.2
PCA_1_Axis_1 vs. PCA_1_Axis_2
Datsun 200L Fiat 132
Toy ota Corolla
Mazda 9295
0
1 2 3 4 5 6 7 8 9 10 11 12
Component 1 Alf asud TI
Lada 1300
Simca 1300
Rancho
Princess 1800 Citroen GS Club
Peugeot 504
Comp.1
faire avec ces voisins !!!
-1 Lancia Beta
critères usuels.
Audi 100
-4 -3 -2 -1 0 1 2 3 4
Ricco Rakotomalala
60
PCA_1_Axis_1
En pratique, il s’agit simplement de diagonaliser une variante de la matrice des corrélations mettant en
exergue la variance partagée entres les variables. L’approche fournit des résultats très similaires à ceux de
l’ACP. C’est pour cette raison qu’elles sont souvent confondues d’ailleurs.
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 61
Analyse en Facteurs Principaux (AFP)
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 62
Analyse en facteurs principaux [AFP] (Outil « Principal Factor Analysis » dans Tanagra)
CYL PUISS LONG LARG POIDS V_MA RND1 RND2 RND3 RND4 RND5 RND6
CYL 1 0.80 0.70 0.63 0.79 X
0.66 -0.28 0.24 -0.06 0.57 -0.55 -0.13
PUISS 0.80 1 0.64 0.52 0.77 0.84 -0.38 0.35 -0.11 0.43 -0.58 0.07
Matrice des corrélations LONG 0.70 0.64 1 0.85 0.87 0.48 -0.29 0.22 -0.01 0.31 -0.48 0.31
LARG 0.63 0.52 0.85 1 0.72 0.47 -0.19 0.25 -0.19 0.48 -0.26 0.11
(usuelle) POIDS 0.79 0.77 0.87 0.72 1 0.48 -0.36 0.27 -0.01 0.35 -0.62 0.09
V_MA 0.66 0.84 0.48 0.47 0.48 1 -0.31 0.27 -0.19 0.38 -0.45 0.11
X
RND1 -0.28 -0.38 -0.29 -0.19 -0.36 -0.31 1 -0.44 0.02 -0.18 0.37 -0.02
RND4 et RND5 sont fortuitement (très RND2 0.24 0.35 0.22 0.25 0.27 0.27 -0.44 1 0.08 0.43 -0.25 0.01
malencontreusement) corrélées avec RND3 -0.06 -0.11 -0.01 -0.19 -0.01 -0.19 0.02 0.08 1 -0.03 -0.38 -0.02
RND4 0.57 0.43 0.31 0.48 0.35 0.38 -0.18 0.43 -0.03 1 -0.14 -0.24
les variables initiales. C’est une RND5 -0.55 -0.58 -0.48 -0.26 -0.62 -0.45 0.37 -0.25 -0.38 -0.14 1 -0.02
difficulté supplémentaire. RND6 -0.13 0.07 0.31 0.11 0.09 0.11 -0.02 0.01 -0.02 -0.24 -0.02 1
CYL PUISS LONG LARG POIDS V_MA RND1 RND2 RND3 RND4 RND5 RND6
CYL 0.84 0.80 0.70 0.63 0.79 X
0.66 -0.28 0.24 -0.06 0.57 -0.55 -0.13
PUISS 0.80 0.92 0.64 0.52 0.77 0.84 -0.38 0.35 -0.11 0.43 -0.58 0.07
Matrice H = (hjm) à LONG 0.70 0.64 0.93 0.85 0.87 0.48 -0.29 0.22 -0.01 0.31 -0.48 0.31
LARG 0.63 0.52 0.85 0.88 0.72 0.47 -0.19 0.25 -0.19 0.48 -0.26 0.11
diagonaliser pour la PFA. On a POIDS 0.79 0.77 0.87 0.72 0.92 0.48 -0.36 0.27 -0.01 0.35 -0.62 0.09
V_MA 0.66 0.84 0.48 0.47 0.48 0.88 -0.31 0.27 -0.19 0.38 -0.45 0.11
remplacé « 1 » par les X
RND1 -0.28 -0.38 -0.29 -0.19 -0.36 -0.31 0.34 -0.44 0.02 -0.18 0.37 -0.02
communalités dans la RND2 0.24 0.35 0.22 0.25 0.27 0.27 -0.44 0.39 0.08 0.43 -0.25 0.01
RND3 -0.06 -0.11 -0.01 -0.19 -0.01 -0.19 0.02 0.08 0.45 -0.03 -0.38 -0.02
diagonale. RND4 0.57 0.43 0.31 0.48 0.35 0.38 -0.18 0.43 -0.03 0.61 -0.14 -0.24
RND5 -0.55 -0.58 -0.48 -0.26 -0.62 -0.45 0.37 -0.25 -0.38 -0.14 0.69 -0.02
RND6 -0.13 0.07 0.31 0.11 0.09 0.11 -0.02 0.01 -0.02 -0.24 -0.02 0.51
R²cyl = 0.84 coefficient de détermination de la régression de CYL sur les autres variables (PUISS,
LONG, …, RND6). Seule cette fraction doit être intégrée dans la modélisation.
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 63
AFP sur les données AUTOS + RND – Tableau des valeurs propres
On en sélectionne 4 si on se
fie à ce critère
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 64
AFP sur les données AUTOS + RND - 4 facteurs sélectionnés
R²j restituée sur les 4 premiers facteurs = somme du carré des « loadings »
R²j à modéliser
Les variables initiales sont plutôt bien modélisées
La « sportivité / performance »
n’apparaît que sur le 4ème facteur
PFA_1_Axis_1
Princess vs.
1800PFA_1_Axis_4
Renault 16 TL
Rancho Lada 1300
Datsun 200L
Toujours « encombrement / gamme », mais RND4 et RND5 pèsent Peugeot 504
Audi 100
Simca 1300
Renault 30 Taunus 2000 Toyota Coroll
toujours beaucoup trop. Citroen GS Club
0 Opel Rekord
Attention : « loadings corrélation». Elles correspondent aux
Mazda 9295Lancia Beta
coefficients standardisés de la régression de chaque variable avec
PFA_1_Axis_4
Fiat 132
les facteurs (dans les faits, la lecture est très similaire à celle de
-1 Alfasud TI
l’ACP).
-2
Dans le plan factoriel (1, 4), on retrouve les
proximités que nous avions constaté lors
de l’ACP sur les variables originelles (CYL, Alfetta 1.66
L’inertie
expliquée par les
4 facteurs reste
la même après
rotation.
Encombrement /
gamme Sportivité / performances, avec RND5 qui On peut oublier…
s’immisce malheureusement
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 66
Analyse de Harris
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 67
Harris – Matrice à diagonaliser et Tableau des valeurs propres
CYL PUISS LONG LARG POIDS V_MA RND1 RND2 RND3 RND4 RND5 RND6
CYL 5.35 7.24 6.50 4.59 7.22 X
4.89 -0.88 0.76 -0.20 2.29 -2.48 -0.45
h jm
h*jm PUISS 7.24 11.94 8.49 5.41 10.00 8.87 -1.67 1.61 -0.53 2.49 -3.72 0.37
u j um
LONG 6.50 8.49 12.55 9.00 11.57 5.10 -1.30 1.03 -0.07 1.82 -3.17 1.62
LARG 4.59 5.41 9.00 7.33 7.50 3.98 -0.67 0.91 -0.75 2.23 -1.35 0.46
POIDS 7.22 10.00 11.57 7.50 12.10 5.05 -1.58 1.28 -0.06 2.05 -4.02 0.48
Souligner d’autant plus les V_MAX 4.89 8.87 5.10 3.98 5.05 7.48 -1.12 1.00 -0.76 1.75 -2.37 0.46
RND1 -0.88 -1.67 -1.30 -0.67 -1.58 -1.12 0.51 -0.70 0.03 -0.35 0.82 -0.04
corrélations qu’elles concernent des RND2 0.76 1.61 1.03 0.91 1.28 1.00 -0.70 0.64 0.14 0.88 -0.57 0.02
variables fortement liées aux autres RND3 -0.20 -0.53 -0.07 -0.75 -0.06 -0.76 0.03 0.14 0.82 -0.06 -0.93 -0.04
RND4 2.29 2.49 1.82 2.23 2.05 1.75 -0.35 0.88 -0.06 1.56 -0.40 -0.55
(R²j 1 uj 0) RND5 -2.48 -3.72 -3.17 -1.35 -4.02 -2.37 0.82 -0.57 -0.93 -0.40 2.21 -0.04
RND6 -0.45 0.37 1.62 0.46 0.48 0.46 -0.04 0.02 -0.04 -0.55 -0.04 1.03
Seuil (possible) = Moyenne des valeurs sur la Eboulis des valeurs propres
diagonale de la matrice à traiter = TRACE / p
Scree plot
48
46
44
42
40
38
36
34
32
30
28
Eigenvalue
26
24
22
20
18
16
2 facteurs
14
12
10
8
6
4
2
0
1 2 3 4 5 6 7 8 9 10 11 12
Component
Renault 16 TL
Variance non pondéré expliquée : somme des Peugeot 504
1
carrés des loadings des variables avec le facteur : Rancho
Simca 1300
Princess 1800
Datsun 200L
Lancia Beta
Lada GS
Citroen 1300
Club
0 Opel Rekord
Toyota Corolla Mazda 9295
-1
Renault 30
Alfetta 1.66
Alfasud TI
-1 0 1
Harris_1_Axis_1
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 69
« Factor scores » - Les coefficients des fonctions de projection
Les plus complets (Tanagra, code source R, SAS, etc.), certains traitant le fichier AUTOS :
• « ACP – Description de véhicules » (Mars 2008)
• « Analyse en composantes principales avec R » (Mai 2009)
• « ACP avec R – Détection du nombre d’axes » (Juin 2012)
• « ACP sous R – Indice KMO et test de Bartlett » (Mai 2012)
• « ACP sur corrélations partielles (suite) » (Juin 2012)
• « ACP avec Tanagra – Nouveaux outils » (Juin 2012)
• « Analyse en facteurs principaux » (Sept. 2012)
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 72