Présentation des données

Nous étudions les résultats des élections présidentielles 2017 par département. Ces données sont librement téléchargeables sur le site http://data.gouv.fr/fr/posts/les-donnees-des-elections/.

Le fichier original représente les communes en ligne et les candidats, pourcentage d’exprimés, d’abstentions, de votes nuls en colonnes. Télécharger le fichier de données Presidentielle_2017_Resultats_Communes_T1_clean.csv. Le script R TP3_ADD_debut.R vous donne les premières lignes de commandes pour obtenir le tableau de contingence (chargement des packages et du tableau original, sélection des colonnes à conserver pour l’analyse et regroupement des données par département).

On commence par réaliser une test du \(\chi^2\) pour s’assurer qu’il y a bien une dépendance significatives entre les lignes et les colonnes du tableau.

chisq.test(donnees_elections)
## 
##  Pearson's Chi-squared test
## 
## data:  donnees_elections
## X-squared = 3630500, df = 1365, p-value < 2.2e-16

Analyse factorielle des correspondances

On réalisera ensuite une AFC sur le tableau obtenu.

res.CA <- CA(donnees_elections)

Le graphique représenté est assez difficilement lisible, cependant nous distinguons assez clairement d’un côté les départements et collectivités d’Outre-Mer (Saint-Martin/Saint-Barthélémy, Guadeloupe, Guyane, Mayotte, Plynésie française,…), à proximité des colonnes Abstention et Nuls et de l’autre les départements d’Île-de-France (Paris, Haut-de-Seine notamment) en opposition à la colonne Le Pen.

La commande

summary(res.CA)

nous donne un certain nombre d’informations : statistique du \(\chi^2\), valeurs propres et pourcentage d’inertie expliqué par chacun des axes, description des lignes et des colonnes. On voit ainsi que trois axes suffisent pour expliquer 80% de l’inertie. La description des lignes n’est pas très informative car elle est limitée aux 10 premières lignes (sur 106). Le nombre de colonnes étant moins important, nous pouvons voir que les colonnes Abstention et Le Pen expliquent une grande partie de l’inertie, que les colonnes Abstention et Macron contribuent beaucoup à la construction du premier axe (et sont bien représentés dans cet axe), les colonnes Le Pen et Abstention contribuent beaucoup à la construction du second axe (Le Pen est bien représenté dans cet axe mais Abstention ne l’est pas vraiment) et que les colonnes Mélenchon, Fillon et Lassalle contribuent beaucoup à la construction du troisième axe et sont assez bien représentés dans cet axe. Cependant, il manque l’information des dernières colonnes (Asselineau, Poutou, Arthaud, Cheminade).

Après ces premières constatations, nous pouvons aller un peu plus loin et préciser l’analyse.

  1. Choisir le nombre d’axes à interpréter. On pourra s’aider également de la commande
barplot(res.CA$eig[,1],main="Eigenvalues",names.arg=1:nrow(res.CA$eig))

2. Choisir un axe parmi ceux retenu et l’interpréter. Si l’axe 2 est retenu par exemple on pourra s’aider des commandes :

plot(res.CA,selectRow="contrib 20")

dimdesc(res.CA) -> res.dimdesc
res.dimdesc$`Dim 2`
round(100*res.CA$col$cos2[,2],2)
res.CA$col$contrib[,2]
round(100*res.CA$row$cos2[,2],2)
res.CA$row$contrib[,2]
  1. Vérifer vos constatations sur les données. Le calcul des profils lignes et colonnes se fait à partir de la fonction prop.table.
profils.lignes <- round(100*prop.table(as.matrix(donnees_elections),margin=1),2)
profil.moyen.colonnes <- round(100*margin.table(as.matrix(donnees_elections),margin=2)/sum(donnees_elections),2)
profils.colonnes <- round(100*prop.table(as.matrix(donnees_elections),margin=2),2)
profil.moyen.lignes <- round(100*margin.table(as.matrix(donnees_elections),margin=1)/sum(donnees_elections),2)

On pourra sélectionner les lignes et colonnes qui ressortent de l’analyse de la question 2.