vote1t | abs2t | blc2t | nul2t | macron2t | lepen2t | delta2 |
---|---|---|---|---|---|---|
abs1t | 8832102 | 73224 | 73839 | 1192645 | 401721 | 4924 |
blc1t | 7097 | 316489 | 22330 | 204942 | 108798 | 342 |
nul1t | 3154 | 16879 | 58347 | 113858 | 96946 | 152 |
DUPONTAIGNAN | 18932 | 311314 | 78055 | 611274 | 674514 | 911 |
LEPEN | 189928 | 168938 | 98728 | 59063 | 7158737 | 3097 |
MACRON | 241140 | 56697 | 57173 | 8218992 | 78533 | 3812 |
HAMON | 48847 | 115717 | 40571 | 2060785 | 24193 | 1174 |
ARTHAUD | 2076 | 24606 | 37354 | 79873 | 88375 | 100 |
POUTOU | 4317 | 95040 | 62063 | 168403 | 64474 | 208 |
CHEMINADE | 717 | 13034 | 6604 | 31478 | 13718 | 35 |
LASSALLE | 4693 | 103622 | 65430 | 137521 | 123808 | 226 |
MELENCHON | 1764595 | 946730 | 275791 | 3689297 | 379752 | 3786 |
ASSELINEAU | 116230 | 29307 | 3657 | 99345 | 83837 | 170 |
FILLON | 862889 | 749210 | 184101 | 4073033 | 1339924 | 3839 |
delta1 | 4648 | 693 | 181 | 2618 | 1145 | 5 |
delta1 et delta2 correspondent à un ajustement entre les inscrits des deux tours pour s’assurer que le total à chaque tour est bien rigoureusement égal.
L’algorithme utilisé fait que les totaux en ligne et en colonne correpondent exactement aux résultats définitifs publiés. Cela ne doit toutefois pas faire illusion sur la précision obtenue.
A partir du premier tableau, on peut calculer comment se sont répartis les votants du premier tour au second.
vote1t | abs2t | blc2t | nul2t | macron2t | lepen2t |
---|---|---|---|---|---|
abs1t | 83.53 | 0.69 | 0.7 | 11.28 | 3.8 |
blc1t | 1.08 | 47.98 | 3.39 | 31.07 | 16.49 |
nul1t | 1.09 | 5.84 | 20.18 | 39.37 | 33.52 |
DUPONTAIGNAN | 1.12 | 18.38 | 4.61 | 36.08 | 39.82 |
LEPEN | 2.47 | 2.2 | 1.29 | 0.77 | 93.27 |
MACRON | 2.79 | 0.66 | 0.66 | 94.99 | 0.91 |
HAMON | 2.13 | 5.05 | 1.77 | 89.99 | 1.06 |
ARTHAUD | 0.89 | 10.59 | 16.08 | 34.39 | 38.05 |
POUTOU | 1.09 | 24.1 | 15.74 | 42.71 | 16.35 |
CHEMINADE | 1.09 | 19.88 | 10.07 | 48.02 | 20.93 |
LASSALLE | 1.08 | 23.82 | 15.04 | 31.61 | 28.46 |
MELENCHON | 25.01 | 13.42 | 3.91 | 52.28 | 5.38 |
ASSELINEAU | 34.97 | 8.82 | 1.1 | 29.89 | 25.22 |
FILLON | 11.97 | 10.39 | 2.55 | 56.5 | 18.59 |
Exemple de lecture : 56,50% des électeurs de Fillon au premier tour ont voté Macron au second tour.
Réciproquement, on peut calculer d’où viennent les voix du second tour en proportion.
vote1t | abs2t | blc2t | nul2t | macron2t | lepen2t |
---|---|---|---|---|---|
abs1t | 72.98 | 2.42 | 6.94 | 5.75 | 3.78 |
blc1t | 0.06 | 10.47 | 2.1 | 0.99 | 1.02 |
nul1t | 0.03 | 0.56 | 5.48 | 0.55 | 0.91 |
DUPONTAIGNAN | 0.16 | 10.3 | 7.33 | 2.95 | 6.34 |
LEPEN | 1.57 | 5.59 | 9.28 | 0.28 | 67.29 |
MACRON | 1.99 | 1.88 | 5.37 | 39.62 | 0.74 |
HAMON | 0.4 | 3.83 | 3.81 | 9.93 | 0.23 |
ARTHAUD | 0.02 | 0.81 | 3.51 | 0.39 | 0.83 |
POUTOU | 0.04 | 3.15 | 5.83 | 0.81 | 0.61 |
CHEMINADE | 0.01 | 0.43 | 0.62 | 0.15 | 0.13 |
LASSALLE | 0.04 | 3.43 | 6.15 | 0.66 | 1.16 |
MELENCHON | 14.58 | 31.33 | 25.91 | 17.79 | 3.57 |
ASSELINEAU | 0.96 | 0.97 | 0.34 | 0.48 | 0.79 |
FILLON | 7.13 | 24.8 | 17.3 | 19.64 | 12.6 |
Exemple de lecture : 7,13% des absentionnistes du second tour ont voté Fillon au premier tour.
La mise à disposition des données par bureau de vote ( 1er tour et 2ème tour) fournit une masse d’informations importantes.
Le problème d’estimer des reports entre élections quand on ne dispose que des totaux de chaque tour est un problème étudié depuis longtemps sans que des réponses complétement satisfaisantes aient été trouvées. On peut lire à ce sujet l’article suivant qui fait le tour de différentes méthodes.
Les tableaux ci-dessus sont obtenus à partir des résultats par bureau de vote.
fread("pres2017_bv.csv") -> elec
ei.reg(cbind(abs2t, blc2t, nul2t, macron2t, lepen2t, delta2) ~
cbind(abs1t,blc1t,nul1t,DUPONTAIGNAN,LEPEN,MACRON,
HAMON,ARTHAUD,POUTOU,CHEMINADE,
LASSALLE,MELENCHON,ASSELINEAU,FILLON, delta1),
data=elec) -> regr
regr$coefficients -> coef
coef[coef<0.01]=0.01
sapply(elec[,c(3:16, 22)], sum) -> m1t
sapply(elec[,c(17:21, 23)], sum) -> m2t
val <- coef * m1t
Ipfp(val, list(1,2), list(m1t, m2t)) -> mat
round(mat$x.hat) -> estim
round(prop.table(estim, 1) * 100, 2)
round(prop.table(estim, 2) * 100, 2)