0% ont trouvé ce document utile (0 vote)
3 vues18 pages

Fiche TD - R

Ce document présente une initiation à l'analyse en composantes principales (ACP) avec un accent sur la méthode centrée et réduite. Il couvre des concepts tels que le centrage et la réduction des données, ainsi que des techniques de visualisation en trois dimensions. Le document utilise un jeu de données extrait du paquetage MASS pour illustrer les méthodes d'analyse multivariée.

Transféré par

constant.onana
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
3 vues18 pages

Fiche TD - R

Ce document présente une initiation à l'analyse en composantes principales (ACP) avec un accent sur la méthode centrée et réduite. Il couvre des concepts tels que le centrage et la réduction des données, ainsi que des techniques de visualisation en trois dimensions. Le document utilise un jeu de données extrait du paquetage MASS pour illustrer les méthodes d'analyse multivariée.

Transféré par

constant.onana
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Fiche TD avec le logiciel : tdr601

—————
Initiation à l’analyse en composantes principales
A.B. Dufour & J.R. Lobry
—————

Une première approche très intuitive et interactive de l’ACP. Cen-


trage et réduction des données.

Table des matières


1 Introduction 2

2 Les données 2

3 Visualisation des données en trois dimensions 3

4 Centrage et réduction 4
4.1 Centrage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
4.2 Centrage et réduction . . . . . . . . . . . . . . . . . . . . . . . . 5

5 La forme générale du nuage 6

6 ACP centrée-réduite dans ade4 7


6.1 Calculs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
6.1.1 tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
6.1.2 cw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
6.1.3 lw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
6.1.4 eig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
6.1.5 rank . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
6.1.6 nf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
6.1.7 c1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
6.1.8 l1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
6.1.9 co . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
6.1.10 li . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
6.1.11 call . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
6.1.12 cent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
6.1.13 norm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
6.2 Dé-réduction et dé-centrage . . . . . . . . . . . . . . . . . . . . . 12
6.3 Représentations graphiques dans ade4 . . . . . . . . . . . . . . . 12
6.3.1 Représentation des individus . . . . . . . . . . . . . . . . 12

1
A.B. Dufour & J.R. Lobry

6.3.2 Représentation des variables . . . . . . . . . . . . . . . . . 14


6.3.3 Représentation simultanée des individus et des variables . 15

7 Pour aller plus loin 17


7.1 ACP centrée non réduite . . . . . . . . . . . . . . . . . . . . . . . 17
7.2 ACP non centrée réduite . . . . . . . . . . . . . . . . . . . . . . . 18
7.3 ACP non centrée non réduite . . . . . . . . . . . . . . . . . . . . 18

Références 18

1 Introduction
Les méthodes d’analyse multivariées sont une branche à part entière des statis-
tiques. Nous vous proposons ici une introduction, très sommaire, à l’une d’entre
elles, connue sous le nom d’analyse en composantes principales (ACP). Plus
précisément, nous n’utiliserons qu’une des variantes de l’ACP, l’ACP centrée et
réduite appelée aussi ACP normée.

2 Les données
Nous allons utiliser un jeu de données très simple extrait de survey du paquetage
MASS [3].
library(MASS)
data(survey)
names(survey)
[1] "Sex" "[Link]" "[Link]" "[Link]" "Fold" "Pulse" "Clap" "Exer" "Smoke"
[10] "Height" "M.I" "Age"

Pour ne pas nous embêter par la suite avec les données manquantes, nous ne
conservons que les individus entièrement documentés :
[Link] <- survey[[Link](survey), ]

Nous récupérons le sexe des individus dans un vecteur, et définissons un vecteur


de couleurs pour distinguer facilement les filles de garçons :
sexe <- [Link]$Sex
couleur <- ifelse(sexe == "Male", "blue", "red")

Nous extrayons trois variables quantitatives de ce jeu de données : l’empan de


la main d’écriture dite main dominante, l’empan de la main non dominante et
la stature. Toutes sont exprimées en centimètres.
mesures <- [Link][, c("[Link]", "[Link]", "Height")]
names(mesures) <- c("Empan1", "Empan2", "Taille")
plot(mesures, col = couleur, pch = 19)

Logiciel R version 2.11.1 (2010-05-31) – [Link] – Page 2/18 – Compilé le 2011-10-10


Maintenance : S. Penel, URL : [Link]
A.B. Dufour & J.R. Lobry

14 16 18 20 22

● ●● ●
●● ● ●

●● ●
●●● ● ● ● ●

22
●●●● ● ● ● ●● ● ●

●●●●● ● ●● ● ●
●●●●●● ●●●● ●●
● ● ●●● ● ● ● ● ●● ●

20
●●●●●
●● ● ● ●● ●● ● ● ●●

●●●●
●●●●


●● ● ● ● ●● ●●● ●


●●● ● ● ● ● ●

●● ●●

● ●
●●● ●
●●● ●●●

Empan1 ●
● ●●●
●●
● ● ● ●●
● ●● ●● ● ● ●
●●●● ● ●● ●

18



●●●

●●●
● ● ●● ●

●●●●●
●● ● ● ● ●● ●● ●●● ●●●●● ●
●● ● ● ●
●●●●●
● ●● ● ●●●● ●●
●●●●●
●●● ● ● ●● ● ●●
●●●


●●
●● ●●●● ● ●
● ●●● ● ●
● ● ● ●●

16
●●● ● ● ●
● ● ●
●● ● ●● ●
● ●

14
● ●

● ●

● ●
●●● ● ●●
● ● ● ● ●●
●● ● ●● ●
22

●● ● ●● ●●
●● ● ●
● ●
●● ● ● ●
● ●● ● ● ●● ●● ●
● ● ● ●● ● ● ●
●● ● ● ● ●
● ● ● ●●
20

●●●
● ● ● ● ●
●● ●●●●●
●● ●
●● ●● ● ●● ●
●●●● ● ● ● ●
●●●●●
● ●● ● ● ●●●● ●
●● ●● ●
● ● ● ●●● ● ● ●● ●
●●●● ●●●
●●

Empan2 ● ●●
● ● ● ●
18

●●●
● ●●
●●● ●●●● ●●● ●●●●●● ● ●● ●

●●●●● ● ●●
● ●●● ● ● ● ●● ●
● ●●● ●●
●● ●
● ●
●●●
● ●● ● ●●● ●
●●
●● ● ●● ●●●●
● ●●● ● ● ●
16


●●● ● ● ●● ●
●● ●● ●
● ●
14

● ●
● ●
● ●

160 170 180 190 200


● ●
● ● ● ●
● ●
● ●
● ●● ● ● ●● ● ●

● ● ●●●● ● ● ● ●●●
●●
● ●●● ● ● ●●●● ●● ●
● ●
● ● ●● ●● ● ● ●● ● ●●●
●●●
● ● ●●● ● ● ● ●●
●●● ● ●●
●●
●● ● ●●
● ● ● ●●
● ● ●

● ● ●●
● ●


●●●
●●●
● ●●● ●●
● ●
● ● ● ● ●●
● ●●●●



● ●●●
●●


● ● ●
● ●

● ●● ● ● ●●● ●
●●● ●

Taille
● ● ●●● ● ●
●●● ● ● ●● ● ● ●
● ●

● ●
●● ● ● ●●●●● ●
●●● ●
●●● ● ●● ● ● ● ● ●●●●
●● ●● ●
● ●
● ● ● ●●●● ●●●●●● ● ● ● ● ●●●● ●●
●●
● ● ●
● ●● ● ● ● ●●● ●●●
● ●●● ● ● ● ● ●● ●●● ●
● ●
● ●
● ● ● ● ●● ● ●
● ●
● ● ● ● ● ●
● ● ●● ●

14 16 18 20 22 160 170 180 190 200

Notez que les variables morphométriques des garçons (en bleu) sont en moyenne
plus grandes que celles des filles (en rouge). Ceci nous permettra de nous orienter
plus facilement dans les représentations graphiques suivantes.

3 Visualisation des données en trois dimensions


Chaque individu est caractérisé par trois variables, soit par un point dans R3 . La
fonction plot3d() de la bibliothèque rgl [1] vous permet d’explorer facilement
un nuage de points en 3 dimensions.
library(rgl)
plot3d(mesures, type = "s", col = couleur)

Logiciel R version 2.11.1 (2010-05-31) – [Link] – Page 3/18 – Compilé le 2011-10-10


Maintenance : S. Penel, URL : [Link]
A.B. Dufour & J.R. Lobry

Faites tourner avec le curseur de la souris cette représentation pour en avoir


différents points de vue :

4 Centrage et réduction
Les représentations graphiques précédentes sont trompeuses parce que nous
n’avons pas utilisé la même échelle en x, y et z. Imposons une échelle com-
mune pour visualiser les données :
lims <- c(min(mesures), max(mesures))
plot3d(mesures, type = "s", col = couleur, xlim = lims, ylim = lims,
zlim = lims)

Voici donc à quoi ressemblent réellement les données. On voit tout de suite le
problème, comme les tailles sont en moyenne beaucoup plus grandes que les
empans, les points se trouvent complètement collés sur le plan des empans.

4.1 Centrage
L’opération de centrage consiste à enlever la moyenne à chaque variable. La
fonction scale() permet d’effectuer directement cette opération :

Logiciel R version 2.11.1 (2010-05-31) – [Link] – Page 4/18 – Compilé le 2011-10-10


Maintenance : S. Penel, URL : [Link]
A.B. Dufour & J.R. Lobry

mesures.c <- scale(mesures, center = TRUE, scale = FALSE)


lims <- c(min(mesures.c), max(mesures.c))
plot3d(mesures.c, type = "s", col = couleur, xlim = lims, ylim = lims,
zlim = lims)

C’est mieux. Le nuage est maintenant centré autour de l’origine. Mais comme
la variabilité est beaucoup plus forte pour la taille que pour les empans, notre
nuage de points a l’aspect d’une galette complètement applatie.

4.2 Centrage et réduction


Cette opération consiste à centrer les données puis diviser les valeurs par l’écart-
type. La fonction scale() permet d’effectuer directement cette opération :
[Link] <- scale(mesures)

lims <- c(min([Link]), max([Link]))


plot3d([Link], type = "s", col = couleur, xlim = lims, ylim = lims,
zlim = lims)

Logiciel R version 2.11.1 (2010-05-31) – [Link] – Page 5/18 – Compilé le 2011-10-10


Maintenance : S. Penel, URL : [Link]
A.B. Dufour & J.R. Lobry

Quand on fait une ACP normée, on travaille avec les données après centrage et
réduction. Il est donc important de bien comprendre à quoi correspondent ces
opérations.

5 La forme générale du nuage


Dans l’exemple que nous avons choisi, la forme générale du nuage de points est
celui d’une dragée (le terme technique est un ellipsoı̈de).
plot3d([Link], type = "s", col = couleur, xlim = lims, ylim = lims,
zlim = lims)
plot3d(ellipse3d(cor([Link])), col = "grey", alpha = 0.5, add = TRUE)

Une dragée est définie par ses trois axes :


1. Le premier axe correspondant au plus grand diamètre de l’ellipsoı̈de, la
longueur de la dragée.
2. Le deuxième axe correspondant au diamètre moyen de l’ellipsoı̈de, la lar-
geur de la dragée.
3. Le troisième axe correspondant au plus petit diamètre de l’ellipsoı̈de,
l’épaisseur de la dragée.
Faites tourner le graphique précédent pour représenter le nuage de points dans
le plan des axes (1,2), puis (1,3) puis (2,3) :

Logiciel R version 2.11.1 (2010-05-31) – [Link] – Page 6/18 – Compilé le 2011-10-10


Maintenance : S. Penel, URL : [Link]
A.B. Dufour & J.R. Lobry

Faire le même exercice en ne conservant que la dragée :


plot3d(ellipse3d(cor([Link])), col = "blue", alpha = 0.25, xlab = "Empan1",
ylab = "Empan2", zlab = "Taille")

Avez-vous noté au passage que pour dessiner la dragée, nous n’avons eu besoin
que de la matrice de variances-covariances :
cor([Link])
Empan1 Empan2 Taille
Empan1 1.0000000 0.9651297 0.6510316
Empan2 0.9651297 1.0000000 0.6296482
Taille 0.6510316 0.6296482 1.0000000

Si vous aviez à choisir entre les trois plans que nous avons envisagés ci-dessus,
vous n’hésiteriez pas à prendre le plan défini par les deux premiers axes de la
dragée parce que c’est dans cette représentation que l’on a le moins de perte
d’information par rapport au nuage de points dans R3 : c’est dans cette pro-
jection que les points sont les plus étalés dans le plan (on dit aussi que l’on
a conservé le maximum possible de l’inertie initiale du nuage de points). Ce
faisant, vous avez en fait réalisé une ACP à la main.

6 ACP centrée-réduite dans ade4


6.1 Calculs
Utiliser la fonction [Link]() du paquetage ade4 [2] pour exécuter une ACP
centrée réduite :
library(ade4)
acp <- [Link](mesures, scannf = FALSE, nf = 3)
names(acp)
[1] "tab" "cw" "lw" "eig" "rank" "nf" "c1" "li" "co" "l1" "call"
[12] "cent" "norm"

Nous avons utilisé ici les options scann = FALSE pour conserver automatique-
ment nf = 3 facteurs. En général on ne procède pas ainsi : on commence par
examiner le graphe des valeurs propres qui exprime quelle fraction de la variance
totale est prise en compte par les axes successifs. Essayer avec :
acp <- [Link](mesures)

Répondre 3 à la question "Select the number of axes:". Dans la pratique,


on ne conserve qu’un nombre réduit d’axes, ici nous les avons tous conservés
pour des raisons pédagogiques.
L’objet renvoyé par la fonction [Link]() est très riche. Nous allons examiner
tous ses composants un à un.

Logiciel R version 2.11.1 (2010-05-31) – [Link] – Page 7/18 – Compilé le 2011-10-10


Maintenance : S. Penel, URL : [Link]
A.B. Dufour & J.R. Lobry

6.1.1 tab
Le data frame tab contient les données du tableau initial après centrage et
réduction. Par rapport au résultat obtenu avec la fonction scale() vous noterez
de petites différences :
head(acp$tab)
Empan1 Empan2 Taille
1 -0.1580263 -0.3711415 0.05273898
2 0.3645805 0.8972021 0.53612965
5 0.6258839 0.6435334 -0.75291214
6 -0.4193297 -0.5233427 0.02454119
7 -0.5761118 -0.5233427 1.04771811
8 -0.9419365 -0.7262777 -1.55856326
head([Link])
Empan1 Empan2 Taille
1 -0.1575553 -0.3700353 0.05258178
2 0.3634938 0.8945279 0.53453164
5 0.6240183 0.6416152 -0.75066799
6 -0.4180799 -0.5217828 0.02446804
7 -0.5743946 -0.5217828 1.04459524
8 -0.9391290 -0.7241129 -1.55391775

Cette petite différence est due à l’utilisation d’une variance en n1 dans [Link]()
1
contre une variance en n−1 dans scale(). Pour retrouver exactement le tableau
utilisé dans [Link]() faire :
var.n <- function(x) sum((x - mean(x))^2)/length(x)
scale.n <- function(x) (x - mean(x))/sqrt(var.n(x))
head(apply(mesures, 2, scale.n))
Empan1 Empan2 Taille
1 -0.1580263 -0.3711415 0.05273898
2 0.3645805 0.8972021 0.53612965
5 0.6258839 0.6435334 -0.75291214
6 -0.4193297 -0.5233427 0.02454119
7 -0.5761118 -0.5233427 1.04771811
8 -0.9419365 -0.7262777 -1.55856326

6.1.2 cw
Le vecteur cw donne le poids des colonnes (column weight), c’est-à-dire le poids
des variables. Par défaut, chaque variable a un poids de 1.
acp$cw
[1] 1 1 1

6.1.3 lw
Le vecteur lw donne le poids des lignes (line weight), c’est-à-dire le poids des
individus. Par défaut, chaque individu a un poids de n1 .

head(acp$lw)
[1] 0.005952381 0.005952381 0.005952381 0.005952381 0.005952381 0.005952381
head(acp$lw) * nrow(mesures)
[1] 1 1 1 1 1 1

Logiciel R version 2.11.1 (2010-05-31) – [Link] – Page 8/18 – Compilé le 2011-10-10


Maintenance : S. Penel, URL : [Link]
A.B. Dufour & J.R. Lobry

6.1.4 eig
Le vecteur eig donne les valeurs propres (eigen values) dans le plus petit des
deux espaces diagonalisés.
acp$eig
[1] 2.50871762 0.45683484 0.03444753
sum(acp$eig)
[1] 3

Les valeurs propres nous renseignent sur la fraction de l’inertie totale prise en
compte par chaque axe :
(pve <- 100 * acp$eig/sum(acp$eig))
[1] 83.623921 15.227828 1.148251
cumsum(pve)
[1] 83.62392 98.85175 100.00000

Dans notre exemple, le premier axe factoriel extrait 83.6 % de l’inertie totale, le
deuxième axe factoriel 15.2 % de l’inertie totale. Le premier plan factoriel repré-
sente donc 98.9 % de l’inertie initiale. Ceci signifie que lorsque nous projetons
le nuage de points initial dans R3 sur le plan défini par les deux premiers axes
factoriels, nous avons perdu peu d’information.

6.1.5 rank
Cet entier donne le rang (rank ) de la matrice diagonalisée, dans notre cas le
nombre de variables indépendantes.
acp$rank
[1] 3
bismesures <- cbind(mesures, mesures)
head(bismesures)
Empan1 Empan2 Taille Empan1 Empan2 Taille
1 18.5 18.0 173.00 18.5 18.0 173.00
2 19.5 20.5 177.80 19.5 20.5 177.80
5 20.0 20.0 165.00 20.0 20.0 165.00
6 18.0 17.7 172.72 18.0 17.7 172.72
7 17.7 17.7 182.88 17.7 17.7 182.88
8 17.0 17.3 157.00 17.0 17.3 157.00
colnames(bismesures) <- c("Empan11", "Empan21", "Taille1", "Empan12",
"Empan22", "Taille2")
[Link](bismesures, scann = F, n = 3)$rank
[1] 3

6.1.6 nf
Cet entier donne le nombre de facteurs conservés dans l’analyse :
acp$nf
[1] 3

Logiciel R version 2.11.1 (2010-05-31) – [Link] – Page 9/18 – Compilé le 2011-10-10


Maintenance : S. Penel, URL : [Link]
A.B. Dufour & J.R. Lobry

6.1.7 c1
c1 donne les coordonnées des variables (colonnes). Les vecteurs sont de norme
unité :
acp$c1
CS1 CS2 CS3
Empan1 0.6084890 -0.3420962 0.71603859
Empan2 0.6040404 -0.3855223 -0.69750107
Taille 0.5146613 0.8569380 -0.02794614
sum(acp$cw * acp$c1$CS1^2)
[1] 1

6.1.8 l1
l1 donne les coordonnées des individus (lignes). Les vecteurs sont de norme
unité :
head(acp$l1)
RS1 RS2 RS3
1 -0.18511289 0.35854289 0.7771789
2 0.65642982 -0.01654562 -2.0459458
5 0.24122137 -1.63843055 0.1095513
6 -0.35270516 0.54186131 0.3453116
7 -0.08047126 1.91845520 -0.4136080
8 -1.14527378 -1.08502402 -0.6698669
sum(acp$lw * acp$l1$RS1^2)
[1] 1

6.1.9 co
co donne les coordonnées des variables (colonnes). Les vecteurs sont normés à
la racine carré de la valeur propre correspondante :
acp$co
Comp1 Comp2 Comp3
Empan1 0.9637816 -0.2312213 0.132897100
Empan2 0.9567355 -0.2605728 -0.129456527
Taille 0.8151685 0.5792006 -0.005186817
sum(acp$cw * acp$co$Comp1^2)
[1] 2.508718

Le lien entre les c1 et les co s’obtient par :


acp$c1$CS1 * sqrt(acp$eig[1])
[1] 0.9637816 0.9567355 0.8151685
t(t(acp$c1) * sqrt(acp$eig))
CS1 CS2 CS3
Empan1 0.9637816 -0.2312213 0.132897100
Empan2 0.9567355 -0.2605728 -0.129456527
Taille 0.8151685 0.5792006 -0.005186817

Logiciel R version 2.11.1 (2010-05-31) – [Link] – Page 10/18 – Compilé le 2011-10-10


Maintenance : S. Penel, URL : [Link]
A.B. Dufour & J.R. Lobry

6.1.10 li
li donne les coordonnées des individus (lignes). Les vecteurs sont normés à la
racine carré de la valeur propre correspondante :
head(acp$li)
Axis1 Axis2 Axis3
1 -0.2931990 0.24233756 0.14424478
2 1.0397147 -0.01118311 -0.37972849
5 0.3820689 -1.10740798 0.02033277
6 -0.5586473 0.36624167 0.06409000
7 -0.1274579 1.29667540 -0.07676584
8 -1.8139913 -0.73336294 -0.12432761
sum(acp$lw * acp$li$Axis1^2)
[1] 2.508718

head(acp$l1$RS1 * sqrt(acp$eig[1]))
[1] -0.2931990 1.0397147 0.3820689 -0.5586473 -0.1274579 -1.8139913
head(t(t(acp$l1) * sqrt(acp$eig)))
RS1 RS2 RS3
1 -0.2931990 0.24233756 0.14424478
2 1.0397147 -0.01118311 -0.37972849
5 0.3820689 -1.10740798 0.02033277
6 -0.5586473 0.36624167 0.06409000
7 -0.1274579 1.29667540 -0.07676584
8 -1.8139913 -0.73336294 -0.12432761

6.1.11 call
Cet objet garde une trace de la façon dont ont été conduits les calculs lors de
l’appel de la fonction [Link]() :
acp$call
[Link](df = mesures, scannf = FALSE, nf = 3)

La fonction eval() permet de refaire les mêmes calculs :


eval(acp$call)
Duality diagramm
class: pca dudi
$call: [Link](df = mesures, scannf = FALSE, nf = 3)
$nf: 3 axis-components saved
$rank: 3
eigen values: 2.509 0.4568 0.03445
vector length mode content
1 $cw 3 numeric column weights
2 $lw 168 numeric row weights
3 $eig 3 numeric eigen values
[Link] nrow ncol content
1 $tab 168 3 modified array
2 $li 168 3 row coordinates
3 $l1 168 3 row normed scores
4 $co 3 3 column coordinates
5 $c1 3 3 column normed scores
other elements: cent norm
identical(eval(acp$call), acp)
[1] TRUE

Logiciel R version 2.11.1 (2010-05-31) – [Link] – Page 11/18 – Compilé le 2011-10-10


Maintenance : S. Penel, URL : [Link]
A.B. Dufour & J.R. Lobry

6.1.12 cent
Ce vecteur donne les moyennes (cent pour centrage) des variables analysées :
acp$cent
Empan1 Empan2 Taille
18.80238 18.73155 172.47631
colMeans(mesures)
Empan1 Empan2 Taille
18.80238 18.73155 172.47631

6.1.13 norm

Ce vecteur donne les écarts-types (sur n) des variables analysées :
acp$norm
Empan1 Empan2 Taille
1.913484 1.971075 9.929857
sd.n <- function(x) sqrt(var.n(x))
apply(mesures, 2, sd.n)
Empan1 Empan2 Taille
1.913484 1.971075 9.929857

6.2 Dé-réduction et dé-centrage


Si vous avez bien compris en quoi consiste l’opération de centrage et réduction,
vous devez pouvoir être capables de faire l’opération inverse. À partir des objets
acp$tab, acp$cent et acp$norm reconstituez les données de départ, placez le
résultat dans l’objet recon :
head(recon)
Empan1 Empan2 Taille
1 18.5 18.0 173.00
2 19.5 20.5 177.80
5 20.0 20.0 165.00
6 18.0 17.7 172.72
7 17.7 17.7 182.88
8 17.0 17.3 157.00

6.3 Représentations graphiques dans ade4


6.3.1 Représentation des individus
La fonction [Link]() permet de représenter les individus sur les différents
plans factoriels, par exemple sur le premier plan factoriel :
[Link](acp$li, xax = 1, yax = 2)

Logiciel R version 2.11.1 (2010-05-31) – [Link] – Page 12/18 – Compilé le 2011-10-10


Maintenance : S. Penel, URL : [Link]
A.B. Dufour & J.R. Lobry

d=2

190

152 197
182 205
7 146 160 112 97 163 51
109 127
23 218
230 52
89 32 38
75201
22216473 104
113 135
193 15518 148
170 228 151
125
6 185
141 128 17291120 36
21 118
115 74 76 53 1
189111 82132
59 110
124
191 114 131
206
23771119
123 3422
57168
134 180
178
200
166
161
86
33
209 21588 143 100632
9849
54 24
236 136
214
196
18777
105 62
227
176
184
231 181 9 44 39 147
174
6593
50 10 106
102
199 144 138
95 220
61
198 116117 212 233
183149
223 79
150 229
188 158
140 167145 156 20
55
8 208
194 87 177 28
202 192
129 204 30 27
130 11 175 234
153
154 122 47
17 211 5 186
20742

48
14
85

Exercice. Faire les représentations dans les plans (1,2), (1,3) et (2,3) avec une
échelle commune pour tous les graphiques afin d’obtenir la représentation ci-
dessous. d=1 d=1 d=1

190

152 197
7 112 51
182
205109 146160 97 163
127 218
230 52
89 23
104 32170 38 18 148 151
228
222 16473
75 201 113
135193 155
3621
197
168 168 36
197
125 128 172 36
74 6 185
141111 82132 91 114 118
116 200 140
106 54172 118 140 10620054 118
116 172 38
115 53
76 1
189 59 110
124 120 131 93 38 136 93 136
206
237 71 123
166 63191 34 198 115 201 129 105
180 209 86174
206
113 204
234 71 6 227
119
123
1125 32170145
17623167 156
59 9190
191 2791 144 24 131 47 51
97 120
95
52
47129156
204
234 14595
198176
227
174
105
144209
18086
949
119120
131
191
123
71191
59
206 3223
170 52 9751
168 161
86
33 215 119 143 100
54 22 24 152 182
57 153
117 161
73 166
2378749
215
50211 62 231
30 82
143
199 5 18177 228 20 122
3955 147 220 122
5
2787117
153 55167
20231
62
199
220
161
143 115
166
24 82
237
215 6113
125 73
201
228
18 182 152 190
57 134 178
77 98 49
200209 88 2 236 147136 130 207
187208
42 1798
212
183 149
76 104
233 188
135
10 111
88 89
109 7 186
100 63
146 4434 202 154 138 211
17130
154
207
186
42
202
30177
188
8208
50
138
10
149
233
212
183 3957
147
187
44 98 34
63111135
76 104
155 891271467
109
180187214
196 227 9 44 39 75 118 127
178 194 79 229 102 128
158 155 124 163 48 85
2228 114236 192 21 151
61 85 48 194
11
175192
229
79
158 102
61 100
88
178 124 75
128 163
105 65 176 181
184
231 222 74
175
164
214
196
7733 150 205 189184 181
14
185
193 160 110112
132 14 150
28 181
184
214
196
7733
236 110
114
132
22189 21
164
185
74 193151 205 112
160
198 116 117 212
174
183 14950 62
93
233 10 106
102
199 95144 138 61220 65
223 141
230 2
148 223 65
2 53
141222148
79 229158 167 145 156 20 134 53 134 230
223 150188 140 55
8 194 87
208
30
177 202
27
28 192 218 218
153 129
11
130 175 234204 47
17 211 186 154 122
207 42 5

48
14
85

La fonction [Link]() permet de porter en information supplémentaire une


variable qualitative définissant des groupes d’individus, par exemple :
gcol <- c("red", "blue")
[Link](dfxy = acp$li, fac = sexe, col = gcol, xax = 1, yax = 2)

Logiciel R version 2.11.1 (2010-05-31) – [Link] – Page 13/18 – Compilé le 2011-10-10


Maintenance : S. Penel, URL : [Link]
A.B. Dufour & J.R. Lobry

d=2

● ●

● ● ●
● ●
● ● ●
● ●

●● ●
● ●
● ●
● ● ● ● ●
● ●
● ● ● ●
● ● ● ●
● ● ● ●●
● ●
● ● ●
● ● ● ●
● ● ● ● ● ●
● ● ● ● ● ●

● ●●
●●
●●


●●


● ●

Male

● ●


● ● ●● ● ●

● Female


● ● ● ● ●
● ●
● ●

● ● ● ● ●● ● ●
●● ● ● ●
● ● ● ● ● ●
● ●● ●
●● ● ● ●
● ● ● ●

● ●●● ● ● ●
● ● ● ●
● ● ● ●
● ●
● ●



Exercice. Faire les représentation dans les trois plans factoriels :


d=1 d=1 d=1

● ●

● ●
● ● ●
● ●
● ● ●

●● ●
● ●

● ●
● ● ● ●

● ● ● ● ●
● ●
● ●
● ● ● ● ● ●
● ● ● ● ●
●● ●
● ● ● ● ● ● ● ● ● ● ● ● ●●
● ● ● ● ●
● ● ● ● ● ● ●
● ● ● ● ● ● ● ● ● ● ● ●
● ● ● ●● ● ● ●● ●
● ● ●● ● ● ● ● ●● ● ● ● ● ● ●
● ●●●● ● ●
● ●●
●●

● ●
Male

● ● ●
● ●
● ● ● ● ●● ● ●

●●
●●●● ●
● ● ● ● ●



● ● ●● ●● ●
● ●


● ●
●●● ● ●

●●●● ●
●●●● ●● ● ● ●● ●

● ● ● ●
● ● ●
●● ● ●

● ●
● ●

● ●

● ●
● ● ● ●

● ●
● ●
● ●
● ●

Female


●● ●● ●
● ●●
●●


● ●●
●●● ●
● ●


● ●

Male
●● ●
● ● ● ● ●


● ●
● ●




● ●●
● ●● ● Female
●●● ●●● ●●●

● ●● ●●●● ●

●● ● ● ● ●
Male
● ●●
● ● ●●
●●
● ●
● ●● ●
●●
● ● ● ● ● ●● ●
● Female ● ●
● ●
● ● ● ●

●● ●●
● ● ●●
● ●●


● ●


● ● ● ● ●


● ●




●●
● ●

● ●●●●

● ●● ●
●●●
●● ●
●● ● ●
● ● ● ● ● ● ● ● ● ● ●
● ● ● ● ●● ●
● ●
● ● ●● ● ●
● ●● ● ● ●
● ● ● ● ● ● ●
● ● ● ● ● ● ● ● ●

● ●
● ● ● ●● ●
● ● ● ● ● ●
● ●
●● ●
● ●
● ●
● ● ●

● ● ●
● ●

● ●

6.3.2 Représentation des variables


La fonction [Link]() représente les variables iniiales dans le nouvel es-
pace. Cette représentation est appelée cercle des corrélations :
[Link](acp$co, xax = 1, yax = 2)

Logiciel R version 2.11.1 (2010-05-31) – [Link] – Page 14/18 – Compilé le 2011-10-10


Maintenance : S. Penel, URL : [Link]
A.B. Dufour & J.R. Lobry

Taille

Empan1
Empan2

Le premier facteur de l’ACP est corrélé positivement aux trois variables de


départ, on dit que c’est un effet ”taille”. L’ACP joue ici son rôle de recherche
de variable latente. La première composante principale prédit les trois variables.
C’est une explicative cachée. C’est la variable cachée qui prédit au mieux les
autres, c’est aussi la variable cachée qui est la mieux prédite par toutes les
autres.
par(mfrow = c(1, 3))
for (i in 1:3) {
plot(x = acp$li[, 1], y = mesures[, i], pch = 19, col = couleur,
xlab = "Premier facteur de l'ACP", las = 1, ylab = colnames(mesures)[i])
}


● ●●


●●
200 ●
● ●
●● ● ● ●
● ● ● ●● ●


22 ●●


22 ●●● ● ●
●● ● ● ● ●
● ● ● ● ●
●● ●
●●● ● ● ● 190 ●●
● ●● ●
● ● ●

●● ●● ● ● ● ●● ● ● ● ●

● ●● ● ●
● ● ●
20 ● ●● ●●●●●● ●●●● ● ● ●
● ●
● ● ●


20 ●

●●
● ● ●
●●●●● ● ● ●●●
●●● ●
●● ● ●● ●● ● ●
● ●● ●
● ●● ● ●
● ● ● ● ●● ●
●●●●●● ●●● ●● ●●●● ●● ● ●
●●● ● ●● ● ● ● 180 ● ● ● ●
Empan1

Empan2

● ●●● ● ● ● ●●●
● ●
● ●●●
●●
●●
●●●● ● ●● ● ● ●● ●●

●●●● ●●● ● ●
Taille

● ●●
● ● ● ●● ● ● ● ● ●
18 ● ●●●
●●
●●●●●●●
● 18 ●●●●●●● ●
● ●●●● ●

●● ● ●
● ●●

●●
● ●● ●
● ● ● ●● ●

● ●● ● ● ●
● ●
●●●●●●● ●
● ●
● ●●
●●●●●
● ● ● ● ● ●● ● ●● ● ●
● ●
●● ●● ●●●
●● ● ● ● ●
● ●●
●● ●●● ● ● ●


● ●
170 ● ● ●● ●●●● ●● ●
● ●● ●● ● ● ●
● ●● ● ● ● ●
●● ● 16 ● ● ●
● ● ●● ● ● ●
●● ●● ● ●
● ●
● ● ●●
16 ● ● ●● ● ● ● ● ● ●
● ● ●●

● ● ●
● ●
● ● ●● ● ●
● ● ●●●●● ●●

160 ●●

●● ● ●
14 ● ●
14 ● ● ●● ●●

● ● ●


● ● ●●

−4 −2 0 2 −4 −2 0 2 −4 −2 0 2

Premier facteur de l'ACP Premier facteur de l'ACP Premier facteur de l'ACP

6.3.3 Représentation simultanée des individus et des variables


La fonction scatter() permet de représenter simultanément les individus et les
variables. C’est une fonction générique associée à un objet de la classe dudi.
scatter(acp)

Logiciel R version 2.11.1 (2010-05-31) – [Link] – Page 15/18 – Compilé le 2011-10-10


Maintenance : S. Penel, URL : [Link]
A.B. Dufour & J.R. Lobry

Eigenvalues d=2
Taille

190

152 197
7 112 51
182
205109 146160 97 163
127 218 52
230
89 2332 38
104 170 18 148 228 151
73 135 155
75 201
222 164 113 193
125 128 172 36
21
115 74 6 185
141
111 132
59 91 120
114 118
206 53
76 1
189 82 110
124
191 131
168 23771 119
166
161
86 123 63 34
54
57 134 178
200 33 215
7798 49 88
209 143 100 2 22 24
236 136
180
187214
196 227
176
184 181 9 44 39 147
105 6517450 62
93 231 106
102
199 144
95 138 61220
198 116117 212 233
183 149 10
229158167 145 156 20
223 79
150
188 140
208
8 194
87
30
177 20228 19255
153 129
11 27
130 175 234204
122 47
17 211 5 186 154
207 42

48 Empan1
14 Empan2
85

Enrichir le graphique en portant l’information sur les groupes :


scatter(acp, [Link] = 0, posieig = "none")
NULL
[Link](acp$li, sexe, col = gcol, [Link] = TRUE, cstar = 0, clabel = 0,
cellipse = 0)

d=2
Taille

● ●

● ● ●
● ●
● ● ●
● ●

●● ●
● ● ●
● ● ● ●
● ● ●
● ● ● ● ● ●
● ● ● ● ●●
●● ●
● ● ● ● ●
● ● ●
● ● ● ● ● ●
● ● ● ● ● ● ● ●
● ● ●
● ● ●
● ● ●● ●● ● ●



● ● ●
● ● ● ● ●●
● ● ● ●
● ●
● ● ● ●● ● ●
● ●
● ● ● ● ●●● ●
● ● ● ●
● ● ● ● ● ●
● ●● ●
●● ● ● ●
● ● ● ●

● ●●● ● ● ●
● ● ● ●
● ● ● ●
● ●
● ●

● Empan1
● Empan2

Faire le lien avec ce qui avait été obtenu à la main avec la fonction plot3d(),
notez en particulier comment les axes de la base initiale se projettent sur le
premier plan factoriel :

Logiciel R version 2.11.1 (2010-05-31) – [Link] – Page 16/18 – Compilé le 2011-10-10


Maintenance : S. Penel, URL : [Link]
A.B. Dufour & J.R. Lobry

7 Pour aller plus loin


Nous n’avons utilisé jusqu’à présent que l’ACP centrée réduite. Ce n’est pas
forcément la meilleure option en fonction de vos objectifs. Réaliser les autres
combinaisons possibles.

7.1 ACP centrée non réduite


d = 10

Empan2
Empan1


● ● ●

● ● ● ● ●
● ● ● ●
● ● ● ●
● ● ● ● ● ● ● ●
● ● ● ● ● ● ●
● ● ● ●● ● ● ● ●
●● ● ● ● ● ● ● ● ● ● ● ●
● ● ●
● ●●
● ●● ● ●
● ● ● ●●
● ●
● ●



● ● ●
● ● ● ●

● ● ● ● ● ● ● ● ●
● ●● ● ● ● ● ● ● ● ●
● ● ●


●●

●● ● ● ●●
● ● ● ● ● ●
● ● ● ● ●
● ● ● ● ● ● ● ●

● ● ● ●●
● ● ●



Taille ●

Logiciel R version 2.11.1 (2010-05-31) – [Link] – Page 17/18 – Compilé le 2011-10-10


Maintenance : S. Penel, URL : [Link]
A.B. Dufour & J.R. Lobry

7.2 ACP non centrée réduite


d = 0.5
Taille



● ●
● ●● ●●●
● ●●
● ●●●
● ● ●● ●● ●

● ●●●●●●
●●

●●●●●●●
● ●●
●● ● ● ●
●● ● ●● ● ●
●● ●
● ●● ● ●●
●● ●●
● ●●●●●

●● ●●●●●● ● ● ● ●
●●●
● ●●
●● ●● ●●
● ●● ●● ●

●●●● ●● ● ● ●● ●
● ● ●
●●● ●● ●● ●
● ●●● ● ●
● ● ●● ● ● ●
● ●● ●●
● ● ●

Empan1
Empan2

7.3 ACP non centrée non réduite


d = 50

Taille

● ● ●
● ● ● ● ● ●● ● ● ●
●● ●●
●●●
●●●●●

●●●●●●
● ●

●● ● ●● ● ●
●●
●●●
● ● ●●● ● ●
● ●●
● ●
●●
●●●●

●●●
●●
●●
●●

●●●
●●
●●● ●
● ●●●●●
●●
● ●●
● ●●● ●● ●
●●● ● ●
● ●●● ● ●

●●●●●●●● ●●●
●●

Empan1
Empan2

Références
[1] Daniel Adler and Duncan Murdoch. rgl : 3D visualization device system
(OpenGL), 2006. R package version 0.68.

[2] D. Chessel, A.-.B. Dufour, and J. Thioulouse. The ade4 package-I- One-table
methods. R News, 4 :5–10, 2004.
[3] W. N. Venables and B. D. Ripley. Modern Applied Statistics with S. Springer,
New York, fourth edition, 2002.

Logiciel R version 2.11.1 (2010-05-31) – [Link] – Page 18/18 – Compilé le 2011-10-10


Maintenance : S. Penel, URL : [Link]

Vous aimerez peut-être aussi