0% ont trouvé ce document utile (0 vote)
384 vues4 pages

Correction TD 1

Le document présente la correction d'un TD sur l'analyse de données. Il contient des explications sur le calcul de matrices de corrélation et de covariance, de valeurs et vecteurs propres, de composantes principales et d'inertie. Des exercices sont résolus en exemple.

Transféré par

SAFO
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)
384 vues4 pages

Correction TD 1

Le document présente la correction d'un TD sur l'analyse de données. Il contient des explications sur le calcul de matrices de corrélation et de covariance, de valeurs et vecteurs propres, de composantes principales et d'inertie. Des exercices sont résolus en exemple.

Transféré par

SAFO
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

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