Correction TD 1 analyse de données Exercice 1:

Transcription

Correction TD 1 analyse de données Exercice 1:
ESA 3
TD1 analyse de données: correction p. 1
Correction TD 1 analyse de données
Exercice 1:
> T <- matrix(c(1,1,2,0,0,2,2,0,0,0,2,2),ncol=3);T
[1,]
[2,]
[3,]
[4,]
[,1] [,2] [,3]
1
0
0
1
2
0
2
2
2
0
0
2
♣ ncol=nombre de colonnes
♣ ; séparateur de commande
♣ c = concatenate
I - 1
> apply(T,2,mean)
[1] 1 1 1
♣ applique la fonction mean
à T suivant les colonnes (2)
> apply(T,2,sd)
[1] 0.82 1.16 1.16
♣ sd (standard deviation) utilise n-1 et non n
pour le calcul.
I - 2
> X<-scale(T)*sqrt(4/3) ♣ scale : centre et réduit mais
> X
la SCE est divisé par n-1 au
[,1] [,2] [,3]
lieu de n d'où la correction
[1,] 0.00
-1
-1
par sqrt(n/n-1)
[2,] 0.00
1
-1
[3,] 1.41
1
1
[4,] -1.41
-1
1
I-3-a
> V<-cor(X) ou >V<-t(X)%*%X/4 ; V
[,1] [,2] [,3]
[1,] 1.00 0.71
0
[2,] 0.71 1.00
0
[3,] 0.00 0.00
1
♣ %*% produit de matrices
I-3-b
C'est la matrice des corrélations du tableau.
I-3-c
On calcule soit la trace de la matrice V soit la somme des variances, ici 3.
I-4-a et c
> eigen(cor(T))
♣ Calculs valeurs et vecteurs propres
$values
[1] 1.7071068 1.0000000 0.2928932
$vectors
[,1] [,2]
[,3]
[1,] 0.7071068
0 0.7071068
[2,] 0.7071068
0 -0.7071068
[3,] 0.0000000
1 0.0000000
I-4-b
La somme des valeurs propres n'est autre que l'inertie totale.
I-5
2
a- La contribution absolue est égale à la valeur propre soit λ1= 2 .
b- Le taux d'inertie est égal au rapport de λ1 par
λ
l'inertie totale 3 : 1 .
3
cd- La meilleure représentation en une dimension (en
2) est la projection sur l'axe associé (les axes) à
la plus forte valeur propre (aux deux plus fortes).
II-1 calcul des composantes principales F
> F<-X%*%vecteurs;F
[,1] [,2]
[,3]
[1,] -0.7071068
-1 0.7071068
[2,] 0.7071068
-1 -0.7071068
[3,] 1.7071068
1 0.2928932
[4,] -1.7071068
1 -0.2928932
II-2 calcul de l'inertie
> inertie <- apply(X^2,1,sum)/4
> inertie
A
B
C
D
[1] 0.5 0.5 1.0 1.0
♣ inertie=(x²+y²+z²)/n
ESA 3
TD1 analyse de données: correction p. 2
II-3 calcul des QLT
> diag(inertie^(-1))%*%F^2/4
[,1] [,2] [,3]
[1,] 0.25 0.50 0.25 ♣ diag : matrice
[2,] 0.25 0.50 0.25
diagonale des
[3,] 0.73 0.25 0.02
inverses des inerties
[4,] 0.73 0.25 0.02
II-4 calcul des CTR
> F^2%*%diag(eigen(V)$values^(-1))/4
[,1] [,2] [,3]
[1,] 0.07 0.25 0.43 ♣ diag(eigen(V)$values^(-1))
[2,] 0.07 0.25 0.43
matrice diagonale avec
[3,] 0.43 0.25 0.07
l'inverse des valeurs propres.
[4,] 0.43 0.25 0.07
III-1 Calcul des coordonnées des variables G
> G<-vecteurs%*%diag(eigen(cor(X))$values^0.5);G
[,1] [,2]
[,3]
[1,] 0.9238795
0 0.3826834
[2,] 0.9238795
0 -0.3826834
[3,] 0.0000000
1 0.0000000
III-2 CTR des variables
>vecteurs%*%G^2%*%diag(eigen(cor(X))$values^(-1)
[,1] [,2] [,3]
[1,] 0.5
0 0.5
[2,] 0.5
0 0.5
[3,] 0.0
1 0.0
III-3
>plot(G[,1],G[,2],main="plan F1 F2")
II-5
> plot(F[,1],F[,2],main="plan F1 F2")
Exercice 2
Individus
♣ plot(x,y) : nuage de points avec x=F1 y=F2
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)
> colnames(T)<-c("math","musi","fran")
> gI<-apply(T,2,mean);gI
math musi fran
6
6
6
ESA 3
I-2
> Y <- scale(T,scale=FALSE)
TD1 analyse de données: correction p. 3
7.545x1 + 7.545x2 - 15.09x3 = 0 donc 7.545[( x2+ x3)/2] + 7.545x2 - 15.09x3=0
♣ seulement centré
> t(Y)
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11]
math
-5
-4
-3
-2
-1
0
1
2
3
4
5
musi
0
-5
-2
-1
-3
-4
3
1
2
4
5
fran
-4
0
-1
-3
-2
-5
2
3
1
4
5
I-3
> V<-t(Y)%*%Y/11
> V
math
musi
fran
math 10.000000 7.545455 7.545455
musi 7.545455 10.000000 7.545455
fran 7.545455 7.545455 10.000000
V représente la matrice de covariance de Y.
L'inertie est égale à la trace de V (10+10+10) ou la
somme des variances.
I-4 (valeurs et vecteurs propres de V)
> eigen(V)
$values
[1] 25.090909 2.454545 2.454545
=> x1 = x2 = x3 et en normant on trouve x=±0.577 (3x²=1)
I-5
a. λ1 = 25.091
b. λ1/trace = 25.091/30 = 83.6 %
II-1
> Y%*%eigen(V)$vectors
(extrait)
math
musi
fran
[1,] -5.196152 -2.449490e+00 -2.828427e+00
[2,] -5.196152 -1.224745e+00 3.535534e+00
II-2 3 COR(i/F1) =
ind1
ind4
658,537 185,010 156,454
857,143
1,834 141,024
II-4 CTR(i/F1) =
N
.k
Gf k ²
k =1
[,1]
[,2]
[,3]
[1,] 0.5773503 0.8164966 0.0000000
[2,] 0.5773503 -0.4082483 -0.7071068
[3,] 0.5773503 -0.4082483 0.7071068
ind1 97.8 ind4 43.5
Indivsup
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
7.545x1 – 15.09x2 + 7.545x3 = 0
p .j Gf i ²
∑p
$vectors
-15.09x1 + 7.545x2 + 7.545x3 = 0
Gf i ²
*1000 [F]²n1/somme marginale ligne [F]²
Gi ²
=> x1=( x2 + x3)/2
III-1
5,19
*1000 donc ([F]n1² * 1/n)/λ1
ESA 3
TD1 analyse de données: correction p. 4
>G<-eigen(V)$vectors%*%diag(eigen(V)$values^(0.5));G
F1
F2
F3
math 2.891995 1.2792043 0.000000
musi 2.891995 -0.6396021 -1.107823
fran 2.891995 -0.6396021 1.107823
> tXX<-cor(X); tXX
[,1] [,2] [,3]
[1,]
1
0
0
[2,]
0
1
-1
[3,]
0
-1
1
Avec les valeurs arrondies, on trouve:
math 2,892 1,271 -0,145
musi 2,892 -0,761 -1,028
fran 2,892 -0,510 1,173
> eigen(tXX)
$values
[1] 2.000000e+00 1.000000e+00 9.860761e-32
$vectors
[,1] [,2]
[,3]
[1,] 0.0000000
1 0.0000000
[2,] 0.7071068
0 0.7071068
[3,] -0.7071068
0 0.7071068
III-2 COR(i/F1) =
Gf i ²
*1000
Gi ²
math 836,333 161,566
2,101
> 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
IV
F1
indsup -4,041
F2
F3
5,193 -1,304
[1,]
[2,]
[3,]
[,1] [,2]
[,3]
0
1 0.000000e+00
1
0 2.220446e-16
-1
0 2.220446e-16
Exercice 3:
1.0
plan F1 F2
0.4 0.6
0.2
0.0
G[, 2]
> X <- scale(T)*sqrt(6/5);X
[,1] [,2] [,3]
[1,] 1.224745
1
-1
[2,] 0.000000
1
-1
[3,] -1.224745
-1
1
[4,] 1.224745
-1
1
[5,] 0.000000
-1
1
[6,] -1.224745
1
-1
0.8
> T<-matrix(c(2,1,0,2,1,0,1,1,0,0,0,1,0,0,1,1,1,0),ncol=3)
-1.0
-0.5
0.0
G[, 1]
0.5
1.0