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
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.
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]
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.