Introduction

Pour ce TP nous allons utiliser l’ACP afin d’analyser les statistiques des joueurs de ligue 1 (selon Fifa2019). Mais avant cela, et comme lors de notre premier TP, nous allons refaire notre analyse sur les données socio-économiques.

(Ré) Analyse de nos données socio-économiques

Pour récupérer les données c’est par ici.

  1. Commencez par vous approprier les données et faites une brève analyse descriptive.
  2. Pour faire l’ACP nous allons utiliser le package FactoMineR. Vous pouvez l’installer (nécessaire uniquement la première fois) via la commande
install.packages("FactoMineR")

puis il faudra ensuite charger cette librairie (ceci on le fera à chaque fois par contre) via

library(FactoMineR)
  1. Lisez la documentation de la fonction PCA (on pourra ignorer les arguments col.w et row.w car non vu en cours), puis faites une ACP sur le jeu de données.
  2. Représentez graphiquement l’évolution de la variance expliquée en fonction du nombre d’axes factoriels puis dire combien d’axes vous garderiez pour cette analyse.
  3. Tentez d’analyser le 1er plan factoriel.
  4. Lisez l’aide de la fonction dimdesc. Est ce que cela confirme vos conclusions précédentes ? (j’espère que oui)
  5. Lisez l’aide de la fonction plot.PCA et apprenez à ne représenter que les 5 individus les mieux représentés dans le 1er plan factoriel. Faites de mêmes avec les 5 individuant contribuants le plus.
  6. Créez un nouvel individu (votre Syldavie à vous quoi !) ainsi qu’une nouvelle variable et apprenez à utiliser les arguments ind.sup, quali.sup, quanti.sup.
  7. Lisez l’aide de la fonction plotellipses et obtenez de belles ellipses comme vu en cours. Interprétez.
  8. Pour aller plus loin… Je vous ai écrit un petit bout de code qui est mon implémentation en R d’une ACP basique via la SVD. Le code est cependant incomplet, complétez le !
mypca <- function(data){
  n.obs <- nrow(data)
  n.var <- ncol(data)
  data <- scale(data)## on centre et réduit les données
  decomp <- svd(data)
  
  U <- decomp$u
  V <- decomp$v
  D <- diag(decomp$d)
  
  ## Caclul de la proportion de la variance expliquee par axe factoriel
  explained.variance.prop <- 1## a vous de faire !
  
  ## Coordonnees des individus et des variables sur les axes factoriels
  ind.coord <- 1## a vous de faire !
  var.coord <- 1## a vous de faire !
  
  ## Quelques sorties graphiques
  par(mfrow = c(1, 3))
  
  ## Graphique de l'évolution de la variance expliquée
  barplot(100 * explained.variance.prop)
  
  ## Un petit graphique des individus dans le 1er plan factoriel
  xlab <- paste("1er axe (", 100 * round(explained.variance.prop[1], 3), "%)", sep = "")
  ylab <- paste("2ele axe (", 100 * round(explained.variance.prop[2], 3), "%)", sep = "")
  plot(ind.coord[,1:2], xlab = xlab, ylab = ylab, main = "Individus")
  abline(h = 0, lty = 2, col = "grey")
  abline(v = 0, lty = 2, col = "grey")
  
  ## Un petit graphique des variables dans le 1er plan factoriel
  plot(0, xlim = c(-1, 1), ylim = c(-1, 1), xlab = xlab, ylab = ylab, main = "Variables",
       type = "n")
  abline(h = 0, lty = 2, col = "grey")
  abline(v = 0, lty = 2, col = "grey")
  
  ## on trace le cercle unité
  angles <- seq(0, 2 * pi, length = 500)
  lines(cos(angles), sin(angles))
  arrows(rep(0, ncol(data)), rep(0, ncol(data)), var.coord[,1], var.coord[,2])
  text(var.coord[,1], var.coord[,2], colnames(data))
  
  return(list(ind.coord = ind.coord, var.coord = var.coord, explained.variance.prop = explained.variance.prop))
}

Application sur les joueurs de ligue 1

Les données sont disponibles ici. Après avoir fait une analyse descriptive de ces données, vous ferez une analyse en composante principale et commenterez vos résultats.

Bon travail !