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

Les données

Nous traitons le jeu de données décathlon du package . Ces données contient les performances réalisées par 41 athlètes lors de deux compétitions (Jeux Olympiques de 2004 ou Décastar 2004). Nous disposons de 13 variables : 12 de type quantitatives continues et une de type qualitative. Plus précisement :

Source : http://factominer.free.fr/classical-methods/analyse-en-composantes-principales.html

data(decathlon)
colnames(decathlon)
##  [1] "100m"        "Long.jump"   "Shot.put"    "High.jump"   "400m"       
##  [6] "110m.hurdle" "Discus"      "Pole.vault"  "Javeline"    "1500m"      
## [11] "Rank"        "Points"      "Competition"
glimpse(decathlon)
## Observations: 41
## Variables: 13
## $ `100m`        <dbl> 11.04, 10.76, 11.02, 11.02, 11.34, 11.11, 11.13,...
## $ Long.jump     <dbl> 7.58, 7.40, 7.30, 7.23, 7.09, 7.60, 7.30, 7.31, ...
## $ Shot.put      <dbl> 14.83, 14.26, 14.77, 14.25, 15.19, 14.31, 13.48,...
## $ High.jump     <dbl> 2.07, 1.86, 2.04, 1.92, 2.10, 1.98, 2.01, 2.13, ...
## $ `400m`        <dbl> 49.81, 49.37, 48.37, 48.93, 50.42, 48.68, 48.62,...
## $ `110m.hurdle` <dbl> 14.69, 14.05, 14.09, 14.99, 15.31, 14.23, 14.17,...
## $ Discus        <dbl> 43.75, 50.72, 48.95, 40.87, 46.26, 41.10, 45.67,...
## $ Pole.vault    <dbl> 5.02, 4.92, 4.92, 5.32, 4.72, 4.92, 4.42, 4.42, ...
## $ Javeline      <dbl> 63.19, 60.15, 50.31, 62.77, 63.44, 51.77, 55.37,...
## $ `1500m`       <dbl> 291.70, 301.50, 300.20, 280.10, 276.40, 278.10, ...
## $ Rank          <int> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 1, 2,...
## $ Points        <int> 8217, 8122, 8099, 8067, 8036, 8030, 8004, 7995, ...
## $ Competition   <fctr> Decastar, Decastar, Decastar, Decastar, Decasta...

Nous povons éventuellement calculer la matrice de corrélation des variables initiales à laide de la commande cor(decathlon[,1:12]). Visualiser la matrice de correlation. Identifier rapidement quelques paires de variables fortement corrélées, et quelques paires de variables quasiment décorrélées.

l’ACP

Nous pouvons directament faire l’ACP à l’aide de la focntion PCA. Les arguments de cette fonction sont les suivans :

Réaliser l’ACP sur tous les individus avec les dix premières variables actives. Pourquoi dans la fonction PCA ci-dessous on a considéré l’argument scale.unit = FALSE ?

res.pca=PCA(decathlon[,1:10], scale.unit=TRUE, ncp=2, graph=F)

Afficher les valeurs propres qui permermettent de donner les contributions des axes factoriels. Egalement, affichos les variances en porcentage et les varances cumulées. Vous pouvez utiliser les comandes classiques de la librarie FactoMineR ou la fonction explor() de la librarie explor. A vous de jouer !

round(res.pca$eig,2)
##         eigenvalue percentage of variance
## comp 1        3.27                  32.72
## comp 2        1.74                  17.37
## comp 3        1.40                  14.05
## comp 4        1.06                  10.57
## comp 5        0.68                   6.85
## comp 6        0.60                   5.99
## comp 7        0.45                   4.51
## comp 8        0.40                   3.97
## comp 9        0.21                   2.15
## comp 10       0.18                   1.82
##         cumulative percentage of variance
## comp 1                              32.72
## comp 2                              50.09
## comp 3                              64.14
## comp 4                              74.71
## comp 5                              81.56
## comp 6                              87.55
## comp 7                              92.06
## comp 8                              96.03
## comp 9                              98.18
## comp 10                            100.00

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

inertie=res.pca$eig[,2]
barplot(inertie,ylab="% d'inertie",names.arg=round(inertie,2))
title("valeurs propres (inerties ou variances de chaque composante) en %")

Visualiser les coordonnées des individus dans le plan factoriel à l’aide de la commande res.pca\(ind\)coord[,1:2]

Tracer les grafiques de la fonction PCA. Que peut-on en conclure ? Utiliser les résultats obtenus pour répondre aux questions suivantes :

res.pca=PCA(decathlon[,1:10], scale.unit=TRUE, ncp=2, graph=T)

Commentaires :

La variable “100m” est négativement corrélée à la variable “long.jump”. Quand un ahtlète réalise un temps faible au 100m, il peut sauter loin. Il faut faire attention ici qu’une petite valeur pour les variables “100m”, “400m”, “110m.hurdle” et “1500m” correspond à un score élevé : plus un athlète court rapidement, plus il gagne de points.

Le premier axe oppose les athlètes qui sont “bons partout” comme Karpov pendant les Jeux Olympiques à ceux qui sont “mauvais partout” comme Bourguignon pendant le Décastar. Cette dimension est particulièrement liée aux variables de vitesse et de saut en longueur qui constituent un groupe homogène.

Le deuxième axe oppse les athlètes qui sont forts (variables “Discus” et “Shot.put”) à ceuw qui ne le sont pas. Les variables “Discus”, “Shot.put” et “High.jump” ne sont pas très corrélées aux variables “100m”, “400m”, “110m.hurdle” et “Long.jump”. Cela signifie que force et vitesse ne sont pas très corrélées.

On peut diviser le premier plan factoriel en quatre parties : les athlètes rapides et puissants (comme Sebrle), les athlètes lents (comme Casarsa), les athlètes rapides mais faibles (comme Warners) et les ahtlètes ni forts ni rapides, relativement parlant (comme Lorenzo).