library(dplyr) 
library(ggplot2) 
library(FactoMineR)
library(explor)

Exemple jouet : Considérons les notes (de 0 à 20) obtenues par 12 élèves dans 4 disciplines (mathématiques, physique, français, anglais).

Un exemple similiaire peut être trouve dans le fichier pdf de la la site web :

http://www.math.univ-toulouse.fr/~besse/Wikistat/pdf/st-l-des-multi

ou également dans la site web wikistat (Contributeurs: Alain Baccini, Philippe Besse et autes).

http://wikistat.fr/

Notes<- matrix(c(6,6,5,5.5,8,8,8,8,6,7,11,9.5,14.5,14.5,15.5,15,14,14,12,12.5,11,
                  10,5.5,7,5.5,7,14,11.5,13,12.5,8.5,9.5,9,9.5,12.5,12,
                  12,11.5,14,12,6,8,8,7,15,16,14,12),nrow=12,byrow=T)
rownames(Notes) <- c("Rémi","Thomas","Gaëtan","Lenny","Louis.E","Louis.H",
                       "Antoine","Raphaël","Jean","Abdou","Matthieu","Sophie")
colnames(Notes) <- c("Math","Phys","Fr","Ang")

Cet exemple jouet est une pure fiction. Toute ressemblance avec des personnages existant ou ayant existé serait fortuite et indépendante de la volonté de l’enseignante …

Notes
##          Math Phys   Fr  Ang
## Rémi      6.0  6.0  5.0  5.5
## Thomas    8.0  8.0  8.0  8.0
## Gaëtan    6.0  7.0 11.0  9.5
## Lenny    14.5 14.5 15.5 15.0
## Louis.E  14.0 14.0 12.0 12.5
## Louis.H  11.0 10.0  5.5  7.0
## Antoine   5.5  7.0 14.0 11.5
## Raphaël  13.0 12.5  8.5  9.5
## Jean      9.0  9.5 12.5 12.0
## Abdou    12.0 11.5 14.0 12.0
## Matthieu  6.0  8.0  8.0  7.0
## Sophie   15.0 16.0 14.0 12.0

Matrice de corrélation :

cor(Notes)
##           Math      Phys        Fr       Ang
## Math 1.0000000 0.9727308 0.4114137 0.6055654
## Phys 0.9727308 1.0000000 0.5222863 0.6738495
## Fr   0.4114137 0.5222863 1.0000000 0.9445221
## Ang  0.6055654 0.6738495 0.9445221 1.0000000

Remarquons que toutes les corrélations linéaires sont positives (ce qui signifie que toutes les variables varient, en moyenne, dans le même sens), certaines étant très fortes(0.97 et 0.94) et d’autres moyennes (0.67 et 0.41).

Matrice de variances-covariance :

La diagonale de la matrice de varances-covariances fournit les variances des 4 variables considérées.

cov.Notes<-11/12*cov(Notes)
cov.Notes
##           Math      Phys        Fr      Ang
## Math 12.375000 10.895833  4.937500 5.770833
## Phys 10.895833 10.138889  5.673611 5.812500
## Fr    4.937500  5.673611 11.638889 8.729167
## Ang   5.770833  5.812500  8.729167 7.338542
sum(diag(cov.Notes))
## [1] 41.49132

La somme des variances des 4 variables initiales (voir la diagonale de la matrice des variances-covariances) vaut 41.49, c’est-à-dire, la dispersion totale des individus considérés vaut 41.49.

Une question naturel se posse. Comment faire une étude simultanée des 4 variables ? Pour répondre ce question il faut faire appele à une méthode d’analyse multivarié : L’analyse en composantes principales (ACP).

L’analyse en composantes principales (ACP ou PCA en anglais)

Introduction à l’ACP (Rappel)

Lorsque les données sont constituées de \(n\) individus décrits par \(p >3\) variables il devient impossible d’effectuer une représentation graphique, comme cela peut être le cas pour \(p=2\) et \(p=3\). L’ACP est une méthode exploratoire (i.e., descriptive) qui permet de décrire un jeu de données multivarié, de le résumer, d’en réduire la dimensionnalité.

Une ACP consiste en la transformation des \(p\) variables originelles, fortement liées entre elles, en nouvelles variables décorrélées les unes des autres. Ces nouvelles variables sont nommées composantes principales (voir les documents de cours pour plus de détails !).

\[C_j = \alpha_{j,1} X_1 + \alpha_{j,2} X_p + \ldots + \alpha_{j,p}X_p \quad j=1,\ldots,p\] Le nuage de points construit à partir des premières composantes contient généralement une information relativement fidèle du nuage de points originel à \(p\) dimensions.

Pour plus de details voir la site : http://factominer.free.fr/classical-methods/index_fr.html

ACP appliqué à l’exemple jouet

Notes.PCA <- PCA(Notes, scale.unit = FALSE,graph=FALSE)

Pourquoi dans la fonction PCA ci-dessous on a considéré l’argument scale.unit = FALSE ?

Taper sur la console de R la comande suivante explor(Notes.PCA). Que peut-on remarquer ?

Utiliser les résultats obtenus pour répondre aux questions suivantes :

  • combien d’axes retiendriez-vous pour l’ACP de ce jeu de données ?

  • quelle est la part d’inertie expliquée par le plan principal ?

  • visualiser les coordonnées des individus dans le plan factoriel

  • commenter les contributions des élèves aux variables principales.

Taper sur la console de R la commande Notes.PCA. On pet remarquer que chaque ligne du tableau ci-dessus correspond à une variable virtuelle (facteurs ou composantes) dont la colonne VAL. PR. (valeur propre) fournit la variance (en fait,chaque valeur propre représente la variance du facteur correspondant).

L’ACP peut être définie comme la recherche des combinaisons linéaires de plus grande variance, des variables initiales (les valeurs propres).

round(Notes.PCA$eig,2)
##        eigenvalue percentage of variance cumulative percentage of variance
## comp 1      31.50                  75.92                             75.92
## comp 2       9.49                  22.86                             98.78
## comp 3       0.39                   0.93                             99.72
## comp 4       0.12                   0.28                            100.00

La somme des 4 valeurs propres obtenues vaut 41.49 (comme on l’a vu précédemment dans la somme de la diagonale de la matrice de covariance).

inertie=Notes.PCA$eig[,2]
barplot(inertie,ylab="% d'inertie",names.arg=round(inertie,2))
title("valeurs propres en %")

Notes.PCA$var$coord
##         Dim.1     Dim.2      Dim.3      Dim.4
## Math 3.109711 -1.620314  0.2084252 -0.1893098
## Phys 2.958512 -1.111935 -0.3389558  0.1865700
## Fr   2.683554  2.088091 -0.2414257 -0.1378911
## Ang  2.423972  1.124136  0.4135945  0.1678104
Notes.PCA$var$cor
##          Dim.1      Dim.2       Dim.3       Dim.4
## Math 0.8839902 -0.4606028  0.05924854 -0.05381464
## Phys 0.9291334 -0.3492080 -0.10645053  0.05859312
## Fr   0.7866012  0.6120596 -0.07076651 -0.04041854
## Ang  0.8947932  0.4149675  0.15267568  0.06194609

Il faut remarquer que le premier facteur est corrélé positivement, et assez fortement, avec chacune des 4 variables initiales : plus un élève obtient de bonnes notes dans chacune des 4 disciplines, plus il a un score élevé sur l’axe. Le deuxième axe corresponds à deux type de profil : les littéraires (corrélations positives) en haut et les scientifiques en bas (corrélations negatives).

Notes.PCA$ind$coord
##               Dim.1        Dim.2       Dim.3        Dim.4
## Rémi     -9.2074308 -1.861117273  0.14504724 -0.133927598
## Thomas   -4.5309014 -0.688953550  0.22317918 -0.132841116
## Gaëtan   -4.0839197  3.305703670 -0.06877213 -0.045174385
## Lenny     9.1061334  1.184506316  0.60224332  0.224566941
## Louis.E   5.8123304 -1.657342237  0.40352309  0.412368582
## Louis.H  -3.4416729 -5.049254014  0.44374695 -0.184907474
## Antoine  -2.0627627  6.332679179 -0.07086136  0.003193134
## Raphaël   1.4984208 -4.057606580  0.24968588  0.087948541
## Jean      0.6930346  2.754284456  0.65353112  0.278743323
## Abdou     4.1267051  1.470895954 -0.01262482 -0.891323810
## Matthieu -6.0709261 -0.001752782 -1.11057190  0.481314549
## Sophie    8.1609894 -1.732043139 -1.45812657 -0.099960687

Représentation des variables et répresentation d’individus

Notes.PCA <- PCA(Notes, scale.unit = FALSE,graph=TRUE)

Circle de corrélation

plot(Notes.PCA,choix="varcor")

Dans la réprésentation d’individus, l’axe 1 capture presque 76% de l’énergie totale. Il correspond, comme on l’a vu précédemment, au niveau global de l’élève. Par exemple, Lenny apparait comme un meilleur élève que Rémi. L’axe 2 capture presque 23% de l’énergie, de sorte que les 2 axes capturent presque 99% de l’énergie. Cet axe correspond à la différence entre littéraire et scientfique. Par exemple, l’élève “le plus haut” sur le graphique, celui qui a la coordonnée la plus élevée sur l’axe 2, est Antoine dont les résultats sont les plus contrastés en faveur des disciplines littéraires (14 et 11.5 contre 7 et 5.5). C’est exactement le contraire pour Louis.H qui obtient la moyenne dans les disciplines scientifiques (11 et 10) mais des résultats très faibles dans les disciplines littéraires (7 et 5.5). On notera que Matthieu et Thomas qui ont un score voisin de 0 sur l’axe 2 car ils ont des résultats très homogènes dans les 4 disciplines.

En regardant le circle de corrélation on voit bien que les deux axes capturent presque toute l’information. Sur le cercle des corrélations (1,2), les principes de lecture sont les suivants :

  • plus une variable possède une qualité de représentation élevée dans l’ACP, plus sa flèche est longue;
  • plus deux variables sont corrélées, plus leurs flèches pointent dans la même direction (dans le cercle de corrélation, le coefficient de corrélation est symbolisé par les angles géométriques entre les flèches);
  • plus une variable est proche d’un axe principal de l’ACP, plus elle est liée à lui. Cette dernière règle permet généralement de donner un sens concret aux axes de l’ACP