Estimation reports présidentielles 2017

Tableau de reports entre les 2 tours (estimation)

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.

Taux de report du premier vers le second tour

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.

Taux de provenance du 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.

Estimation des reports entre les 2 tours

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.

Méthode

Les tableaux ci-dessus sont obtenus à partir des résultats par bureau de vote.

  • Dans un premier temps, on utilise la procédure ei.reg du package eiPack sous R qui est une méthode classique proposéie par Goodman en 1959. Inconvénient de la méthode : les coefficients obtenus n’ont aucune raison d’être dans l’intervalle [0,1], ce qui est impératif pour un taux de report. On va corriger cela dans la suite.

  • On remplace les coefficients < 0.01, y compris les négatifs, par la valeur 0.01 : cela revient à considérer que les taux de report négatifs ne peuvent pas exister et sont traduit par un très faible taux. Par contre, à ce stade, on laisse les coefficients > 1.

  • On effectue une procédure IPF (Iterative Proportional Fitting) qui revient à caler sur marges imposées (les résultats réels du second tour) une matrice de transfert (imparfaite), celle obtenue en appliquant les coefficients corrigés issus de la régression aux effectifs du premier tour. Cette procédure garantit que les les coefficents soient tous entre 0 et 1.

Programme R

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)