TD 2 Exercice 1

1.Saisie de la matrice M

Considérons deux variables \(X1\) et \(X2\) mesurées sur cinq individus de poids uniformes :

M<-data.frame(x1=c(seq(1,4),9),x2=c(5,10,8,8,12))

2.Centrer la matrice (calcul de Z)

Z <- scale(M,center=TRUE,scale=FALSE)
#Conversion en format matrice pour les calculs suivants
Z <- as.matrix(Z)

3.Matrice de var cov(A)

A<-cov(M)

4.Diagonalisation de A

eig<-eigen(A)
#extraction des valeurs propres
valeurs_propres<-eig$values
#extraction des vecteurs propres(matrice V)
vecteurs_propres<-eig$vectors
#pour l'afficher
print("valeurs propres(ordre décroissant):")
## [1] "valeurs propres(ordre décroissant):"
print(valeurs_propres )
## [1] 14.812202  1.687798
print("vecteurs propres(colonnes):")
## [1] "vecteurs propres(colonnes):"
print(vecteurs_propres)
##            [,1]       [,2]
## [1,] -0.7813330  0.6241144
## [2,] -0.6241144 -0.7813330

5.Construction de V et coordonnées factorielles

V<- vecteurs_propres
V
##            [,1]       [,2]
## [1,] -0.7813330  0.6241144
## [2,] -0.6241144 -0.7813330
F<-Z%*%V
F
##            [,1]        [,2]
## [1,]  4.4345442  1.06527832
## [2,]  0.5326392 -2.21727209
## [3,]  0.9995350 -0.03049175
## [4,]  0.2182021  0.59362266
## [5,] -6.1849204  0.58886286
colnames(F) <-c("F1","F2")
rownames(F) <- 1:5 # Numéro des individus

6.Représentation graphique

p_axe1 <-round((valeurs_propres[1]/sum(valeurs_propres)) * 100, 2)
p_axe2 <-round((valeurs_propres[2]/sum(valeurs_propres)) * 100, 2)
plot(F[,1],F[,2], 
     pch=19,col="darkblue",
     xlab="Axe 1",ylab = "Axe 2",
     main="Plan factorieldes individus")
text(F[,1],F[,2],labels=1:5,pos=3,col="red",font =2)
abline(h=0,v=0,lty =2,col="gray")
mtext(paste("Inertie Axe 1:",p_axe1,"%"), side =3,line=-1.5,adj=0.05, col="darkgreen")
mtext(paste("Inertie Axe 2:",p_axe2, "%"), side =3,line=-2.8, adj = 0.05,col="darkred")


7.Pourcentage d’information (Inertie)

inertie_totale<-sum(valeurs_propres)
inertie_axe1<-valeurs_propres[1]
pourcentage<-(inertie_axe1/inertie_totale)*100
#affichage du résultat 
cat(paste("l'inertie totale est de:",round(inertie_totale,2),"\n"))
## l'inertie totale est de: 16.5
cat(paste("la valeur propre de l'axe 1 est :",round(inertie_axe1,2),"\n"))
## la valeur propre de l'axe 1 est : 14.81
cat(paste("le pourcentage d'information exprimé par la 1ère composante est de :",round(pourcentage ,2),"%"))
## le pourcentage d'information exprimé par la 1ère composante est de : 89.77 %