Références :
- G. Saporta, « Probabilités, Analyse de données et Statistique », Dunod, 2006 ; partie théorique, pages 155 à 177 ; partie pratique, pages 177 à 181.
- 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.
- F. Husson, J. Josse, S. Le, J. Pages, Le package FactoMineR pour R ; http://factominer.free.fr/
- 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)
Advertisement
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 |
Advertisement
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
Advertisement
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)
Advertisement
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