Analyse en Composantes Principales (ACP) et Exploration graphique interactive dans R

Dunod
Page 1 sur 20Lecteur de document UniversityLib

Analyse en Composantes Principales (ACP) et Exploration graphique interactive dans R

Data Analysis and Statistics · notes

Voir tous les documents en biologie et santé

Références :

  1. G. Saporta, « Probabilités, Analyse de données et Statistique », Dunod, 2006 ; partie théorique, pages 155 à 177 ; partie pratique, pages 177 à 181.
  2. Tutoriels Tanagra, « ACP – Description de véhicules », http://tutoriels-data- mining.blogspot.com/2008/03/acp-description-de-vhicules.html ; description des mêmes calculs sous le logiciel Tanagra.
  3. F. Husson, J. Josse, S. Le, J. Pages, Le package FactoMineR pour R ; http://factominer.free.fr/
  4. S. Le, J. Durand, Le package dynGraph pour R ; http://dyngraph.free.fr/

1

Objectif de l’étude

Description d’une série de véhicules

Traitements réalisés

  • Réaliser une ACP sur un fichier de données.

  • Afficher les valeurs propres. Construire le graphiques éboulis des valeurs propres.

  • Construire le cercle de corrélations.

  • Projeter les observations dans le premier plan factoriel.

  • Positionner des variables illustratives quantitatives dans le cercle des corrélations.

  • Positionner les modalités d’une variable illustrative catégorielle.

  • Exploration graphique interactive à l’aide de dynGraph

Données disponibles

Modele CYL PUISS LONG LARG POIDS V-MAX FINITION PRIX R-POID.PUI
Alfasud TI 1350 79 393 161 870 165 2_B 30570 11.01
Audi 100 1588 85 468 177 1110 160 3_TB 39990 13.06
Simca 1300 1294 68 424 168 1050 152 1_M 29600 15.44
Citroen GS Club 1222 59 412 161 930 151 1_M 28250 15.76
Fiat 132 1585 98 439 164 1105 165 2_B 34900 11.28
Lancia Beta 1297 82 429 169 1080 160 3_TB 35480 13.17
Peugeot 504 1796 79 449 169 1160 154 2_B 32300 14.68
Renault 16 TL 1565 55 424 163 1010 140 2_B 32000 18.36
Renault 30 2664 128 452 173 1320 180 3_TB 47700 10.31
Toyota Corolla 1166 55 399 157 815 140 1_M 26540 14.82
Alfetta-1.66 1570 109 428 162 1060 175 3_TB 42395 9.72
Princess-1800 1798 82 445 172 1160 158 2_B 33990 14.15
Datsun-200L 1998 115 469 169 1370 160 3_TB 43980 11.91
Taunus-2000 1993 98 438 170 1080 167 2_B 35010 11.02
Rancho 1442 80 431 166 1129 144 3_TB 39450 14.11
Mazda-9295 1769 83 440 165 1095 165 1_M 27900 13.19
Opel-Rekord 1979 100 459 173 1120 173 2_B 32700 11.20
Lada-1300 1294 68 404 161 955 140 1_M 22100 14.04

Label des observations

Variables actives

Variables illustratives qualitatives (FINITION) et quantitatives (PRIX et R-POIDS.PUIS)

Publicité

2

Fichier de données

Importation, statistiques descriptives et graphiques

3

Analyse en composantes principales

Utiliser la procédure « PCA » de FactoMineR - Résultats immédiats

 #centrage et réduction des données --> scale.unit = T
 #quanti.sup -> numéro des colonnes des var. quanti. supp.
 #quali.sup -> numéro des colonnes des var. quali. supp.
 #pas de graphiques pour l'instant -> graph = F
 autos.acp <- PCA(autos.data,scale.unit = T,quanti.sup=8:9,quali.sup=7,graph=F)
 #obtenir les propriétés de l'objet autos.acp
 print(autos.acp)

4

Valeurs propres associés aux axes

Calcul, intervalles de confiance et Scree Plot

#obtenir les variances associées aux axes c.-à-d. les valeurs propres
val.propres <- autos.acp$eig[,1]
#scree plot (graphique des éboulis des valeurs propres)
plot(1:6,val.propres,type="b",ylab="Valeurs propres",xlab="Composante",main="Scree plot")
#intervalle de confiance des val.propres à 95% (Saporta, page 172)
n <- nrow(autos.data)
val.basse <- val.propres * exp(-1.96 * sqrt(2.0/(n-1)))
val.haute <- val.propres * exp(+1.96 * sqrt(2.0/(n-1)))
#tableau
tableau <- cbind(val.basse,val.propres,val.haute)
colnames(tableau) <- c("B.Inf.","Val.","B.Sup")
print(tableau,digits=3)

Les deux premiers axes traduisent 88% de l’information disponible. On se rend compte ici qu’on pouvait s’en tenir uniquement au premier facteur.

Mais c’est moins pratique pour les graphiques ; on suspecte aussi un « effet taille » dans les données. On va donc conserver les deux premiers facteurs.

Les intervalles de confiance d’Anderson ne sont licites que si le nuage de points est gaussien. On ne l’affiche donc qu’à tire indicatif (cf. formules page 172 de Saporta).

5

Cercle des corrélations

Variables actives

 #**** corrélation variables-facteurs ****
 print(autos.acp$var$cor[,1:2],digits=2)

 #carrés de la corrélation = cos2
 print(autos.acp$var$cos2[,1:2],digits=2)

 #cumul carrés de la corrélation
 print(t(apply(autos.acp$var$cos2[,1:2],1,cumsum)),digits=2)

 #*** cercle des corrélations - variables actives ***
 plot(autos.acp,choix="var",title="Cercle des corrélations", invisible="quanti.sup")

Cercle des corrélations
1.0
V.MAX
0.5
PUISS
(14.27%)
CYL
0.0
. 2
Dim
POIDS
LONG
LARG
-0.5
-1.0
Col2 Col3 Col4 Col5 Col6 Col7

.
-1.0
-0.5
0.0
0.5
1.0
Cercle des corrélations
Dim 2 (14.27%)
CYL
PUISS
LONG
LARG
POIDS
V.MAX
CYL
PUISS
LONG
LARG
POIDS
V.MAX
CYL
PUISS
LONG
LARG
POIDS
V.MAX
CYL
PUISS
LONG
LARG
POIDS
V.MAX
CYL
PUISS
V.MAX
CYL
PUISS
V.MAX
CYL
PUISS
V.MAX

.
-1.0
-0.5
0.0
0.5
1.0
Cercle des corrélations
Dim 2 (14.27%)
CYL
PUISS
LONG
LARG
POIDS
V.MAX
CYL
PUISS
LONG
LARG
POIDS
V.MAX

Publicité

valeurs sont égales à 1.

-1.0 -0.5 0.0 0.5 1.0

Dim 1 (73.68%)

6

Carte des individus sur les 2 premiers axes

Individus actifs

 # invisible = "quali" -> ne pas afficher les variables quali supplémentaires
 plot(autos.acp,choix="ind",title="Individus - 1er plan",invisible="quali")

7

Description automatique des axes

Identifier les variables qui influent le plus dans la définition des axes

 #****************************************************************************
 #*** Caractérisation automatique des axes - Husson, Le, Pages, pages 23 à 25
 #****************************************************************************
 dimdesc(autos.acp, axes = 1:2, proba = 0.05)

facteur pour les variables qualitatives (couplée avec un test de Student pour chaque modalité).

Attention, le « test » est biaisé pour les variables actives qui ont participé à la construction des axes. Les résultats sont donnés pour guider l’interprétation.

Voir F. Husson, S. Le, J. Pages, « Analyse de données avec R », PUR, 2009 ; pages 23 à 25.

8

COSINUS² des individus avec les composantes

Qualité de représentation des individus sur les composantes

 #directement fournis par l'objet PCA
 #ici pour les 2 premiers axes
 autos.acp$ind$cos2[,1:2]

9

Publicité

CONTRIBUTION des individus aux composantes

Déterminer les individus qui pèsent le plus dans la définition d’une composante

 #directement fournis par l'objet PCA
 #ici pour les 2 premiers axes
 autos.acp$ind$contrib[,1:2]

10

Variables quantitatives illustratives

Positionnement dans le cercle des corrélations

11

Variables qualitatives illustratives

Positionner les groupes associés aux modalités de la variable illustrative

#position dans le plan factoriel - barycentre pour chaque moda. de la var.quali
plot(autos.acp,choix="ind",title="Individus - 1er plan")
#coloriage différent des individus pour chaque moda. de la var.quali n°7
plot(autos.acp,choix="ind",title="Individus - 1er plan",habillage=7)

Individus - 1er plan
3
Alfetta-1.66
Alfasud TI 2
Renault 30
Fiat 132 (14.27%) 1
Taunus-2000
Mazda-9295
Toyota Corolla
Citroen GS C 1lu Mb 2B 3_TBOpel-Rekord
Lada-1300 Lancia Beta 2 0
Dim
Datsun-200L
Simca 1300
Renault 16 TL Rancho PePugrienocet 5ss0-41800
-1
Audi 100
-2
-4 -2 0 2 4
Dim 1 (73.68%)
Individus - 1er plan
Col2 Col3
-4
-2
0
2
4
-2
-1
0
1
2
3
Individus - 1er plan
Dim 1 (73.68%)
Dim 2 (14.27%)
Alfasud TI
Audi 100
Simca 1300
Citroen GS Club
Fiat 132
Lancia Beta
Peugeot504
Renault 16 TL
Renault 30
Toyota Corolla
Alfetta-1.66
Princess-1800
Datsun-200L
Taunus-2000
Rancho
Mazda-9295
Opel-Rekord
Lada-~~13~~001M
2
~~B~~
3_TB
Individus - 1er plan
Dim 1 (73.68%)
Individus - 1er plan
Dim 1 (73.68%)
Individus - 1er plan

12

Variables qualitatives illustratives

Moyennes conditionnelles et valeurs test – Ellipses de confiance

 #moyennes conditionnelles et valeur test
 carac.quali <- cbind(autos.acp$quali.sup$coord[,1:2],autos.acp$quali.sup$v.test[,1:2])
 print(carac.quali)
 #ellipse de confiance des modalités dans le plan factoriel
 #créer un nouveau data.frame pour calculer les ellipse
 new.autos <- cbind(as.data.frame(autos.data$FINITION),as.data.frame(autos.acp$ind$coord[,1:2]))
 #calculer les ellipse de dispsersion autour des barycentres dans le plan
 finition.ellipse <- coord.ellipse(new.autos,bary=T)
 #représentation graphique
 plot(autos.acp,ellipse=finition.ellipse,habillage=7)

13

Exploration graphique interactive

dynGraph – Démarrage et interface – Onglet « Carte des individus »

 #************************************************
 # exploration graphique interactive avec dynGraph
 #************************************************

 #lancer l'outil d'exploration interactive
 dynGraph(autos.acp)

Publicité

14

Exploration graphique interactive

dynGraph – Le menu « Fichier »

15

Exploration graphique interactive

dynGraph – Filtrer les individus selon le COS²

16

Exploration graphique interactive

dynGraph – Habillage des individus selon…

Exploration graphique interactive

dynGraph – Habillage des individus selon…

variable qualitative.

Bien entendu, nous avons la possibilité de choisir les axes factoriels.

18

Exploration graphique interactive

dynGraph – Carte des variables

19

20