Vous êtes sur la page 1sur 4

ESA 3 TD1 analyse de données: correction p.

1
Correction TD 1 analyse de données I-3-c
On calcule soit la trace de la matrice V soit la somme des variances, ici 3.
Exercice 1: I-4-a et c
> T <- matrix(c(1,1,2,0,0,2,2,0,0,0,2,2),ncol=3);T > eigen(cor(T)) ♣ Calculs valeurs et vecteurs propres
$values
[,1] [,2] [,3] [1] 1.7071068 1.0000000 0.2928932
[1,] 1 0 0 ♣ ncol=nombre de colonnes
[2,] 1 2 0 ♣ ; séparateur de commande $vectors
[3,] 2 2 2 ♣ c = concatenate [,1] [,2] [,3]
[4,] 0 0 2 [1,] 0.7071068 0 0.7071068
[2,] 0.7071068 0 -0.7071068
I - 1 [3,] 0.0000000 1 0.0000000
> apply(T,2,mean) ♣ applique la fonction mean
[1] 1 1 1 à T suivant les colonnes (2) I-4-b
La somme des valeurs propres n'est autre que l'inertie totale.
> apply(T,2,sd) ♣ sd (standard deviation) utilise n-1 et non n
[1] 0.82 1.16 1.16 pour le calcul. I-5
2
a- La contribution absolue est égale à la valeur propre soit λ1= 2 .
I - 2 b- Le taux d'inertie est égal au rapport de λ1 par
> X<-scale(T)*sqrt(4/3) ♣ scale : centre et réduit mais λ
> X la SCE est divisé par n-1 au
l'inertie totale 3 : 1 .
3
[,1] [,2] [,3] lieu de n d'où la correction cd- La meilleure représentation en une dimension (en
[1,] 0.00 -1 -1 par sqrt(n/n-1)
2) est la projection sur l'axe associé (les axes) à
[2,] 0.00 1 -1
[3,] 1.41 1 1
la plus forte valeur propre (aux deux plus fortes).
[4,] -1.41 -1 1
II-1 calcul des composantes principales F
> F<-X%*%vecteurs;F
I-3-a [,1] [,2] [,3]
> V<-cor(X) ou >V<-t(X)%*%X/4 ; V [1,] -0.7071068 -1 0.7071068
[2,] 0.7071068 -1 -0.7071068
[,1] [,2] [,3] ♣ %*% produit de matrices [3,] 1.7071068 1 0.2928932
[1,] 1.00 0.71 0 [4,] -1.7071068 1 -0.2928932
[2,] 0.71 1.00 0
[3,] 0.00 0.00 1 II-2 calcul de l'inertie
> inertie <- apply(X^2,1,sum)/4
I-3-b > inertie
C'est la matrice des corrélations du tableau. A B C D ♣ inertie=(x²+y²+z²)/n
[1] 0.5 0.5 1.0 1.0
ESA 3 TD1 analyse de données: correction p. 2
II-3 calcul des QLT III-1 Calcul des coordonnées des variables G
> G<-vecteurs%*%diag(eigen(cor(X))$values^0.5);G
> diag(inertie^(-1))%*%F^2/4 [,1] [,2] [,3]
[,1] [,2] [,3] [1,] 0.9238795 0 0.3826834
[1,] 0.25 0.50 0.25 ♣ diag : matrice [2,] 0.9238795 0 -0.3826834
[2,] 0.25 0.50 0.25 diagonale des [3,] 0.0000000 1 0.0000000
[3,] 0.73 0.25 0.02 inverses des inerties
[4,] 0.73 0.25 0.02 III-2 CTR des variables
>vecteurs%*%G^2%*%diag(eigen(cor(X))$values^(-1)
II-4 calcul des CTR [,1] [,2] [,3]
[1,] 0.5 0 0.5
> F^2%*%diag(eigen(V)$values^(-1))/4 [2,] 0.5 0 0.5
[,1] [,2] [,3] [3,] 0.0 1 0.0
[1,] 0.07 0.25 0.43 ♣ diag(eigen(V)$values^(-1))
[2,] 0.07 0.25 0.43 matrice diagonale avec III-3
[3,] 0.43 0.25 0.07 l'inverse des valeurs propres. >plot(G[,1],G[,2],main="plan F1 F2")
[4,] 0.43 0.25 0.07

II-5
> plot(F[,1],F[,2],main="plan F1 F2")

Exercice 2
I-1
> T <-matrix(c(1,2,3,4,5,6,7,8,9,10,11,6,1,4,5,3,2,
9,7,8,10,11,2,6,5,3,4,1,8,9,7,10,11),ncol=3)
Individus > colnames(T)<-c("math","musi","fran")
> gI<-apply(T,2,mean);gI
♣ plot(x,y) : nuage de points avec x=F1 y=F2 math musi fran
6 6 6
ESA 3 TD1 analyse de données: correction p. 3
I-2 7.545x1 + 7.545x2 - 15.09x3 = 0 donc 7.545[( x2+ x3)/2] + 7.545x2 - 15.09x3=0
> Y <- scale(T,scale=FALSE) ♣ seulement centré
> t(Y) => x1 = x2 = x3 et en normant on trouve x=±0.577 (3x²=1)
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11]
math -5 -4 -3 -2 -1 0 1 2 3 4 5
I-5
musi 0 -5 -2 -1 -3 -4 3 1 2 4 5 a. λ1 = 25.091
fran -4 0 -1 -3 -2 -5 2 3 1 4 5 b. λ1/trace = 25.091/30 = 83.6 %
I-3 II-1
> V<-t(Y)%*%Y/11 > Y%*%eigen(V)$vectors (extrait)
> V math musi fran
math musi fran [1,] -5.196152 -2.449490e+00 -2.828427e+00
math 10.000000 7.545455 7.545455 [2,] -5.196152 -1.224745e+00 3.535534e+00
musi 7.545455 10.000000 7.545455
fran 7.545455 7.545455 10.000000 Gf i ²
V représente la matrice de covariance de Y. II-2 3 COR(i/F1) = *1000 [F]²n1/somme marginale ligne [F]²
L'inertie est égale à la trace de V (10+10+10) ou la Gi ²
somme des variances. ind1 658,537 185,010 156,454
ind4 857,143 1,834 141,024
I-4 (valeurs et vecteurs propres de V)
> eigen(V)
$values p .j Gf i ²
II-4 CTR(i/F1) = *1000 donc ([F]n1² * 1/n)/λ1
[1] 25.090909 2.454545 2.454545 N

∑p
k =1
.k Gf k ²
$vectors
[,1] [,2] [,3] ind1 97.8 ind4 43.5
[1,] 0.5773503 0.8164966 0.0000000
[2,] 0.5773503 -0.4082483 -0.7071068
Indivsup
[3,] 0.5773503 -0.4082483 0.7071068 5,19

Recherche manuelle de u1 :
10x1 + 7.545x2 + 7.545x3 = λ x1 recherche des espaces propres
7.545x1 + 10x2 + 7.545x3 = λx2 f(U) = λ.U
-4,04
7.545x1 + 7.545x2 + 10x3 = λx3
pour λ = 25.091
-15.09x1 + 7.545x2 + 7.545x3 = 0 => x1=( x2 + x3)/2
7.545x1 – 15.09x2 + 7.545x3 = 0 III-1
ESA 3 TD1 analyse de données: correction p. 4
>G<-eigen(V)$vectors%*%diag(eigen(V)$values^(0.5));G > tXX<-cor(X); tXX
F1 F2 F3 [,1] [,2] [,3]
math 2.891995 1.2792043 0.000000 [1,] 1 0 0
musi 2.891995 -0.6396021 -1.107823 [2,] 0 1 -1
fran 2.891995 -0.6396021 1.107823 [3,] 0 -1 1

Avec les valeurs arrondies, on trouve: > eigen(tXX)


math 2,892 1,271 -0,145 $values
musi 2,892 -0,761 -1,028 [1] 2.000000e+00 1.000000e+00 9.860761e-32
fran 2,892 -0,510 1,173
$vectors
[,1] [,2] [,3]
Gf i ²
III-2 COR(i/F1) = *1000 [1,] 0.0000000 1 0.0000000
Gi ² [2,] 0.7071068 0 0.7071068
math 836,333 161,566 2,101 [3,] -0.7071068 0 0.7071068

> F <- X%*%eigen(tXX)$vectors ; F


[,1] [,2] [,3]
[1,] 1.414214 1.224745 0
[2,] 1.414214 0.000000 0
[3,] -1.414214 -1.224745 0
[4,] -1.414214 1.224745 0
[5,] -1.414214 0.000000 0
[6,] 1.414214 -1.224745 0

> G <- eigen(tXX)$vectors%*%diag(eigen(cor(X))$values^0.5);G


[,1] [,2] [,3]
IV F1 F2 F3 [1,] 0 1 0.000000e+00
indsup -4,041 5,193 -1,304 [2,] 1 0 2.220446e-16
[3,] -1 0 2.220446e-16

Exercice 3: plan F1 F2

1.0
> T<-matrix(c(2,1,0,2,1,0,1,1,0,0,0,1,0,0,1,1,1,0),ncol=3)

0.8
0.4 0.6
> X <- scale(T)*sqrt(6/5);X

G[, 2]
[,1] [,2] [,3]
[1,] 1.224745 1 -1

0.2
[2,] 0.000000 1 -1

0.0
[3,] -1.224745 -1 1
-1.0 -0.5 0.0 0.5 1.0
[4,] 1.224745 -1 1
[5,] 0.000000 -1 1 G[, 1]

[6,] -1.224745 1 -1

Vous aimerez peut-être aussi