• Aucun résultat trouvé

1Deuxvariablescentr´ees Tabledesmati`eres ————— tdr24—————Axesprincipaux

N/A
N/A
Protected

Academic year: 2021

Partager "1Deuxvariablescentr´ees Tabledesmati`eres ————— tdr24—————Axesprincipaux"

Copied!
16
0
0

Texte intégral

(1)

Axes principaux

D. Chessel, A.B. Dufour & J.R. Lobry

—————

Approches de la d´efinition en dimensions r´eduite

Table des mati`

eres

1 Deux variables centr´ees 1

2 Donn´ees triangulaires 6

3 Les axes principaux d’une loi normale 9

4 Variables non centr´ees 11

5 Mode Q et R 12

6 Valeurs propres doubles 14

6.1 Impr´ecision des calculs num´eriques . . . 14 6.2 Certificat d’´etudes . . . 15

7 Exercices 15

1

Deux variables centr´

ees

On utilise la fonction mvrnorm() de la biblioth`eque MASS, consulter sa docu-mentation ( ?mvrnorm) :

mvrnorm package:MASS R Documentation

Simulate from a Multivariate Normal Distribution Description:

Produces one or more samples from the specified multivariate normal distribution.

(2)

names(w) <- c("x", "y")

Repr´esenter le nuage de points et sa moyenne :

plot(w, las = 1)

points(mean(w$x), mean(w$y), pch = 20, cex = 2)

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● −3 −2 −1 0 1 2 3 −2 −1 0 1 2 x y ●

Repr´esenter la droite de r´egression de y/x et son principe :

plot(w, las = 1)

points(mean(w$x), mean(w$y), pch = 20, cex = 2) abline(lm(w$y ~ w$x))

(3)

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● −3 −2 −1 0 1 2 3 −2 −1 0 1 2 x y ●

Repr´esenter la droite de r´egression de x/y et son principe :

plot(w, las = 1)

points(mean(w$x), mean(w$y), pch = 20, cex = 2) a0 <- coefficients(lm(w$x ~ w$y))

abline(-a0[1]/a0[2], 1/a0[2])

(4)

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● −3 −2 −1 0 1 2 3 −2 −1 0 1 2 x y ●

Repr´esenter l’axe principal et son principe :

plot(w, asp = 1)

points(mean(w$x), mean(w$y), pch = 20, cex = 2) cov <- var(w)

u <- eigen(cov, sym = T)$vectors[, 1] p <- u[2]/u[1]

abline(c(mean(w$y) - p * mean(w$x), p))

scal <- (w$x - mean(w$x)) * u[1] + (w$y - mean(w$y)) * u[2] abline(c(mean(w$y) - p * mean(w$x), p))

(5)

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● −3 −2 −1 0 1 2 3 −2 −1 0 1 2 x y ●

On a repr´esent´e l’axe principal dans la base canonique. Repr´esenter la base canonique dans la base des axes principaux :

library(ade4)

pca1 <- dudi.pca(w, scal = FALSE, scann = FALSE, nf = 2) plot(pca1$li, asp = 1, las = 1)

abline(h = 0) abline(v = 0)

(6)

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● −3 −2 −1 0 1 2 3 4 −3 −2 −1 0 1 2 3 Axis1 Axis2 x y

Source : Pearson, K. (1901) On lines and planes of closest fit to systems of points in space. Philosophical Magazine, 2 :559-572. http://pbil.univ-lyon1. fr/R/pearson1901.pdf

2

Donn´

ees triangulaires

locus <- read.table("http://pbil.univ-lyon1.fr/R/donnees/locus.txt", header = TRUE, row.names = 1)

locus[1:5, ] L90 L98 L100 1 1.7 15.0 83.3 2 8.3 21.6 70.1 3 10.7 17.9 71.4 4 6.7 20.0 73.3 5 10.3 19.0 70.7

Polymorphisme enzymatique du locus PGM-2* dans 27 ´echantillons de pois-sons Leuciscus cephalus. Chaque ´echantillon compte en moyenne 30 individus soit 60 g`enes. Le locus compte 3 all`eles et le tableau donne les fr´equences all´ e-liques dans chaque ´echantillon. Voir tdr71.

Source : Guinand, B., Y. Bouvet, and B. Brohon. 1996. Spatial aspects of genetic differentiation of the European chub in the Rhone River basin. Journal of Fish Biology, 49 :714-726.

(7)

0 1

L90

0.8 0

L98

0.80.2

L100

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

pca2 <- dudi.pca(locus, scal = FALSE, scann = FALSE, nf = 2) plot(pca2$li, asp = 1)

abline(h = 0) abline(v = 0)

(8)

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● −60 −40 −20 0 20 −40 −20 0 20 40 Axis1 Axis2 L90 L98 L100 plot(princomp(locus))

Comp.1 Comp.2 Comp.3

princomp(locus) Variances 0 200 400 600 800 biplot(princomp(locus))

(9)

−0.4 −0.2 0.0 0.2 0.4 −0.4 −0.2 0.0 0.2 0.4 Comp.1 Comp.2 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1617 18 19 20 21 22 23 24 25 26 27 −100 −50 0 50 100 −100 −50 0 50 100 L90 L98 L100 ` A discuter.

3

Les axes principaux d’une loi normale

Repr´esenter un ´echantillon et la densit´e de probabilit´e binormale par courbes de niveaux :

library(mvtnorm)

echa <- mvrnorm(100, mu = c(0, 0), Sigma = matrix(c(1, 0.7, 0.7, 1), 2, 2))

echa <- as.data.frame(echa) names(echa) <- c("x", "y") xg <- seq(-3, 3, le = 20) yg <- seq(-3, 3, le = 20)

xyg <- expand.grid(x = xg, y = yg) xyg[1:5, ] x y 1 -3.000000 -3 2 -2.684211 -3 3 -2.368421 -3 4 -2.052632 -3 5 -1.736842 -3

z <- dmvnorm(xyg, me = c(0, 0), sigma = matrix(c(1, 0.7, 0.7, 1), 2, 2)) z <- matrix(z, nrow = 20) contour(xg, yg, z) points(echa$x, echa$y, pch = 18) abline(v = 0) abline(h = 0) abline(0, 1) abline(0, -1)

(10)

−3 −2 −1 0 1 2 3 −3 −2 −1 0 1 2 3

Repr´esenter la densit´e de probabilit´e binormale en perspective :

persp(xg, yg, z, theta = 0, phi = 70, expand = 0.5, ltheta = 120, shade = 0.75)

xg

yg

(11)

On a cr´e´e un ´echantillon al´eatoire simple d’une loi normale multivari´ee de moyenne (0,0) et de matrice de variances-covariances :

C =  1 0.7 0.7 1  La densit´e s’´ecrit : g(x, y) = 1 p2π2det(C)e −1 2 h x y i C−1 2 4 x y 3 5

old.par <- par(no.readonly = TRUE) par(mfrow = c(1, 2))

plot(echa$x, echa$y, xlim = c(-3, 3), ylim = c(-3, 3), type = "n", las = 1, main = "La population")

contour(xg, yg, z, add = TRUE) arrows(0, 0, 1/sqrt(2), 1/sqrt(2)) arrows(0, 0, -1/sqrt(2), 1/sqrt(2)) pca0 <- prcomp(echa)

plot(echa, xlim = c(-3, 3), ylim = c(-3, 3), las = 1, main = "L'echantillon") moy <- apply(echa, 2, mean)

arrows(moy[1], moy[2], moy[1] + pca0$rotation[1, 1], moy[1] + pca0$rotation[2, 1])

arrows(moy[1], moy[2], moy[1] + pca0$rotation[1, 2], moy[1] + pca0$rotation[2, 2]) par(old.par) −3 −2 −1 0 1 2 3 −3 −2 −1 0 1 2 3 La population echa$x echa$y ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● −3 −2 −1 0 1 2 3 −3 −2 −1 0 1 2 3 L'echantillon x y

4

Variables non centr´

ees

Reprendre le tableau tortues et extraire longueur et largeur des mˆales :

tortues <- read.table("http://pbil.univ-lyon1.fr/R/donnees/tortues.txt", header = TRUE)

(12)

p <- u[2]/u[1] abline(0, p)

segments(w[, 1], w[, 2], as.matrix(w) %*% u * u[1], as.matrix(w) %*% u * u[2]) ● ● ● ●● ● ●● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● 100 110 120 130 80 90 100 long larg

5

Mode Q et R

On consid`ere un tableau comportant 10 lignes et 3 colonnes consignant l’avis fourni par 10 consommateurs sur la qualit´e de 3 objets `a l’aide du code -1 (avis d´efavorable) 0 (sans opinion) et +1 (avis favorable). Les 3 objets sont not´es A, B, C et les 10 personnes interrog´ees sont num´erot´ees de 1 `a 10.

rq <- matrix(c(-1, -1, -1, -1, 0, 1, -1, 0, 0, 1, 1, 1, 0, 0, 1, -1, -1, 0, 0, 0, 0, 0, 1, 1, -1, 0, 1, -1, 1, 1), 10, 3, byrow = TRUE) rq <- as.data.frame(rq) names(rq) <- LETTERS[1:3] rq A B C 1 -1 -1 -1 2 -1 0 1 3 -1 0 0 4 1 1 1 5 0 0 1 6 -1 -1 0 7 0 0 0 8 0 1 1 9 -1 0 1 10 -1 1 1

Repr´esenter la projection du nuage de 10 points de R3 centr´e par colonnes

sur ses deux premiers axes principaux et la projection de la base canonique sur ce mˆeme plan : a <- apply(rq, 2, mean) rq1 <- sweep(rq, 2, a) rq1 A B C 1 -0.5 -1.1 -1.5 2 -0.5 -0.1 0.5 3 -0.5 -0.1 -0.5 4 1.5 0.9 0.5 5 0.5 -0.1 0.5 6 -0.5 -1.1 -0.5

(13)

7 0.5 -0.1 -0.5

8 0.5 0.9 0.5

9 -0.5 -0.1 0.5

10 -0.5 0.9 0.5

as.character.data.frame <- function(df) {

f <- function(x) unlist(paste(x, sep = "", collapse = "")) apply(df, 1, f)

}

s.label(dudi.pca(rq1, cent = F, scal = F, scan = F)$li, lab = as.character.data.frame(rq)) s.arrow(dudi.pca(rq1, cent = F, scal = F, scan = F)$c1, add.plot = T)

d = 1 −1−1−1 −101 −100 111 001 −1−10 000 011 −101 −111 A B C

Repr´esenter la projection du nuage de 10 points de R3centr´e par lignes sur ses deux premiers axes principaux et la projection de la base canonique sur ce mˆeme plan : b <- apply(rq, 1, mean) rq2 <- sweep(rq, 1, b) rq2 A B C 1 0.0000000 0.0000000 0.0000000 2 -1.0000000 0.0000000 1.0000000 3 -0.6666667 0.3333333 0.3333333 4 0.0000000 0.0000000 0.0000000 5 -0.3333333 -0.3333333 0.6666667 6 -0.3333333 -0.3333333 0.6666667 7 0.0000000 0.0000000 0.0000000 8 -0.6666667 0.3333333 0.3333333 9 -1.0000000 0.0000000 1.0000000 10 -1.3333333 0.6666667 0.6666667

s.label(dudi.pca(rq2, cent = F, scal = F, scan = F)$li, lab = as.character.data.frame(rq), xlim = c(-2, 2))

(14)

−1−1−1 −101 −100 111 001 −1−10 000 011 −101 −111 A B C

D´etailler les calculs et donner un sens `a ces deux figures. Expliquer ce r´esultat :

eigen(as.matrix(rq2) %*% t(as.matrix(rq2))/2)$values

[1] 4.097168e+00 5.694991e-01 9.033683e-17 3.800998e-17 8.426918e-19

[6] 0.000000e+00 -8.223493e-33 -2.446522e-32 -1.465512e-16 -1.944285e-16

eigen(t(as.matrix(rq2)) %*% as.matrix(rq2)/2)$values

[1] 4.097168e+00 5.694991e-01 -8.090263e-17

eigen(cov(t(rq)))$values

[1] 4.097168e+00 5.694991e-01 1.771070e-16 1.517250e-17 2.435008e-19

[6] 0.000000e+00 -2.054311e-32 -2.854187e-32 -1.584636e-16 -3.669611e-16

eigen(as.matrix(rq1) %*% t(as.matrix(rq1))/9)$values

[1] 1.084503e+00 3.458286e-01 1.141131e-01 2.178898e-16 5.738041e-17

[6] 3.030906e-17 7.048226e-18 3.102043e-18 -5.382376e-18 -8.633484e-18

eigen(t(as.matrix(rq1)) %*% as.matrix(rq1)/9)$values

[1] 1.0845028 0.3458286 0.1141131

eigen(cov(rq))$values

[1] 1.0845028 0.3458286 0.1141131

6

Valeurs propres doubles

Voir1.

6.1

Impr´

ecision des calculs num´

eriques

Diagonaliser les matrices de type :

R =   1 a a a 1 a a a 1   a <- 0.8 R <- matrix(c(1, a, a, a, 1, a, a, a, 1), 3, 3) R

1Cehessat, R. (1976) Exercices comment´es de Statistique et Informatique Appliqu´ee.

(15)

[,1] [,2] [,3]

[1,] 1.0 0.8 0.8

[2,] 0.8 1.0 0.8

[3,] 0.8 0.8 1.0

b <- eigen(R, sym = TRUE)$values b[2] == b[3] [1] FALSE b [1] 2.6 0.2 0.2 print(b, dig = 20) [1] 2.6000000000000001 0.2000000000000011 0.2000000000000001 En informatique les valeurs propres multiples n’existent pas !

6.2

Certificat d’´

etudes

1 2 3 4 5 6 7 8 9 10 11

Maths 1 2 3 4 5 6 7 8 9 10 11

Musique 6 1 4 5 3 2 9 7 8 10 11

Sanscrit 2 6 5 3 4 1 8 9 7 10 11

Tab. 1 – Classement au certificat d’´etudes

1 2 3 4 5 6 7 8 9 10 11

Natation 3 4 5 6 7 8 9 10 11 1 2

Tab. 2 – R´esultats pour la natation

1. On dispose (table 1) du classement de 11 individus pour trois mati`eres du certificat d’´etudes (nouveau programme). Effectuer l’ACP norm´ee du tableau 11 individus - 3 variables. La base des axes principaux est-elle unique ? Tracer le graphe canonique.

2. Un auditeur libre a eu des notes qui lui auraient donn´e les rangs 8 en maths, 2 en musique et 1 en sanscrit. Le situer par rapport `a l’ensemble des individus.

3. Le lendemain, on dispose des classements des mˆemes candidats en nata-tion (table 2). Posinata-tionner le point natanata-tion sur la premi`ere composante principale. Aurait-on obtenu le mˆeme r´esultat en analysant un tableau 11 individus - 4 variables ?

7

Exercices

1. A = (1, 0), B = ( √ 3 2 , 1

2), C = (0, 1) sont trois points du plan et a, b et c

sont leur projection sur un vecteur unitaire du plan (m´etrique canonique). Trouver le vecteur qui maximise :

(16)

a, · · · , e les projections orthogonales des 5 points initiaux sur ∆. Quelle est la droite ∆ qui minimise la quantit´e f (∆) = Oa2+Ob2+Oc2+Od2+Oe2? Quel est le maximum atteint ? Quelle est la droite ∆ qui minimise la quantit´e f (∆) ? Quel est le minimum atteint ?

3. Calculer et dessiner le premier axe principal du nuage de 8 points de R2

d´efini par : 

2 5 8 3 −2 −5 −8 −3

−4 0 4 4 4 0 −4 −4



4. On consid`ere les 9 points de R2 de coordonn´ees :   M1 M2 M3 M4 M5 M6 M7 M8 M9 −4 −3 −2 −1 0 1 2 3 4 −3 −4 −1 −2 0 4 3 2 1  

Soit O l’origine du plan, u un vecteur unitaire, mi la projection

ortho-gonale de Mi sur u, h(u) la somme des carr´es des longueurs de Omi.

Le vecteur qui maximise h(u) est-il port´e par la premi`ere bissectrice ? La valeur maximale atteinte est-elle 118 ?

5. Soient les deux variable `a 6 valeurs x = (0, 1, 0, 1, 1, 0) et y = (0, 1, 1, 0, 1, 0). Calculer moyennes, variances et covariances. Dessiner le nuage centr´e et placer les deux droites de r´egression et les deux axes principaux.

6. On consid`ere les 10 points Mi de coordonn´ees :

  i 1 2 3 4 5 6 7 8 9 10 xi −2 −1 0 1 2 −2 −1 0 1 2 yi 1 1 1 1 1 −1 −1 −1 −1 −1  

Caculer m(x), m(y), v(x), v(y) et c(x, y). Calculer les deux droites de r´egression et l’axe principal. Tracer le nuage et ses droites caract´eristiques. 7. On consid`ere les 10 points Pi de coordonn´ees :

zi= xicos α + yisin α

ti= xisin α − yicos α

Caculer m(z), m(t), v(z), v(t) et c(z, t) pour α quelconque. Tracer les nou-veaux nuages et ses trois droites caract´eristiques pour α = 60◦. Montrer que, en g´en´eral, l’axe principal est conserv´e par rotation du nuage.

Figure

Tab. 1 – Classement au certificat d’´ etudes

Références

Documents relatifs

1 On sait que les points A, M, B d’une part et les points A, N, C d’autre part sont alignés dans cet ordre.. On veut montrer que les droites (MN) et (BC)

1  On sait que les points A, M, B d’une part et les points A, N, C d’autre part sont alignés dans cet ordre.. On veut montrer que les droites (MN) et (BC)

Cela contredit le théorème de Thalès, donc (RS) et (ME) ne sont pas parallèles.. 1 On sait que les points O, M, N sont alignés ainsi que les points O, V, S dans

1  On sait que les points O, M, N sont alignés ainsi que les points O, V, S dans cet

On veut montrer que les droites (IL) et (RE) sont

10  Sur la figure suivante, les droites (CE) et (DF) sont parallèles. Démontre que la traverse [MN] est bien parallèle

Cela contredit le théorème de Thalès donc (RS) et (ME) ne sont pas parallèles. 1 On sait que les points A, M, B d'une part et les points A, N, C d'autre part

Cela contredit le théorème de Thalès donc (RS) et (ME) ne sont pas parallèles. 1 On sait que les points A, M, B d'une part et les points A, N, C d'autre part