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