Tag Archives: élections

Les marchés prédictifs comme technique de prévision

Les dernières élections présidentielles ont remis en avant l’importance des soudages, utilisés comme outils de prévision, même si les sondeurs s’en défendent. Comme l’ont dit Niels Bohr et Pierre Dac, « la prévision est difficile surtout lorsqu’elle concerne l’avenir », et des solutions alternatives ont été envisagées. Comme c’est la mode, le « big data » a été mentionné (deviner les intentions de vote à partir des tweets ou des informations publiées sur une page Facebook), mais les marchés prédictifs (et les sites de paris) ont aussi été largement utilisés. Mais est-il si simple d’utiliser les prix (ou les cotes) sur ces marchés prédictifs pour en déduire des probabilités ? Et peut-on vraiment les utiliser ?

Sur quoi parie-t-on ?

Comme le rappelle Rhode & Strumpf (2008) utiliser les paris pour connaître les croyances et donc les probabilités qu’un évènement se réalise n’est pas nouveau. Par exemple lors des élections papales au Vatican. En 1549, Matteo Dandolo c(ambassadeur de Vénitie) notait (raconté dans Baumgartner (2003)) que « it is therefore more than clear that the merchants are very well informed about the state of the poll, and that the Cardinals’ attendants in Conclave (i conclavisti) go partners with them in the wagers, which thus causes many tens of thousands of crowns to change hands ». Et les marchés de paris lors des élections ont été populaires aux Etats-Unis, jusqu’à la seconde guerre mondiale. Rhode & Strumpf (2008) avance plusieurs raisons pour la perte d’intérêt au cours de la seconde moitié du XXème siècle : les améliorations des techniques de sondages et la légalisation des paris sur chevaux (avec pour conséquence la disparition du marché illégal des paris).

Plus récemment, avec le développement des sites et donc d’un marché des paris, on a vu apparaître des paris (contrats vendus sur le marché en ligne intrade.com, liquidé en 2015) sur la survenance de tremblement de terre de magnitude dévastatrice (plus de 9 sur l’échelle de Richter), le vainqueur de la cérémonie des Oscars, la diminution de la couverture de la glace en Arctique entre deux années, ou encore l’observation du boson de Higgs. Polgreen et al. (2007) évoquent des paris sur la survenance d’épidémies de grippe. Un autre exemple – que l’on va détailler un peu – est celui du passage d’une loi sur l’énergie (et l’instauration de mesures contraignantes de limitation des émissions de gaz à effet de serre) aux Etats-Unis. Le titre permettant de toucher 1USD en cas d’adoption du projet de loi a été lancé en mai 2009. Le 26 juin 2009, la Chambre des Représentants a adopté (à une courte majorité) le projet de loi (avec pour objectif de réduire de 17 % d’ici à 2020 par rapport à 2005 et de 80 % d’ici à 2050 les émissions de CO2). A ce moment, le titre était échangé pour 50¢, comme le montre le Graphique 1. Il restait à faire approuver la loi par le Sénat. Six mois plus tard, en signant l’accord de la conférence de Copenhague en décembre 2009, les Etats-Unis s’étaient davantage engagés, et un an plus tard (début 2011), le Sénat serait renouvelé lors des élections de mi-mandat. Le gouvernement de Barack Obama espérait faire approuver la session “lame duck” du congrès, les élections de mi-mandat devant probablement renforcer la majorité Républicaine. Mais le jeudi 22 juillet, le chef de file Démocrate au Sénat Harry Reid a annoncé le retrait du projet de loi, faute de majorité pour l’approuver. Ce jour-là, le titre s’échangeait pour 10¢.

Figure 1 : Evolution du prix du passage du contrat sur le passage du ‘American Clean Energy and Security Act’ devant le Sénat (2009-2010)

Source : auteur, données Meng (2017)

Voir un prix comme une probabilité

Avant toutes choses, rappelons qu’une propriété fondamentale des probabilités est la somme des probabilités d’un évènement et de son complémentaire doivent sommer à un. C’est assez logique si les probabilités sont vues comme des « fréquences », correspondant au nombre de cas favorables sur le nombre de cas possibles. Cette interprétation devient plus délicate quand on imagine le cas de variables aléatoires continues, et un passage par la théorie de la mesure s’impose (en particulier pour admettre qu’un « évènement de probabilité nulle » puisse malgré tout survenir). Mais historiquement, d’autres définitions des probabilités avaient été proposées, en particulier par Jacques Bernoulli, qui avait introduit une notion de « probabilité morale » (comme le rappelle Johnson (2017)) que l’on verra réapparaître dans les travaux de de Finetti sous le nom de « probabilité subjective », ou à la même époque, dans les travaux de Frank Ramsey. Pour ce dernier, une probabilité mesure un degré de croyance – « a degree of belief », qui pouvait se mesurer au travers de paris – « through betting odds » – et les prix que les joueurs sont disposés à payer donnent une information quant à ces croyances. Il devient alors possible de déduire des probabilités à partir de prix.

L’idée n’était pas nouvelle, puisqu’elle avait été émise par dans Van Rekeningh in Spelen van Gelucken publié par Christiaan Huyghens en 1655 (en latin sous le titre ‘De Ratiociniis in Aleæ Ludo‘), et utilisée quelques années plus tard, en 1671 par Wilhelmina de Witt dans le contexte d’annuités. Le prix d’un contrat versant une rente jusqu’au décès pouvant être vu à comme une moyenne pondérée d’annuités (à maturité fixe), en observant les prix des différents contrats d’assurance, on pouvait extraire des probabilités interprétées comme des probabilités de survie. Ces mesures de probabilités n’étaient plus construites à partir de fréquences observées, mais construites à partir de prix historiques observés. On retrouvera cette idée en mathématique financière presque trois siècles plus tard, avec le théorème fondamental de valorisation, et les prix d’Arrow-Debreu. Cette littérature est riche et abondante (on peut renvoyer à Charpentier (2014)), mais il existe également des résultats moins connus, sur la création d’un consensus à partir de probabilités, et les applications pour les paris.

Travaillant sur le marché de pari hippique, Eisenberg & Gale (1959) ont obtenu des résultats relativement généraux, qui peuvent se formaliser ainsi : considérons un individu i\in\{1,2,\cdots,I\} qui a la possibilité de parier sur un cheval j\in\{1,2,\cdots,J\} lors d’une course. Chaque joueur possède une somme totale b_i (que l’on normalise de telle sorte que b_1+b_2+\cdots+b_I=1, et qu’il place la somme \beta_{i,j} sur le cheval . Ces montants vérifient la contrainte \beta_{i,1}+\cdots+\beta_{i,J}=b_i , et on note \pi_j la somme total placée sur le cheval j, de telle sorte que \beta_{1,j}+\cdots+\beta_{I,j}=\pi_j. Compte tenu de la contrainte de budget, notons que \pi_1+\cdots+\pi_J=1, de telle sorte que les montants \pi_j peuvent être interprétés comme des probabilités. Supposons maintenant que chaque joueur ait des croyances (que chaque cheval gagne) matérialisées par un vecteur de probabilités \mathbf{p}_i=(p_{i,1},\cdots,p_{i,J}). Eisenberg Gale (1959) définissent alors une situation d’équilibre, dès lors que si \beta_{i,j}>0 alors on doit avoir

p_{i,j}=\pi_j \cdot \max_s\left\{\frac{p_{i,s}}{\pi_s} \right\}" Il montre qu’un tel équilibre existe, et qu’il est unique. On retrouve ici un résultat connu en mathématique financières sous le nom de loi du prix unique, même si les croyances ne sont pas explicitement mentionnées. Et c’est ce résultat qui permet d’interpréter les prix sur un marché prédictif comme des probabilités.

En s’inspirant du modèle de Eisenberg Gale (1959), Manski (2005) obtient une interprétation sur un marché prédictif. Dans ces marchés, on ne peut pas parier sur un cheval dans une course, mais sur la survenance d’un évènement. Considérons un contrat offrant 1$ si un évènement A survient (élection d’un nouveau pape, départ d’un pays de la zone euro, etc), proposé au prix \pi_A. S’il existe un contrat sur l’évènement complémentaire \bar A (on va supposer ici que c’est le cas), il devrait être proposé au prix \pi_{\bar A}=1-\pi_A, sinon un arbitrage serait possible[i]. Considérons maintenant un agent i croyant avec probabilité [lap_i>\pi_A, cette personne a intérêt à investir tout son argent pour acheter son titre, sinon, il a intérêt à investir dans l’autre titre, associé à \bar A. Au niveau agrégé la demande pour les titres de type A et \bar A sera respectivement

\frac{1}{\pi_A}\sum_i b_i P(p_i>\pi_A) et
<br /> \frac{1}{\pi_{\bar A}}\sum_i b_i P[p_i<\pi_A] et on aura un équilibre si \sum_i b_i=\frac{1}{\pi_A}\sum_i b_iP[p_i>\pi_A]=\frac{1}{\pi_{\bar A}}\sum_i b_iP[p_i<\pi_A]Si on suppose que les croyances (p_i) et les richesses (b_i) sont indépendantes, on peut interpréter les prix \pi_A et \pi_{\bar A} comme des probabilités, \pi_{A}=P[p_i>\pi_A] et \pi_{\bar A}=P[p_i<\pi_A] si les agents sont homogènes. Wolfers & Zitzewitz (2007) propose une interprétation différente, plus économique, dans le contexte d’agents ayant une utilité logarithmique.

Marché et pari en ligne

La situation que nous venons de décrire est celle d’un marché parfait, où un équilibre se fait entre les parieurs, et cet équilibre donne des prix interprétables comme des probabilités de gain (on parle éventuellement de « pari mutuel »). Mais la pratique des paris en ligne est souvent différente, car les prix sont proposés par un bookmaker. Comme le nom l’indique, ces personnes – à la base – enregistrent les paiements, mais en pratique, ce sont aussi eux qui fixent les prix. Par exemple lors des dernières élections présidentielles en France, plusieurs sites proposaient de parier sur l’issue du second tour.

Tableau 1 : côtes lors des élections présidentielles de 2017

côtes (sites de paris en ligne) Intention de votes (instituts de sondage)
bet365 comeon betsafe FT Bloomberg BBC
Macron 1/8 1/8 1/7 64% 60.5% 61%
Le Pen 5/1 9/2 9/2 36% 39.5% 39%

Source : http://www.onlinebettingsites.com/2017-french-election/ (données fin avril 2017)

Comme le montre le Tableau 1, les côtes offertes par les bookmakers sont différentes entre les sites de paris. Une cote de 1/8 signifie qu’en pariant 8€, mon gain net sera de 1€ si le candidat l’emporte le jour de l’élection (et je perds ma mise si le candidat perd). La « probabilité » associée est ici \pi_{A}=8/9\sim88.89\% pour E. Macron (mon gain brut étant de 9/8€ pour 1€ misé) et \pi_{\bar A}=1/6\sim16.67\%. Le soucis – on retrouve ici la discussion initié par Jacques Bernoulli – est que ces « probabilités » ne somment pas à 1, puisque 8/9+1/6\sim1.055\%. La différence vient du fait qu’il ne s’agit pas un « juste » prix, le bookmaker s’assurant un rendement certain (de l’ordre de 5,5% de la mise initiale, quel que soit le site choisi). Les vraies probabilités induites par ces cotes sont ici respectivement \pi_A=16/19\sim 84.2\% et \pi_{\bar A}=3/19\sim 15.8\%. Les sites de paris en ligne donneraient une probabilité de gain pour Emmanuel Macron de 84%, alors que les sondages indiquent une intention de vote de 62%, pour les instituts de sondage.

A-t-on réellement une probabilité, ou une fourchette ?

On le voit, les grandeurs données ne sont pas identiques, l’une indiquant une croyance sur une probabilité de gagner, et l’autre une proportion de votes que devrait avoir un candidat. Dans le modèle de Manski, les probabilités induites par la moyenne des croyances et les prix coïncident si on suppose que les agents ont une utilité logarithmique. Comme le montre Wolfers & Zitzewitz (2006), si on suppose que les agents ont une aversion au risque, ça ne sera plus le cas. En particulier, l’article suggère de considérer des bornes pour \pi_A de la forme [\pi_{A}^2,2\pi_A-\pi_A^2, représentées sur la Figure 2, où est appelé « prix de marché » pour reprendre une notation proche de la Figure 1.

Figure 2 : Bornes sur les croyances moyennes

Faut-il utiliser les prédictions des marchés prédictifs ?

On l’a vu lors de la dernière élection en France, beaucoup s’interrogent sur la place pris par les sondages, en particulier en notant qu’il ne s’agissait pas d’une photographie neutre, mais que les électeurs pouvaient choisir leur candidat précisément à la lecture des sondages (la fameuse théorie du « vote utile » en particulier). Le danger à utiliser les marchés prédictifs comme outils de prévision est que ces dangers sont manipulables, comme l’a montré Schröder (2008). Un autre danger – et cela a été noté lors de la dernière élection présidentielle aux Etats-Unis – les côtes sur les sites en ligne de pari reflètent les croyances d’une certaine « élite » (disons les personnes souvent relativement éduquées, et la classe supérieure, suivant la politique), contrairement aux sondages, qui sont supposés être conduits sur un échantillon représentatif des électeurs, et sont supposer refléter les choix du « peuple » (et non pas une opinion ou une croyance). Si les parieurs tiennent comptent de ces sondages, les prix reflètent leurs croyances. Une dernière critique que l’on peut faire est que la majorité des marchés prédictifs représentent des volumes de transactions très faibles.

Les sondages traditionnels font face aujourd’hui à une défiance croissante. Il devient difficile de constituer un échantillon représentatif, le taux de non-réponse atteint des proportions jamais atteint (et nul ne sait si cette non-réponse est corrélée avec des choix électoraux). Et la confusion règne, entre les sondages classiques, et les « sondages en lignes » hébergés sur divers sites d’information. Mais pour reprendre l’anecdote raconté par Scott Armstrong dans Knowledge@Wharton en 2004, si dans une réunion du conseil exécutif d’une grande entreprise on demande à tous les participants de faire des prévisions quant aux résultats pour l’année prochaine, ou si on demande aux participants de parier sur les résultats de l’année prochaine, quels prévisions seront les plus crédibles ?

Références

Arrow, K.J. & Debreu, G. Existence of an equilibrium for a competitive economy, Econometrica, vol. 22,‎ 1954

Baumgartner, F. Behind locked doors: a history of papal elections. 2003

Charpentier, A. L’efficience des marchés : hypothèse de modèle ou fait stylisé ? Risques, 96. 2014

Frank, E., Verbeek, E. & Nüesch, S. Inter-Market Arbitrage in Betting. Economica, 2012.

Johnson, T. Ethics in Quantitative Finance: a pragmatic theory of markets. Wiley, 2017.

Knowledge@Wharton, How Credible Are Polls? Is There a Better Way to Predict Outcomes in Politics and Business, 3 Novembre 2004,

Manski, C.F. Interpreting the Predictions of Prediction Markets. Working Paper 10359, 2004

Meng, K.C. Using a Free Permit Rule to Forecast the Marginal Abatement Cost of Proposed Climate Policy. American Economic Review vol 107, 2017

Polgreen. Use of Prediction Markets to Forecast Infectious Disease Activity. Healthcare Epidemiology, 2007

Ramsey, F.P. Truth and probability, dans The Foundations of Mathematics and other Logical Essays, 1931 .

Rhode, P.W. & Strumpf, K. (2008) Historical Election Betting Markets: an International Perspective.

Schröder, J. Manipulations in Prediction Markets. Universitätsverlag Karlsruhe, 2009.

The Economist, The Future of Futurology, 15 Novembre 2007

Wolfers, J. & Zitzewitz, E. Interpreting Prediction Market Prices as Probabilities. Working Paper 12200, 2006

Wood, T. Do betting markets outperform election polls? Hardly. The Washington Post, Août 2016

[i] Comme l’a montré Franck et al. (2012), comme il existe aujourd’hui plusieurs sites de paris (plusieurs marchés), il peut exister des arbitrages entre les marchés, rarement au sein d’un marché.

Peut-on vraiment prévoir la probabilité de gagner une élection présidentielle ?

Cet article est co-signé avec Avner Bar-Hen, Conservatoire national des arts et métiers (CNAM)

L’élection du Président de la République française constitue un exemple important de mode de scrutin à deux tours. L’issue des deux tours est évidemment liée, et les résultats du premier permettent d’avoir une idée de l’issue du second tour. The Conversation

Il est en effet plausible que les électeurs ayant voté au premier tour pour l’un des candidats qualifiés au second tour confortent leur choix. En revanche, le vote des électeurs ayant accordé au premier tour leur suffrage à des candidats éliminés du second tour est entaché de plus d’incertitude. Le choix de ces électeurs n’est pas totalement aléatoire car il est dépend fortement de la proximité idéologique et partisane entre le candidat pour lequel ils ont voté au premier tour et chacun des candidats qualifiés.

Reports de vote

Les choix électoraux au second tour de scrutin des électeurs ayant voté au premier tour pour un candidat éliminé sont appelés les « reports de vote ». Ils sont généralement appréhendés de manière agrégée et sous forme de proportions : telle fraction de l’électorat de premier tour de tel candidat se reporte sur tel candidat au second tour.

La connaissance de ces reports de votes comporte principalement deux intérêts. D’une part, les reports de votes constituent un élément de science politique à part entière. Ils renseignent au sujet du positionnement respectif des électorats, de l’ordre de priorité qu’ils attribuent aux différentes thématiques du débat public, de leur fidélité partisane et de leur degré d’information politique. À ce titre, ils sont susceptibles d’intéresser les formations politiques et les candidats eux-mêmes dans l’élaboration ex ante de leurs stratégies électorales et dans leur évaluation ex post. D’autre part, connaître les reports de votes permet de construire des prédictions des résultats du second tour à l’issue du premier tour.

Les estimations de reports de votes publiées, notamment dans la presse, résultent le plus souvent de sondages effectués directement auprès des électeurs. L’estimation produite par le sondage va dépendre de l’échantillon tiré, avec pour corollaire l’existence d’un inévitable écart entre le paramètre et son estimation. Cet écart est quantifié en terme de probabilité associée à un sondage. Cependant les tailles d’échantillon utilisées et le très faible taux de réponse génèrent de telles incertitudes qu’il est difficile de conclure quoi que ce soit à partir de ces sondages.

Pour résumer rapidement, l’évolution (positive) de la présentation des sondages, et en particulier la présentation de termes de probabilité, doit s’accompagner d’une évolution des méthodes et en particulier des tailles d’échantillon. Il est important de rappeler que les intervalles de confiance n’ont aucune valeur prédictive (et donc aucune validité testable ex-post). Par exemple, comment lire le graphique ci-dessous sur les intentions de vote au premier tour :

Doit-on comprendre que fin janvier, 16 % des électeurs affirmaient vouloir voter pour Benoît Hamon, et qu’avec 95 chances sur 100 cette proportion était comprise entre 15 % et 17 % ? Un mois plus tard, il était à 14 %. A-t-il perdu des intentions de votes ? ou bien peut-on imaginer que des électeurs indécis fin janvier (et non comptabilisés) aient décidé de voter pour une autre alternative ? Les pourcentages ne sont pas, ici, relatifs à la même quantité.

Mais revenons à l’estimation des reports de voix, outils-clés pour prévoir la probabilité de gagner au second tour. Les estimations produites à l’aide d’outils mathématiques, à partir des résultats de scrutin par bureaux de vote, restent rares dans la presse mais c’est une source importante d’études en science politique. Essayons de voir le principe.

En démocratie, le vote de chaque électeur est confidentiel. À chaque tour d’une élection, seul le résultat agrégé des votes est connu, et le niveau le plus fin d’agrégation est donné par le bureau de vote. Les reports d’un vote à un autre sont inconnus, et leur estimation à partir des résultats agrégés nécessite de définir un modèle statistique. En effet, la décision individuelle de chaque électeur n’obéit à aucune fonction déterministe.

On résume souvent ce principe sous la formule « le vote est privé, les votes sont publics ». Néanmoins ce principe ouvre grand la porte au paradoxe de Simpson (on parle aussi d’erreur écologique) : à cause de la distribution hétérogène de l’échantillon, regrouper les données pointe une tendance qui peut être fausse, et qui disparaît si on analyse les données en séparant selon le facteur de confusion. L’utilisation de données socio-démographiques est donc importante.

Estimer la probabilité qu’un candidat gagne une élection

Tout d’abord, notons que l’élection mobilise un corps électoral composé de N électeurs répartis dans K bureaux de vote, à raison de Nk électeurs dans le bureau k. Le nombre d’électeurs dans chaque bureau demeure identique lors des deux tours. Pour chaque tour et chaque électeur, le vote peut être vu comme la sélection d’une unique modalité dans un ensemble de choix commun à tous les électeurs. Pour l’élection présidentielle de 2017, il y a I=13 choix possibles au premier tour : s’abstenir, voter blanc ou pour un des onze candidats ; et J = 4 choix possibles au second : s’abstenir, voter blanc ou pour les candidats Macron ou Le Pen.

Étant donné l’hypothèse de stabilité du corps électoral, on peut construire pour chaque bureau k, un tableau croisé (on parle de tableau de contingence) constitué des nombres Nk(i,j) d’électeurs ayant opté pour le choix i au premier tour et j au second, à l’issu du dépouillement du second tour. De ces tableaux, seules les marges suivant les lignes Nk(i,) et suivant les colonnes Nk(,j) sont connues et correspondent respectivement aux résultats du premier et du second tour. Les conditions de vote (isoloir, bulletin sous enveloppe, dépouillement à la fin…) font que lors du scrutin, les électeurs sont globalement ignorants des choix des autres électeurs, à l’exception de l’abstention qui fait l’objet d’une estimation communiquée et révisée régulièrement en cours de journée. Par conséquent, il semble relativement raisonnable de considérer que les décisions de vote sont prises simultanément et qu’elles sont donc indépendantes entre électeurs.

Les probabilités de report du candidat i au candidat j diffèrent a priori entre électeurs d’un même bureau et entre bureaux. Même si le résultat final était connu, les différentes manières d’estimer ces probabilités soulèvent des problèmes complexes, résolus en mobilisant de nombreuses techniques algorithmiques. Estimer la probabilité qu’un électeur ayant fait un des 13 choix possibles (par exemple l’abstention) au premier tour en fasse un des 4 possibles au second (par exemple l’abstention) est un exercice compliqué mais indispensable si on souhaite vraiment estimer la probabilité de victoire d’un candidat. Et à part enfoncer des portes ouvertes, on ne peut pas dire grand-chose : si quelqu’un dit qu’une pièce est pipée, et à 80 % de chances de tomber sur « pile », le fait qu’elle tombe une fois sur « pile » ne signifiera pas qu’il a « raison », pas plus que tomber sur « face » ne signifiera qu’il a « tort ».

En statistique, c’est la répétition qui permet de savoir si l’estimation d’une probabilité est pertinente. Or c’est le propre d’une élection que de ne se produire qu’une fois.


Pour aller plus loin : Søren Risbjerg Thompsen, « Danish Elections 1920-79 : A logit Approach to Ecological Analysis and Inference » (1987) et Fendrich, L’Hour et Rateau, « Reports de votes entre les deux tours d’une élection présidentielle : estimation statistique et sociologie électorale » (2014).

Avner Bar-Hen, Professeur du Cnam, Conservatoire national des arts et métiers (CNAM) et Arthur Charpentier, Maître de Conférences, Université Rennes 1

La version originale de cet article a été publiée sur The Conversation.

Visualiser les résultats du premier tour

Juste quelques lignes de code, pour visualiser les résultats du premier tour en France. L’idée est de faire une carte assez minimaliste, avec des cercles centrés sur les centroïdes des départements. On commence par récupérer les données pour le fond de carte, un fichier 7z sur le site de l’ign.

download.file("https://wxs-telechargement.ign.fr/oikr5jryiph0iwhw36053ptm/telechargement/inspire/GEOFLA_THEME-DEPARTEMENTS_2016$GEOFLA_2-2_DEPARTEMENT_SHP_LAMB93_FXX_2016-06-28/file/GEOFLA_2-2_DEPARTEMENT_SHP_LAMB93_FXX_2016-06-28.7z",destfile = "dpt.7z")

On a dans ce fichier des informations sur les centroïdes

library(maptools)
library(maps)
departements<-readShapeSpatial("DEPARTEMENT.SHP")
plot(departements)
points(departements@data$X_CENTROID,departements@data$Y_CENTROID,pch=19,col="red")

Comme ça ne marche pas très bien, on va le refaire à la main, par exemple pour l’Ille-et-Vilaine,

pos=which(departements@data[,"CODE_DEPT"]==35)
Poly_35=departements[pos,]
plot(departements)
plot(Poly_35,col="yellow",add=TRUE)
departements@data[pos,c("X_CENTROID","Y_CENTROID")]
points(departements@data[pos,c("X_CENTROID","Y_CENTROID")],pch=19,col="red")
library(rgeos)
(ctd=gCentroid(Poly_35,byid=TRUE))
points(ctd,pch=19,col="blue")

Comme ça marche mieux, on va utiliser ces centroïdes.

ctd=as.data.frame(gCentroid(departements,byid=TRUE))
plot(departements)
points(ctd,pch=19,col="blue")

Maintenant, il nous faut les résultats des élections, par département. On peut aller scraper le site du ministère d’ intérieur. On a une page par département, donc c’est facile de parcourir. Par contre, dans l’adresse url, il faut le code région. Comme je suis un peu fainéant, au lieu de faire une table de correspondance, on teste tout, jusqu’à ce que ça marche. L’idée est d’aller cherche le nombre de voix obtenues par un des candidats.

candidat="M. Emmanuel MACRON"
library(XML)
voix=function(no=35){
testurl=FALSE
i=1
vect_reg=c("084","027","053","024","094","044","032","028","075","076","052",
"093","011","001","002","003","004")
region=NA
while((testurl==FALSE)&(i<=20)){
reg=vect_reg[i]
nodpt=paste("0",no,sep="")
# if(!is.na(as.numeric(no))){if(as.numeric(no)<10) nodpt=paste("00",no,sep="")}
url=paste("http://elections.interieur.gouv.fr/presidentielle-2017/",reg,"/",nodpt,"/index.html",sep="")
test=try(htmlParse(url),silent =TRUE)
if(!inherits(test, "try-error")){testurl=TRUE
region=reg}
i=i+1
}
tabs tab=tabs[[2]]
nb=tab[tab[,1]==candidat,"Voix"]
a<-unlist(strsplit(as.character(nb)," "))
as.numeric(paste(a,collapse=""))}

On peut alors tester

> voix(35)
[1] 84648

Comme ça semble marcher, on le fait pour tous les départements

liste_dpt=departements@data$CODE_DEPT
nbvoix=Vectorize(voix)(liste_dpt)

On peut alors visualiser sur une carte.

plot(departements,border=NA)
points(ctd,pch=19,col=rgb(1,0,0,.25),cex=nbvoix/50000)

Et on peut aussi tenter pour une autre candidate,

candidat="Mme Marine LE PEN"

et on obtient la carte suivante

plot(departements,border=NA)
points(ctd,pch=19,col=rgb(0,0,1,.25),cex=nbvoix/50000)

Sondages, intentions de vote et “vote utile”

Il y a plusieurs semaines, Ashley Kirk et Patrick Scott publiaient French presidential election: How the polls are shaping up in the race to become president. Force est de constater qu’ils avaient raison: les sondages prennent une place essentielle dans cette période électorale.

Avant, une précaution d’usage s’impose, je pense. Les instituts de sondages le rappellent sans cesse, et ils ont raison : leur métier n’est pas véritablement de faire des sondages d’intention de vote. L’essentiel de leurs revenus vient des études de marché,
et d’opinion, généralement pour le compte d’entreprises privées. Néanmoins, les élections sont une fabuleuse vitrine publicitaire. On peut alors imaginer que l’institut qui aura “prédit” le scrutin avec la plus grande précision devrait s’assurer une rente pour les mois – voire les années – à venir. Cette vitrine publicitaire serait importante car elle empêcherait aux instituts de prendre parti : ils ont intérêt à prédire aussi précisément que possible, probablement plus que chercher à influencer les votes. Mais est-ce aussi simple ?

Depuis une quizaine d’années, on voit régulièrement ressurgir le concept de « vote utile ». Ce concept est particulièrement important en France, pour les élections présidentielles, compte tenu du système de vote : un vote en deux tours, avec seulement les deux meilleurs au second tour. Qui dit “meilleur” dit positionnement relatif, et donc importance du vote des autres. Quelque part, mon vote est important, mais celui des autres l’est tout autant (sinon plus). Pour voter de manière rationnelle, il faut savoir comment les autres vont voter. Et comme souvent dans un jeu statégique – et les élections en sont – l’information joue un rôle essentiel.

Lorsqu’un élécteur ne sait pas quel sera le vote des autres, il aura – a priori – intérêt à voter pour son candidat préféré, Mais si ce même électeur a des croyances quant au vote des autres, il peut avoir intérêt à modifier stratégiquement son choix, en votant pour son second, voire son troisième choix : on parlera alors de « vote utile ». Sans information sur les choix des autres (ou leurs stratégie), il ne peut pas y avoir de comportement stratégique. Et force est de constater que les “sondages” (terme générique pour désigner les estimations d’intension de vote) sont devenus des instruments essentiels pour déterminer justement quel sera le choix des autres électeurs.

Les sondages sont devenus l’élément central du vote stratégique, surtout s’ils sont présenté comme fournissant une information précise, voire “statistiquement rigoureuse” des intentions de vote. Les sondages deviennent alors auto-réalisateurs s’ils poussent à voter pour des candidats qui affichent le plus de chances de gagner, ce qu’on appelle communément le « vote utile ». Mais on peut aussi imaginer des stratégies inverses : si mon candidat préféré a 40% d’intention de votes, dans les derniers sondages, a-t-il vraiment besoin de ma voix ? Ne pourrais-je pas éviter de perdre du temps en allant voter ?

Bref, j’ai encore du mal à comprendre le rôle exact des sondages dans les élections, mais ils sont loin d’être neutres. Et j’ai l’impression que comprendre ce mécanisme est plus important pour quantifier les “marges d’erreurs” que toutes les méthodes statistiques que l’on peut imaginer (dont je parlais dans un précédent billet). Et les sondages en période électorale semblent relever davantage de la théorie des jeux que des problèmes d’inférence statistique.

Clusters of (French) Regions

For the data scienec course of tomorrow, I just wanted to post some functions to illustrate cluster analysis. Consider the dataset of the French 2012 elections

> elections2012=read.table(
"http://freakonometrics.free.fr/elections_2012_T1.csv",sep=";",dec=",",header=TRUE)
> voix=which(substr(names(
+ elections2012),1,11)=="X..Voix.Exp")
> elections2012=elections2012[1:96,]
> X=as.matrix(elections2012[,voix])
> colnames(X)=c("JOLY","LE PEN","SARKOZY","MÉLENCHON","POUTOU","ARTHAUD","CHEMINADE","BAYROU","DUPONT-AIGNAN","HOLLANDE")
> rownames(X)=elections2012[,1]

The hierarchical cluster analysis is obtained using

> cah=hclust(dist(X))
> plot(cah,cex=.6)

To get five groups, we have to prune the tree

> rect.hclust(cah,k=5)
> groups.5 <- cutree(cah,5)

We have to zoom-in to visualize the French regions,

It is also possible to use

> library(dendroextras)
> plot(colour_clusters(cah,k=5))

And again, if we zoom-in, we get

The interpretation of the clusters can be obtained using

> aggregate(X,list(groups.5),mean)
  Group.1     JOLY   LE PEN  SARKOZY
1       1 2.185000 18.00042 28.74042
2       2 1.943824 23.22324 25.78029
3       3 2.240667 15.34267 23.45933
4       4 2.620000 21.90600 34.32200
5       5 3.140000  9.05000 33.80000

It is also possible to visualize those clusters on a map, using

> library(RColorBrewer)
> CL=brewer.pal(8,"Set3")
> carte_classe <- function(groupes){
+ library(stringr)
+ elections2012$dep <- elections2012[,2]
+ elections2012$dep <- tolower(elections2012$dep)
+ elections2012$dep <- str_replace_all(elections2012$dep, pattern = " |-|'|/", replacement = "")
+ library(maps)
+ france<-map(database="france")
+ france$dep <- france$names
+ france$dep <- tolower(france$dep)
+ france$dep <- str_replace_all(france$dep, pattern = " |-|'|/", replacement = "")
+ corresp_noms <- elections2012[, c(1,2, ncol(elections2012))]
+ corresp_noms$dep[which(corresp_noms$dep %in% "corsesud")] <- "corsedusud"
+ col2001<-groupes+1
+ names(col2001) <- corresp_noms$dep[match(names(col2001), corresp_noms[,1])]
+ color <- col2001[match(france$dep, names(col2001))]
+ map(database="france", fill=TRUE, col=CL[color])
+ }
> carte_classe(cutree(cah,5))

or, if we simply want 4 clusters

> carte_classe(cutree(cah,4))

 

Elections Sans Bipartisme

Hier, sur Twitter, @JF_Godbout partageait un joli graphique relatif aux élections québécoises, avec les nombres de votes obtenus (ici en pourcentage des votes totaux) et le pourcentage de sièges que cela donne,

Il faut dire qu’hier, c’était jour d’élection. Ce sont des élections à un tour, avec plusieurs partis (disons 4 grands partis si on se limite aux élections les plus récentes). Jusqu’à lundi, le PQ (Parti Québécois) avait une majorité (relative), et depuis lundi, le PLQ (Parti Libéral) est revenu au pouvoir. Et il y a à côté de ces deux grands partis d’autres partis, que l’on va regrouper. @JF_Godbout m’ayant envoyé ses données, j’ai pu reproduire les graphiques.

La grande différence ici, entre nos approches est – je pense – la méthode de lissage: alors que  @JF_Godbout faisait des régressions locales, j’ai opté pour des splines.

reg=glm(Seat~bs(Election),data=d,family=binomial)
yp=predict(reg,newdata=data.frame(Election=1970:2015),type="response")

J’utilise des splines parce que ça se généralise facilement à d’autres lois, et qu’on peut aussi les utiliser quand on régresse sur plusieurs variables continues. Si on rajoute les résultats de l’élection de lundi, on obtient le graphique suivant

Ce qui me gêne dans cette modélisation, c’est qu’on considère nos trois dernières régressions comme indépendantes…. alors que ce n’est pas le cas: on a trois modalités possibles, et la somme doit forcément faire 1. D’ailleurs, quand on somme les prédictions, on dépasse 1.

Avec deux partis, notre régression logistique nous garantie d’avoir une somme à un, mais plus ici. A moins d’utiliser un modèle multinomial. Si on oublie le lissage, l’idée est d’écrire

qui est tout simplement l’extension du modèle logistique. La difficulté technique est que, sous R, quand on fait une régression logistique, la variable d’intérêt doit être une variable prenant trois facteurs, et non pas un vecteur de probabilités. Au lieu d’utiliser des taux, ou des pourcentages, je devrais utiliser des nombres d’observations de chaque modalités. On va donc crééer une fausse base

> vote=data.frame(
+ plq=plq$Vote,
+ pq=pq$Vote,
+ autre=autre$Vote,
+ Election=pq$Election)
> vote
      plq     pq  autre Election
1  0.5465 0.3022 0.1513     1972
2  0.3378 0.4137 0.2485     1976
3  0.4608 0.4926 0.0466     1981
4  0.5599 0.3869 0.0532     1985
5  0.4995 0.4016 0.0989     1989
6  0.4440 0.4475 0.1085     1994
7  0.4355 0.4287 0.1358     1998
8  0.4599 0.3324 0.2077     2003
9  0.3308 0.2835 0.3857     2007
10 0.4208 0.3517 0.2275     2008
11 0.3120 0.3195 0.3685     2012
12 0.4140 0.2538 0.3312     2014
> M=t(round(vote[,1:3]*1000))
> M
      [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12]
plq    546  338  461  560  500  444  436  460  331   421   312   414
pq     302  414  493  387  402  448  429  332  284   352   320   254
autre  151  249   47   53   99  108  136  208  386   227   368   331

On réplique alors autant de fois le nom du parti qu’on a de (pseudo) votes

> Y=X=NULL
> for(i in 1:3){
+ for(j in 1:ncol(M)){
+ Y=c(Y,rep(c("PLQ","PQ","Autre")[i],M[i,j]))
+ X=c(X,rep(pq$Election[j],M[i,j]))
+ }}
> basev=data.frame(Y=as.factor(Y),X=X)

C’est un peu artificiel, j’en conviens, mais ça marche… On peut alors faire la régression

> library(nnet)
> regv=multinom(Y~bs(X),data=basev)
# weights:  15 (8 variable)
initial  value 13186.643301 
iter  10 value 12241.931805
final  value 12221.591172 
converged

et des prévisions

> ypv=predict(regv,newdata=
+ data.frame(X=1973:2014),type="probs")
> ypv
        Autre       PLQ        PQ
1  0.18426281 0.4705415 0.3451957
2  0.16051060 0.4767408 0.3627486
3  0.14149153 0.4805514 0.3779571
4  0.12631826 0.4826100 0.3910718
5  0.11426236 0.4834165 0.4023212
6  0.10474046 0.4833543 0.4119053
7  0.09729304 0.4827117 0.4199953
8  0.09156246 0.4817016 0.4267360
9  0.08727323 0.4804776 0.4322491
10 0.08421535 0.4791477 0.4366370
11 0.08223095 0.4777835 0.4399855
12 0.08120364 0.4764292 0.4423672
13 0.08105030 0.4751066 0.4438431
14 0.08171457 0.4738203 0.4444651

Et on notera que cette fois, nos prévisions somment à un.

Cela dit, visuellement, on obtient des choses proches de ce qu’on avait auparavant,

mais intellectuellement, je trouve plus logique d’utiliser autre chose que des régressions logistiques quand on est dans une élection où plusieurs partis sont en compétition.