L`analyse en composantes principales (ACP)

Transcription

L`analyse en composantes principales (ACP)
Montpellier
L'analyse des données multivariées
à l'aide du logiciel
L'analyse en composantes principales (A.C.P.)
INRA - Formation Permanente
Juillet 2005
André Bouchier
INRA Montpellier - Analyses en composantes principales - Juillet 2005
p.1/23
Copyright 2005 André Bouchier
Permission is granted to make and distribute verbatim copies of this manual provided the copyright
notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this manual under the conditions for
verbatim copying, provided that the entire resulting derived work is distributed under the terms of a
permission notice identical to this one.
INRA Montpellier - Analyses en composantes principales - Juillet 2005
p.2/23
1.Avant propos :
l Pré-recquis
Ce support de cours concerne la mise en oeuvre d'une analyse en composantes
principales à l'aide du logiciel de statistiques R. Ce n'est ni un cours de
statistique ni une initiation à R. On suppose donc connues les bases de ce
logiciel ainsi que quelques notions de statistiques concernant l'analyse en
composantes principales.
l Les fonctions utilisées :
Les fonctions utilisées pour cette analyse sont disponibles dans les
bibliothèques standard de R et dans la bibliothèque ade4. Pour aider à la
compréhension, l'écriture des «programmes» sera détaillée. Par la suite, vous
pourrez condenser cette écriture. Mais n'oubliez pas de les commenter
abondamment.
INRA Montpellier - Analyses en composantes principales - Juillet 2005
p.3/23
2.Rappels :
l L’ACP est une méthode descriptive.
l Son objectif est de représenter sous forme graphique l’essentiel de
l’information contenue dans un tableau de données quantitatif.
l Dans un tableau de données à j variables, les individus se trouvent dans un
espace à j dimensions.
l Lorsqu’on projette ces données sur un plan, on obtient un graphique déformé de
la réalité.
l Le rôle de l’ACP est de trouver des espaces de dimensions plus petites
minimisant ces déformations.
l On utilise un espace à 2 dimensions (un plan). Ce plan est appelé le plan principal.
INRA Montpellier - Analyses en composantes principales - Juillet 2005
p.4/23
3.Les données d'exemple :
l Le tableau des données d'exemple :
Ce tableau de données, contient les données techniques sur 62 véhicules - année
modèle 1994. Les variables sont :
row.names : nom du modèle
Puissance : en chevaux fiscaux
Cylindree : en cm3
Longueur : longueur de la voiture
Largeur : largeur de la voiture
Surface : surface de la voiture
Poids : poids total en Kg
Vitesse : vitesse maximum en km/h
DepArret : Temps, en secondes, pour parcourir 1000 m, départ arrêté.
Conso : Consommation moyenne aux 100 Km, en litres (essence ou gazole)
INRA Montpellier - Analyses en composantes principales - Juillet 2005
p.5/23
4.Préparation du tableau des données :
l Les données seront dans le tableau « don »:
Alfa-Romeo
Alfa-Romeo
Alfa-Romeo
Alfa-Romeo
BMW 316i
BMW 325 TD
BMW 518i
BMW 525 TD
33 1.5 ie
155 2.0
155 TD
164 2.5 T
Puissance Cylindree Longueur Largeur Surface Poids Vitesse DepArret Conso
7
1490
4.07
1.61
6.58
970
180
31.4
7.7
10
1995
4.44
1.70
7.55 1215
205
31.3
8.0
6
1929
4.44
1.70
7.55 1250
180
35.0
6.4
7
2500
4.55
1.76
8.02 1490
202
32.2
6.8
7
1596
4.43
1.70
7.53 1190
191
34.1
7.9
7
2498
4.43
1.70
7.53 1335
198
33.3
6.9
10
1796
4.72
1.75
8.26 1360
194
33.6
8.6
7
2498
4.72
1.75
8.26 1465
188
NA
7.6
.../...
l On élimine les 10 individus ayant des valeurs manquantes
don<-na.omit(don)
l L'identifiant des individus est row.names(don)
Il contient le nom des véhicules
INRA Montpellier - Analyses en composantes principales - Juillet 2005
p.6/23
5.Description des variables, les histogrammes :
l Les histogrammes de toutes les variables
layout(matrix(c(1:9),3,3))
for(i in 1:9) {hist(don[,i],main=names(don)[i],xlab="")}
layout(1)
1.7
140
25
9
28
32
5.0
36
40
Frequency
Conso
0
0 2 4 6 8
Frequency
10 15
4.5
8
Poids
5
4.0
7
220
15
Frequency
12
8
6
180
DepArret
0
5
0
3.5
15
2.1
4
Frequency
25
Frequency
15
2500
Longueur
Frequency
1.9
Surface
0 5
1500
10
0
1.5
Cylindree
500
5
Frequency
15
14
0 5
10
15
8
10
6
5
4
Vitesse
0 5
15
Frequency
25
Largeur
0 5
Frequency
Puissance
800
INRA Montpellier - Analyses en composantes principales - Juillet 2005
1200
1600
4
6
8
10
12
p.7/23
6.Description des variables, contrôle de la linéarité des relations :
l Les relations entre les variables quantitatives :
pairs(don,main="Données voitures 1994")
INRA Montpellier - Analyses en composantes principales - Juillet 2005
p.8/23
7.L'A.C.P. - fonction dudi.pca () de la bibliothèque ade4 :
l On lance l’analyse en composantes principale
Les résultats de l'analyse sont stockés dans la variable z
library(ade4)
z<- dudi.pca(don, center = T, scale = T, scannf = F)
l Choix du type d'analyse
Les options center et scale de la fonction dudi.pca sont utilisées pour centrer
et réduire les variables.
INRA Montpellier - Analyses en composantes principales - Juillet 2005
p.9/23
8.Les valeurs propres :
l Impression des valeurs propres (variances de chaque composante) :
z$eig
6.453 1.137 0.656 0.331 0.236 0.100 0.0434 0.0390 0.000
l Les variances cumulées (Σ des variances = 9, les données sont centrées réduites) :
cumsum(z$eig)
6.453 7.591 8.247 8.579 8.816 8.917 8.960 8.999 9.000
l Les variances en pourcentages et pourcentages cumulés :
z$eig/sum(z$eig)*100
71.704 12.640
7.298
3.688
2.632
1.114
0.482
0.434 0.004
cumsum(z$eig/sum(z$eig)*100)
71.70
84.34
91.64
95.33
97.96
INRA Montpellier - Analyses en composantes principales - Juillet 2005
99.07
99.56
99.99 100.00
p.10/23
9.L'histogramme des valeurs propres
l Une représentation en % de variance expliquée :
inertie<-z$eig/sum(z$eig)*100
barplot(inertie,ylab="% d'inertie",names.arg=round(inertie,2))
title("Eboulis des valeurs propres en %")
40
30
0
10
20
% d'inertie
50
60
70
Eboulis des valeurs propres en %
71.7
12.64
7.3
3.69
2.63
INRA Montpellier - Analyses en composantes principales - Juillet 2005
1.11
0.48
0.43
0
p.11/23
10.Interprétation des composantes : les contributions "relatives"
l Contributions des variables à la construction des axes :
inertia.dudi(z,col.inertia = T)$col.abs
Comp1 Comp2
Puissance
824 1867
Cylindree 1201
2
Longueur
1291
528
Largeur
937 2211
Surface
1307 1196
Poids
1345
485
Vitesse
1263
868
DepArret
798 2354
Conso
1034
490
Somme
10000 10000
INRA Montpellier - Analyses en composantes principales - Juillet 2005
p.12/23
11.Présentation des résultats - le plan principal :
l Le résultat de l'A.C.P a été stocké dans la variable z. Les coordonnées des
lignes et des colonnes se trouvent respectivement dans z$li et z$co
l La première composante sera :
cl1<-z$li[,1]
pour les individus
cc1<-z$co[,1]
pour les variables
l La deuxième sera :
cl2<-z$li[,2]
pour les individus
cc2<-z$co[,2]
pour les variables
INRA Montpellier - Analyses en composantes principales - Juillet 2005
p.13/23
12.Présentation des résultats - le plan des individus :
l Représentation du graphique du plan des individus :
plot(cl1,cl2,type="n",main="Les individus",xlim=c(-7,7))
abline(h=0,v=0)
text(cl1,cl2,row.names(z$li))
Les individus
Peugeot 605 Sv24
Alfa-Romeo 33 1.5 ie
Fiat UNO 1.4i.e Alfa-Romeo 155 2.0
BMW 730i
Citroen
Renault
AX1.0Clio 1.4
RN
Citroen XM V6
Fiat
TIPO 1.8ie
Fiat UNO TD
Fiat TEMPRA 1.8ie
Citroen
XANTIA 2.0
2.0i
Fiat CROMA
Renault TwingoRenault 19 1.8RN
Citroen
Renault
21
Prima
Peugeot
405
SR TS XM 2.0i
Citroen
ZX1.6
RenaultRenault
Clio
1.9D
19
1.4RN
BMW
316i
Peugeot
306
XTDT
BMW
325 TD
Renault
19
1.9XANTIA
dT
BMW
518i
Citroen
1.8I
Fiat
TIPO
TD
Peugeot
605 SLi
Citroen
ZX1.9TD
Citroen AX14TD
Peugeot
405
STD
Fiat
CROMA
2.5 TD
Alfa-Romeo 164
2.5 T
Peugeot
106
XN
Peugeot
306
XN
Renault Clio 1.2 RN
Fiat TEMPRA TD
Renault
21
Renault
Prima
TD
Safrane2.0i
Alfa-Romeo
405 GL155 TD
Peugeot 106 XTDPeugeot
CitroenCitroen
ZX1.1 XANTIA 1.6I
Citroen XANTIA TD
Citroen
XM Safrane2.5
TD12
Renault
Espace d
2.2i
Renault
-2
-1
cp2
0
1
2
Citroen AX1.4i
-3
Peugeot 605 SLD
Renault Espace 2.1dT
-6
-4
-2
0
2
4
6
cp1
INRA Montpellier - Analyses en composantes principales - Juillet 2005
p.14/23
13.Présentation des résultats - le plan des variables :
l La représentation graphique du plan des variables :
plot(cc1,cc2,type="n",
main="Les variables",
xlim=c(-1,1),
ylim=c(-1,1),
asp=1, #rapport entre "Echelle X" et "Echelle Y"
ylab= "Comp2 71.7%",
xlab= "Comp1 12.6%")
abline(h=0,v=0)
text(cc1,cc2,row.names(z$co))
l Le cercle des corrélations :
symbols(0,0,circles=1,inches=FALSE,add=TRUE)
INRA Montpellier - Analyses en composantes principales - Juillet 2005
p.15/23
14.Graphique du plan des variables :
Puissance
Vitesse
Conso
0.0
Comp2 71.7%
0.5
1.0
Les variables
Cylindree
Poids
Longueur
-0.5
Surface
Largeur
-1.0
DepArret
-1.0
-0.5
0.0
0.5
1.0
Comp1 12.6%
INRA Montpellier - Analyses en composantes principales - Juillet 2005
p.16/23
15.Les données supplémentaires :
l La bibliothèque ade4 propose les fonctions supcol() et suprow() pour calculer les
coordonnées des variables et individus supplémentaires. Ces fonctions s'utilisent
après le calcul de l'A.C.P.
l Le tableau de données donsup contient 10 individus dont les données
manquantes ont été remplacées par des valeurs grossièrement estimées. Ces
données sont peu fiables et ont été introduites en supplémentaire dans l'analyse.
BMW 525 TD
Fiat Panda 1000i.e
Ford Fiesta 1400
Ford Fiesta TD
Ford Escort 1400
Ford Escort 1800 TD
Ford MONDEO 1800i
Ford MONDEO TD
Ford Scorpio 2000i
Ford Scorpio 2900i
Puissance Cylindree Longueur Largeur Surface Poids Vitesse DepArret Conso
7
2498
4.72
1.75
8.26 1465
188
31
7.6
4
999
3.41
1.49
5.09
715
140
41
6.2
6
1392
3.74
1.61
6.01
840
163
38
7.2
5
1753
3.74
1.61
6.01
900
170
37
6.1
6
1391
4.10
1.70
6.96 1000
163
39
7.8
6
1753
4.10
1.70
6.96 1100
172
35
6.3
7
1796
4.48
1.75
7.83 1277
197
32
7.2
5
1753
4.48
1.75
7.83 1277
183
35
6.2
10
1998
4.74
1.69
8.03 1245
195
33
7.7
15
1998
4.74
1.69
8.03 1345
201
32 10.8
INRA Montpellier - Analyses en composantes principales - Juillet 2005
p.17/23
16.Les individus supplémentaires :
l Les coordonnées des individus supplémentaires sont calculés en tenant compte
des options utilisées dans l'ACP sur les individus actifs. Ici, ils seront centréréduits.
z<- dudi.pca(don, center = T, scale = T, scannf = F)
ligsup<-suprow(z,donsup)
l Les coordonnées des individus supplémentaires se trouve dans ligsup$lisup
Axis1
BMW 525 TD
2.5032655
Fiat Panda 1000i.e -5.7235880
Ford Fiesta 1400
-2.9921568
Ford Fiesta TD
-2.7224814
Ford Escort 1400
-1.7987546
Ford Escort 1800 TD -1.0292275
Ford MONDEO 1800i
1.2600677
Ford MONDEO TD
0.1373121
Ford Scorpio 2000i
1.7339527
Ford Scorpio 2900i
3.3727519
Axis2
-0.2648280
-0.1497245
0.1666408
0.1001151
-1.0503674
-0.3706771
0.0763634
-1.2755206
0.4465114
1.9269659
INRA Montpellier - Analyses en composantes principales - Juillet 2005
p.18/23
17.Représentation simultanée des individus actifs et supplémentaires:
l Représentation simultanée des individus actifs et supplémentaires
cl1<-z$li[,1]
cl2<-z$li[,2]
csup1<-ligsup$lisup[,1]
csup2<-ligsup$lisup[,2]
plot(cl1,cl2,type="n",main="Les individus",xlim=c(-8,8))
abline(h=0,v=0)
text(cl1,cl2,row.names(z$li),)
text(csup1,csup2,row.names(ligsup$lisup),col="red",cex=1.2)
Les individus
Peugeot 605 Sv24
Ford Scorpio 2900i
Alfa-Romeo 33 1.5 ie
Fiat UNO 1.4i.eAlfa-Romeo 155 2.0
BMW 730i
Citroen
Renault
AX1.0
Clio Fiat
1.4 RN
TIPO 1.8ie Citroen XM V6
Fiat UNO TDFiat TEMPRA 1.8ie
Citroen
XANTIA 2.0
2.0i
Fiat CROMA
Renault Twingo
Ford
Scorpio 2000i
Renault
1921
1.8RN
Citroen
XM 2.0i
Renault
Prima
TS
Peugeot
405
SR
Citroen
ZX1.6
Renault
Clio
1.9D
Ford
Fiesta
1400
Renault
19
1.4RN
Ford
Fiesta
TD
BMW
316i
Peugeot
Ford
306
MONDEO
XTDT
1800i
BMW
325 TD
Renault
19
1.9
BMW
dT
518i
Citroen
XANTIA
1.8I
Fiat
TIPO
TD
Peugeot
605 SLi
ZX1.9TD
Fiat Panda
Citroen1000i.e
AX14TDCitroen
Peugeot
405
BMW
STD
525
TD
Fiat
CROMA
2.5
TD
Alfa-Romeo
164
2.5 T
Peugeot
106
XN
Peugeot
Escort
306
XN
1800 TD
TD
Renault Ford
Clio
1.2
RN
Fiat
TEMPRA
Renault
21
Renault
Prima
Safrane2.0i
TD
Alfa-Romeo
155
TD
Peugeot
405
GL
Peugeot 106 XTDCitroen XANTIA 1.6I
Citroen
ZX1.11400
Ford
Escort
Citroen
XANTIA TD
Ford
MONDEO
TD
Citroen
XMSafrane2.5
TD12
Renault
Espace 2.2i
Renault
d
-2
-1
cl2
0
1
2
Citroen AX1.4i
-3
Peugeot 605 SLD
Renault Espace 2.1dT
-5
0
5
cl1
INRA Montpellier - Analyses en composantes principales - Juillet 2005
p.19/23
18.Représentation séparée des individus principaux et supplémentaires:
l Pour plus de lisibilité, dans le cas présent, il est sans doute préférable de
représenter séparément les individus supplémentaires
plot(cl1,cl2,type="n",main="Individus supplém",xlim=c(-8,8))
abline(h=0,v=0)
text(csup1,csup2,row.names(ligsup$lisup),col="red",cex=1.1)
2
Individus supplém
Ford Scorpio 2000i
Ford
Fiesta
1400
Ford
Fiesta
TD
Ford MONDEO 1800i
Fiat Panda 1000i.e
Ford Escort 1800BMW
TD 525 TD
-1
cl2
0
1
Ford Scorpio 2900i
-3
-2
Ford Escort 1400
Ford MONDEO TD
-5
0
5
cl1
INRA Montpellier - Analyses en composantes principales - Juillet 2005
p.20/23
19.L'A.C.P., le programme complet :
#lecture et préparation des données
don<-na.omit(don)
#exploration graphique des données
layout(matrix(c(1:9),3,3))
for(i in 1:9) {hist(don[,i],main=names(don)[i],xlab="")}
layout(1)
pairs(don,main="Données voitures 1994")
#le calcul de l'ACP. Les résultats sont stockés dans la variable z
library(ade4)
z<- dudi.pca(don, center = T, scale = T, scannf = F)
#l'éboulis des valeurs propres en %
inertie<-z$eig/sum(z$eig)*100
barplot(inertie,ylab="% d'inertie",names.arg=round(inertie,2))
title("Eboulis des valeurs propres en %")
#les coordonnées lignes et colonnes
cl1<-z$li[,1]; cc1<-z$co[,1]; cl2<-z$li[,2]; cc2<-z$co[,2]
#graphique du plan des individus actifs
plot(cl1,cl2,type="n",main="Les individus",xlim=c(-8,8))
abline(h=0,v=0)
text(cl1,cl2,row.names(z$li),)
#graphique du plan des variables actives
plot(cc1,cc2,type="n",main="Les variables",xlim=c(-1,1),ylim=c(-1,1),
asp=1,ylab= "Comp2 71.7%",xlab= "Comp1 12.6%")
abline(h=0,v=0)
text(cc1,cc2,row.names(z$co))
symbols(0,0,circles=1,inches=FALSE,add=TRUE)
INRA Montpellier - Analyses en composantes principales - Juillet 2005
p.21/23
20.Quelques références :
l Logiciel R :
R Development Core Team (2004). R: A language and environment for statistical
computing. R Foundation for Statistical Computing, Vienna, Austria.
ISBN 3-900051-07-0, URL
http://www.R-project.org.
l Bibliothèque ade4 :
Jean Thioulouse, Anne-Beatrice Dufour and Daniel Chessel (2004). ade4: Analysis of
Environmental Data : Exploratory and Euclidean methods in Environmental sciences. R
package version 1.3-3.
http://pbil.univ-lyon1.fr/ADE-4
Mailing list: http://pbil.univ-lyon1.fr/ADE-4/adelist.html
INRA Montpellier - Analyses en composantes principales - Juillet 2005
p.22/23
21.Table des matières
1.Avant propos :....................................................................................................................................................................3
2.Rappels :..............................................................................................................................................................................4
3.Les données d'exemple :.................................................................................................................................................5
4.Préparation du tableau des données :.........................................................................................................................6
5.Description des variables, les histogrammes :..........................................................................................................7
6.Description des variables, contrôle de la linéarité des relations :......................................................................8
7.L'A.C.P. - fonction dudi.pca () de la bibliothèque ade4 :........................................................................................9
8.Les valeurs propres :.....................................................................................................................................................10
9.L'histogramme des valeurs propres...........................................................................................................................11
10.Interprétation des composantes : les contributions "relatives"......................................................................12
11.Présentation des résultats - le plan principal :......................................................................................................13
12.Présentation des résultats - le plan des individus :.............................................................................................14
13.Présentation des résultats - le plan des variables :.............................................................................................15
14.Graphique du plan des variables :.............................................................................................................................16
15.Les données supplémentaires :..................................................................................................................................17
16.Les individus supplémentaires :.................................................................................................................................18
17.Représentation simultanée des individus actifs et supplémentaires:.............................................................19
18.Représentation séparée des individus principaux et supplémentaires:..........................................................20
19.L'A.C.P., le programme complet :..............................................................................................................................21
20.Quelques références :................................................................................................................................................22
INRA Montpellier - Analyses en composantes principales - Juillet 2005
p.23/23

Documents pareils