Prédictions Eurovision 2018 – bilan

Pendant que Lisbonne se réveille sous des cris de poulet et des chats maneki-neko suite à la victoire de Netta, la candidate israélienne à l’Eurovision 2018, voici quelques commentaires à chaud sur le modèle de prédictions mis en oeuvre (détaillé ici, et repris ici pour les résultats de la finale)

Ce qu’on a réussi

La prédiction du vainqueur ! Les données Youtube étaient clairement atypiques cette année pour Israël (beaucoup plus de vues qu’une vidéo de l’Eurovision usuelle, et largement plus que les autres pays), mais cela ne prouvait pas que cette information uniquement impliquerait la victoire du pays. À voir ce qui se passera sur une année plus “classique”, mais cela reste une belle première performance.

Ce qu’on a moins bien réussi

À peu près tout le reste ! Le tableau ci-dessous récapitule nos prévisions et celles des bookmakers (arrêtées le soir de la seconde demi-finale), pour les comparer aux vrais résultats ; on calcule à chaque fois l’écart absolu, c’est à dire la différence entre la place prédite et la vraie place sans prendre en compte le signe de cette différence.

PaysModèleBookmakersRéalitéErreur modèleErreur bookmakers
Israël12101
Chypre1312111
Autriche151831215
Allemagne2274183
Italie1110565
République Tchéque311635
Suède56721
Estonie88800
Danemark1016917
Moldavie19141094
Albanie2525111414
Lituanie1441228
France7313610
Bulgarie4914105
Norvège6515910
Irlande12121644
Ukraine18201713
Pays-Bas26211883
Serbie16261937
Australie91920111
Hongrie24152136
Slovénie21242212
Espagne21723216
Royaume-Uni20232441
Finlande231325212
Portugal17222694

L’erreur totale (la somme de ces différences) est de 170 pour notre modèle, contre uniquement 138 pour les bookmakers. Nous sommes donc moins efficaces qu’eux pour l’instant, mais ce sera à charge de revanche l’année prochaine (et leur gagnant était Chypre…).

En particulier, les plus grosses erreurs de notre modèle sont l’Espagne, l’Allemagne et Chypre (même si on avait remarqué leur remontée ici). Les plus grosses erreurs des bookmakers sont la Finlande, la Norvège et la France (sur-estimée !). Enfin, les deux prévisions sont très mauvaises sur l’Autriche et sur l’Albanie, qui ont fait tous les deux un score bien meilleur qu’attendu.

Sur l’Espagne, notre supposé deuxième qui a fini dans les derniers : notre prédiction venait d’un très grand nombre de “like” sur la vidéo espagnole, qui n’est absolument pas corrélé avec le résultat définitif. Il semblerait donc que cette variable ne soit pas forcément pertinente. Ou alors cela vient du fait de la rumeur/question qui se posait sur leur couple ou non (en), qui aurait attiré un autre public plus adepte des likes ? Difficile à savoir.

Et pour l’année prochaine

Une idée : séparer le vote public et le vote des jurys ? A priori, les données Youtube devraient être plus efficaces pour prédire le vote du public. Reste à savoir ce qui peut être utilisé pour prédire le vote du jury…

Il pourrait être intéressant de voir si certains pays ont systématiquement fait mieux ou moins bien que ce que le modèle dit. Cela pourrait donner des pistes pour inclure d’autres facteurs (peut-être liés à la proximité des pays en cliques régionales ?). Il faut de toute façon améliorer le modèle au delà d’une régression linéaire.

Enfin, il sera intéressant d’intégrer le calcul des prévisions à une page qui se mettrait automatiquement à jour, par exemple tous les jours ou tous les quelques heures !

À l’année prochaine pour l’Eurovision 2019 🙂

Finale de l’Eurovision 2018 – prédictions

La finale de l’Eurovision a lieu samedi 12 mai. Voici nos prédictions pour les 26 pays y participant :

PaysScore préditPlace prédite
Israël13771
Espagne9062
République Tchéque2133
Bulgarie1874
Suède1675
Norvège1456
France1347
Estonie1188
Australie1159
Danemark10510
Italie10011
Irlande9912
Chypre9313
Lituanie9214
Autriche9015
Serbie8216
Portugal8117
Ukraine7718
Moldavie7719
Royaume-Uni7520
Slovénie7321
Allemagne7322
Finlande7123
Hongrie7124
Albanie5725
Pays-Bas5326

Eurovision 2018 – prédictions – mise à jour

Un rapide article pour intégrer les données disponibles à une semaine de la finale du concours Eurovision 2018 ! Nous allons reprendre exactement la méthode décrite ici, mais en utilisant les données de Youtube au 5 mai 2018, soit une semaine avant la diffusion de la finale.

Voici le tableau avec les scores mis à jour :

PaysÉvolution au classementScore prédit (un mois avant)Score prédit (une semaine avant)
Israël15851377
Espagne+1375906
Russie-1393372
République Tchéque210213
Bulgarie207187
Suède189167
Norvège150145
France140134
Grèce140125
Estonie130118
Australie129115
Macédoine+2117107
Azerbaïdjan-1118106
Belgique+1119106
Danemark116105
Biélorussie109103
Italie106100
Irlande+110699
Chypre+49593
Lituanie10292
Arménie10092
Autriche9990
Malte-510685
Serbie9182
Portugal8981
Ukraine+18077
Moldavie+18077
Royaume-Uni-28275
Slovénie-28073
Allemagne+27673
Suisse7772
Finlande7471
Hongrie7471
Georgie7469
Roumanie7366
Pologne+16663
Croatie-16762
San Marin6158
Albanie+15757
Montenegro-16056
Pays-Bas-15653
Lettonie+15552
Islande5136

Il n’y a pas énormément de changements, mais il y a tout de même un échange de places entre la Russie (qui a peu de chances de se qualifier en finale selon le modèle, donc qui était déjà un résultat étonnant) et l’Espagne (qui est qualifié automatiquement, donc potentiellement un favori, même si les bookmakers ne les classent que 12èmes aujourd’hui), suite à une augmentation énorme du score prédit de l’Espagne. Pour information, voici la chanson de l’Espagne :

Plus loin dans le classement, on constate des remontées de Chypre (classée 6ème selon les bookmakers) et de la République de Macédoine, dans une moindre mesure. Peut-être des pays à suivre également ? Pour se faire un avis, voici ce que propose Chypre cette année :

Bon Eurovision à tous, et à dans une dizaine de jours pour faire le bilan sur ces prédictions !

Eurovision 2018 – prédictions

Aujourd’hui un rapide article pour donner des premières prédictions pour l’Eurovision 2018, avec un modèle très simplifié basé sur les statistiques des vidéos publiées sur Youtube pour l’intégralité des pays participants, en espérant trouver le temps pour l’améliorer dans les prochaines années !

Les données

Nous allons essayer de prédire les résultats (participation à la finale – ce point avait déjà été discuté sur le blog, puis score obtenu) à partir des informations disponibles sur les vidéos Youtube : nombre de vues, nombre de “Like” (pouces vers le haut, qui indiquent que la vidéo a été appréciée) et nombre de “Dislike” (pareil mais vers le bas, qui indiquent que la vidéo n’a pas été appréciée par le spectateur).

Nous récupérons ces informations grâce au package R tuber, qui permet d’aller faire des requêtes par l’API de Youtube et ainsi de récupérer pour chacune des vidéos d’une playlist les informations nécessaires pour le modèle. Nous récupérons alors les données pour les chansons des concours 2016, 2017 et 2018. Ces informations sont ensuite complétées avec le nombre de points obtenus et le rang du classement final pour les finalistes des éditions 2016 et 2017. Les données sont disponibles ici.

Évidemment, ces données ont leurs limites. Je n’ai pas trouvé comment rechercher des informations sur les vidéos Youtube à une autre date, ce qui fait que l’on va utiliser des données après la diffusion des concours 2016 et 2017 pour évaluer un modèle, que l’on appliquera à des données avant le concours pour 2018. Par ailleurs, le système de notation a évolué en 2016, ce qui explique pourquoi on se limite aux données sur les deux dernières années pour notre modèle. Par ailleurs, pour lisser les effets de taille (1 millions de vues en moyenne pour les vidéos 2018 contre 5 millions pour celles de 2016), nous travaillons sur des données standardisées en divisant par la moyenne du nombre de vues, de likes, etc.

Le modèle

Nous travaillons ensuite sur deux problèmes : estimer la probabilité qu’une chanson soit qualifiée en finale, puis estimer le score qu’elle va obtenir, pour évaluer son classement final. En ce qui concerne la probabilité de qualification en finale, nous réalisons une régression logistique. La seule variable qui ressort est le nombre de Dislike, qui influe légèrement négativement la chance d’être qualifié. C’est assez logique : moins la vidéo est appréciée, moins il y a de chances que le pays soit qualifié en finale.

En ce qui concerne le nombre de points obtenus, nous testons deux approches concurrentes :

  • Une régression linéaire sur les variables : dans ce cas, on observe que le nombre de vues ne joue pas significativement, le nombre de Likes de façon très mineure et le nombre de Dislikes très nettement, avec un lien positif : plus il y a de pouces baissés, plus le score est important. Ce résultat atypique peut s’expliquer par le fait que la vidéo ukrainienne en 2016, gagnante, a plus de 40 000 pouces baissés.
  • Un arbre de régression qui permet de séparer à chaque étape la population en deux et d’évaluer un score moyen. Cette méthode est moins efficace pour prédire le score exact, mais elle permet d’identifier les déterminants du score. L’arbre ci-dessous décrit la partition des vidéos :

Cet arbre se lit de la façon suivante :

  • Si l’on a plus de 2,216 fois le nombre de vues moyen des vidéos de l’année, alors le score prédit par la méthode est 425 (les vidéos populaires ont des scores importants). Sinon, on passe à l’étape suivante
  • Si l’on a moins de 89% du nombre de Likes moyen des vidéos de l’année, alors on part dans le sous-arbre encadré en bleu ; si c’est plus, dans celui encadré en vert.
  • L’opération se répète jusqu’à qu’on arrive à un carré en bas de l’arbre, où l’on lit le score prévu

Les résultats

Voici les prédictions obtenues, en utilisant la méthode de régression linéaire pour le score total :

PaysProba d'aller en finaleScore prédit
Israël99%1585
Russie25%393
Espagne100%375
République Tchéque99%210
Bulgarie99%207
Suède94%189
Norvège74%150
France100%140
Grèce97%140
Estonie71%130
Australie75%129
Belgique74%119
Azerbaïdjan83%118
Macédoine67%117
Danemark85%116
Biélorussie78%109
Italie100%106
Malte79%106
Irlande73%106
Lituanie77%102
Arménie62%100
Autriche70%99
Chypre62%95
Serbie42%91
Portugal100%89
Royaume-Uni100%82
Ukraine38%80
Moldavie29%80
Slovénie19%80
Suisse48%77
Allemagne100%76
Finlande31%74
Hongrie28%74
Georgie15%74
Roumanie31%73
Croatie19%67
Pologne34%66
San Marin10%61
Montenegro16%60
Albanie21%57
Pays-Bas15%56
Lettonie16%55
Islande9%51

Le grand gagnant est Israël, ce qui est plus ou moins la prédiction faite par tout le monde : voir ici ou ici. À noter que l’année dernière, l’Italie était grande favorite (et a fini 6ème), donc rien n’est encore fait… Si vous voulez vous faire une idée :

Un résultat plus étonnant concerne la Russie. Elle est classée deuxième par notre modèle, mais avec une faible chance d’être qualifiée en finale. Cela semble venir d’un très haut nombre de pouces baissés sur la vidéo, qui influencent énormément notre prédiction. La Russie est placée 25ème par les bookmakers, donc à voir si notre modèle a détecté quelque chose ou s’il s’agit d’un cas de surapprentissage. Pareil, pour se faire un avis :

Et enfin, soyons chauvins ! Nous serions dans le top 10 avec Mercy. C’est d’ailleurs cohérent avec les estimations des bookmakers. Tout est donc encore possible 😉

Chance et talent dans le sport

(Ce petit article est une reprise d’un fil twitter fait à l’occasion du Final Four de la NCAA)

Aujourd’hui on propose de prendre un peu de temps pour discuter des notions de “chance” (luck) et de “talent” (skill) dans le domaine du sport, en s’inspirant d’arguments exposés dans The Success Equation: Untangling Skill and Luck in Business, Sports, and Investing, sorti en 2012. La question qui se pose est la suivante : dans les résultats d’une équipe sportive ou d’un athlète, qu’est-ce qui vient de l’habileté et qu’est-ce qui relève uniquement de la chance ? Même si l’on faisait l’hypothèse que le déterminant principal d’un résultat est le talent de l’athlète, certaines sous-performances peuvent arriver.

C’est un sujet assez classique, qui est développé dans la plupart des études statistiques sur le sport. Pour ceux qui préfèrent le format vidéo, voici un résumé rapide de ce qu’explique le livre :

Mathématiquement, on considère que le skill et la chance sont deux variables indépendantes. On peut donc écrire une équation très simple sur leur variance :

Var(observations) = Var(skill) + Var(chance)

Cela nous donne donc une façon d’estimer la contribution du skill dans les résultats, c’est à dire une idée de l’importance du talent de l’athlète :

Var(skill) = Var(observations) – Var(chance)

Plus ce terme est important, plus les résultats obtenus proviennent du fait que le sport récompense les joueurs qui ont du talent. Dans un jeu complètement aléatoire (pile ou face…), c’est uniquement la chance qui amène au résultat final. On imagine alors que chaque sport va plus ou moins s’éloigner de ce modèle.

Nous avions discuté de cette question par rapport au badminton et au tennis ; on constatait alors que, grâce à la règle de l’écart des deux points, il y avait une plus grande stabilité des victoires (et donc une plus faible part de chance) au tennis qu’au badminton. Une même question se posait sur le tir à l’arc, avec le changement des règles qui permet plus facilement de rattraper une flèche ratée.

Comment faire pour estimer cette contribution ? Pour le premier terme, Var(observations), c’est facile. On considère les résultats (d’une saison par exemple) comme une variable aléatoire et on calcule sa variance. On constate que certains sports sont plus variables que d’autres, par exemple le basket par rapport au hockey :

Le seconde terme, Var(chance), est un peu plus complexe à estimer. Dans son son livre, Mauboussin prend chaque match comme une expérience de Bernoulli (avec une probabilité de victoire qui correspond au taux de victoire dans la saison). Il obtient donc, par sport, un pourcentage d’explication du skill dans le résultat final. Par exemple, pour la NBA il obtient 88% et pour la NHL 47%.

Une bonne part de la variance s’explique en fait par le nombre de matches joués, qui correspond dans la logique à la “taille d’échantillon”. La NFL (16 matches / saison) est donc logiquement plus aléatoire que la NBA (82 matches / saison) sur l’axe skill / chance représenté en haut de l’article. On peut aussi appliquer le même concept en considérant chaque “action” comme une expérience aléatoire. Par exemple, chaque possession au basket, comme une chance de marquer avec une certaine probabilité. C’est pour cela l’on s’attendait à ce que l’underdog Loyola-Chicago essaye de jouer le plus lentement possible.

L’idée derrière cette stratégie est que moins de possessions implique plus de variance et donc moins de chances de l’emporter pour le favori ; en effet, plus l’on joue, plus l’aléatoire doit s’équilibrer et donc le talent va s’imposer. La validité de cette stratégie est disputée : certaines analyses statistiques ont montré que les chances de victoires des équipes mal classées (underdogs) contre des équipes réputées bien meilleures n’était pas modifiées par le rythme du match.

Pour conclure, le même genre d’analyse a été appliqué récemment (avec plus ou moins de succès) à l’esport. Yauheni Hladki a présenté à la GDC une analyse dont le résultat situe tous les jeux (oui, tous, même Hearthstone) à la droite des échecs sur l’axe skill / chance. Ce qui signifierait que la chance aurait moins d’impact sur le résultat que dans la plupart des sports. En d’autres termes, qu’une équipe mal classée de CS:GO n’aurait que des chances infimes de remporter un match contre une équipe du top mondial… pas terrible pour le suspense si cela était vrai !

La “clé” derrière ce résultat est que l’auteur considère chaque action effectuée en esport comme une expérience aléatoire. Cela inclut par exemple chacun des tirs effectués dans une partie de CS:GO ! La taille d’échantillon “équivalent” considérée est énorme (la variance obtenue est donc très faible) et c’est ce qui le conduit à placer tous les esports au même endroit sur l’axe. À vous de juger de la pertinence de cette méthode !

 

On a tous en nous quelque chose…

Un petit article pour réagir à l’actualité très récente de ces derniers jours, c’est à dire la mort de Johnny Hallyday ; si vous n’êtes pas au courant, c’est que vous vivez dans une grotte (voir ici par exemple). Cet immense chanteur a fait une très grande carrière et fait partie du patrimoine musical français. Depuis son décès, les radios et les chaînes de télévision diffusent plus ou moins en boucle ses titres, en hommage. C’est d’ailleurs ce qui nous amène à la question du jour : combien de temps cela prendrait à diffuser la totalité de l’oeuvre de Johnny à la radio ?

Pour répondre à cette question, nous allons utiliser l’article Wikipedia sur sa discographie, très bien fourni. Il faut évidemment se limiter à un certain nombre d’albums : on va choisir les albums studios, en excluant ceux faits exclusivement pour l’étranger, qui ne seraient pas diffusés sur une radio française. Le jeu de données est disponible ici, si vous souhaitez l’utiliser.

Le résultat, sans plus attendre, est que la cinquantaine d’albums studio de Johnny demanderait 36 heures, 2 minutes et 22 secondes à être diffusée ! Soit, en sachant que sa mort a eu lieu aux environs de 2h du matin le mercredi 6 décembre 2017, cela veut dire que si une radio l’avait appris directement, elle aurait pu diffuser en boucle sans jamais se répéter des titres du chanteur jusqu’à jeudi 7 à 14h. Et encore, on ne compte pas les albums live !

On peut également utiliser ce jeu de données pour regarder la durée moyenne des chansons. Plusieurs études ont montré que la longueur des chansons a évolué dans les dernières décennies, avec un minimum dans les années 60 et un maximum dans les années 90. Un graphe animé est disponible ici :

On peut faire le même graphe pour les chansons de notre idole des jeunes, et on se rend compte que l’on retrouve quasiment la même courbe ! Il était donc bien un reflet de son époque.

Et enfin, est-ce que vous saviez que Johnny et Pasteur étaient morts dans la même ville ? Peut-être une idée pour un prochain article, d’ailleurs…

Reports de voix à la présidentielle 2017

La question du report des voix entre les deux tours des élections, souvent primordiale pour les politologues et les journalistes politiques, s’est posée de façon particulièrement cruciale pour l’élection présidentielle 2017. En effet, les deux candidats qualifiés étaient issues de nouvelles formations, ou du moins de formations qui n’ont pas l’habitude de participer au second tour de la présidentielle (une fois pour le Front National, et jamais pour En Marche !). Nous allons reprendre la même façon d’aborder cette question que ce que nous avions fait pour l’élection présidentielle de 2012, en décembre dernier.

Les analyses de “report de voix” utilisent des données de sondage mais nous allons reprendre ici l’approche basée sur l’analyse de l’évolution du vote pour chacune des villes entre les deux tours de l’élection. Les données relatives au vote pour chacune des villes sont disponibles ici (premier tour) et ici (second tour).

Nous réalisont alors un modèle de régression linéaire entre les deux tours, pour évaluer quelle partie des votes alloués à chaque candidat au premier tour se reporte sur l’un des deux challengers, ou n’est pas exprimée (abstentions, blancs). Les résultats sont les suivants :

Macron Le Pen
Le Pen < 1 % 112 %
Macron 116 % < 1 %
Fillon 58 % 19 %
Melenchon 48 % 10 %
Dupont-Aignan 39 % 36 %
Hamon 95 % < 1 %
Asselineau 22 % 32%
Arthaud 51% 41%
Poutou 56 % 13 %
Cheminade 44 % 21 %
Lassalle 48 % 23 %

ou sous forme de graphique :

Comme nous l’avions déjà indiqué la dernière fois, il ne s’agit que d’un petit modèle sans grande prétention, et cela ne veut pas dire que 23% des électeurs de Jean Lassalle ont voté pour Martine Le Pen au second tour, mais on peut en déduire quelques remarques :

  • La somme des pourcentages donne une idée des électeurs qui n’ont pas souhaité participer au second tour. On voit que les électeurs de Asselineau puis de Mélenchon sont ceux qui ont le plus souvent voté blanc ou qui se sont abstenus au second tour ;
  • Inversement, pour Macron et Le Pen on observe un score estimé supérieur à 100%, cela signifierait que la mobilisation des électeurs ayant ces deux candidats préférés au premier tour se sont plus mobilisés au second ;
  • Les électeurs insoumis qui ont souhaité exprimer un vote en faveur d’un des deux candidats ont majoritairement choisi Macron ;
  • L’accord électoral entre Marine le Pen et Nicolas Dupont-Aignan n’aurait pas convaincu son électorat, qui se partagerait en parts égales pour les deux candidats ;
  • Le vote Hamon s’est quasiment à 100 % reporté sur le vote Macron ; ce n’est pas le cas de celui Fillon, qui s’est reporté de façon non négligeable pour Marine le Pen, et qui a entraîné plus d’abstention ou de vote blanc.

En comparaison, les reports de voix à la présidentielle 2012 étaient les suivants :

A shiny app to convert sports scores

I’m a huge sports fan, but I certainly don’t have extended knowledge about all team sports. Sometimes when I hear about scores in a sports I’m not quite “fluent” in, I wonder how they would translate in a sports I know better. I guess many people ask the same question from time to time. For instance, three years ago, many americans started wondering how the 7-1 blowout that happened during the World Cup semifinals would translate in basketball, football or hockey. ESPN first came up with an absurd answer, and then Neil Paine of FiveThirtyEight wrote a much more sensible paper on the question.

I created a shiny app that finds a statistical equivalent of a game score in one sports in other sports:

The program is very simple, let me show you on an example how it works. Suppose you want to know how a 103 – 97 home win in basketball translates in other sports.

The program starts by computing the score difference between the two teams (103-97 = +6), and looks how many basketball games have ended with a home team win by 6 points or less. In this case, the number is 30.7% of games.

Histogram and density of score differences in basketball games

Then the program looks among the home wins in other sports what score difference corresponds to the same 30.7% (the 30.7% quantile). This corresponds to +1 in soccer and hockey and +6 in football.

Finally, it does the same operation by comparing the offensive score of the winning team. In 50.4% of basketball games, the home team scores 103 points or less when it wins, which corresponds to 2 scored goals in soccer, 4 in hockey and 28 points scored in football. The final result is thus:

The full code of the shiny app is available on the GitHub page of the project. The dataset is made of all NBA, NHL, NFL and Champions League games since the year 2000. If you want to see other sports, make a pull request or ping us on Twitter or Mastodon!

Comment annoncer les résultats des élections à 20h ?

Il y a une semaine quasiment jour pour jour, dimanche 23 avril à 20h, les résultats du premier tour de l’élection présidentielle ont été annoncés sur les plateaux des grandes chaînes, TF1 ou France Télévisions par exemple. Pour donner ce résultat, il n’est pas envisageable d’attendre les remontées officielles, qui n’arrivent que tard dans la nuit, une fois que tous les bureaux ont été dépouillés. D’autre part, il ne serait pas très pertinent de récupérer les résultats au fur et à mesure des remontées des bureaux dépouillés, car on sait que les premiers sont souvent ceux des communes rurales, qui ne votent pas du tout comme les autres. Il est donc nécessaire de procéder par estimations. Pour cela, les grands instituts de sondage partenaires des soirées électorales de chacune des chaînes sélectionnent certains bureaux de vote et remontent l’information sur les premiers bulletins dépouillés : cela suffit à obtenir une précision suffisante, couplée à certains modèles de prédiction sur les caractéristiques des bureaux (à ce sujet, difficile d’être plus précis, les instituts gardant jalousement leurs méthodes secrètes !).

Nous allons ici nous intéresser à un moyen de bien sélectionner les bureaux de vote dans lequel faire remonter l’information, en utilisant ce que l’on appelle le sondage équilibré. Le sondage équilibré (voir par exemple ici, attention technique) revient à choisir au hasard un échantillon qui respecte certaines conditions de structure (ce qu’on pourrait appeler, de façon abusive, un échantillon représentatif). Par exemple, lorsque l’on échantillonne des individus, on peut souhaiter avoir le bon nombre d’hommes et de vieux, de jeunes et de plus âgés, etc. Attention ! On ne parle pas ici de méthode de quotas, mais bien d’un sondage aléatoire où on tire certains individus au hasard parmi une population connue mais en faisant en sorte de respecter la structure voulue. Les méthodes de sondage équilibré sont assez complexes, mais elles sont très étudiées en sondage.

Ici, la population, ce sont les bureaux de vote pour l’élection présidentielle 2017 (données ici). Nous allons essayer d’équilibrer notre échantillon sur les votes à l’élection présidentielle de 2012, c’est à dire les choisir de telle sorte que si on avait choisi ces bureaux en 2012, on aurait eu le bon score (ou quasiment le bon score) pour les principaux candidats. L’idée est que le vote en 2017 et celui en 2012 sont assez liés : c’est d’ailleurs une des raisons qui fait que les sondages français sont précis mais souvent proches les uns des autres. Nous allons donc sélectionner 100 bureaux de vote (sur les 70 000 environ) de cette façon, en utilisant la méthode dite du Cube (présente dans le package BalancedSampling de R). Si l’on compare cette méthode par rapport à une sélection complètement au hasard des bureaux, on obtient les résultats suivants en termes d’erreur possible autour de la vraie valeur :

Score Macron Score Lepen
Sondage équilibré ± 1,10% ± 1,51%
Sondage simple ± 1,52% ± 2,24%

On gagne donc bien à mobiliser l’information de la précédente élection par équilibrage. Cependant, on peut aussi l’utiliser dans un second temps, par exemple par des redressements sur les résultats obtenus. De plus, dans mes simulations, j’ai négligé plusieurs paramètres :

  • Certains bureaux n’existaient pas en 2012, ou ont été modifiés entre 2012 et 2017. Il faudrait leur attribuer une valeur “logique” pour 2012.
  • On ne peut disposer que des 200 premiers bulletins de vote sur les bureaux ; cela ne devrait entraîner cependant qu’une différence minime sur la précision avec laquelle on peut annoncer les résultats à 20h
  • Enfin, certains bureaux ne ferment qu’à 20h. Il faudrait donc se limiter à des bureaux qui ne sont pas dans les grandes villes.

Dans tous les cas, cette approche semble intéressante ! On voit que certains instituts ont eu des prédictions assez éloignées du score final (par exemple la prédiction sur TF1, l’image tout en haut de l’article), et cette méthode pourrait permettre de limiter ces erreurs.

Marges d’erreurs, approche modèle et sondages

Si cette élection présidentielle aura permis quelque chose, c’est bien d’avoir des discussions intéressantes sur les sondages ! Cette course à quatre est inédite dans l’histoire de la Vème République, et avec les grosses surprises de l’actualité récente (Trump et Brexit), il est normal de s’interroger sur l’incertitude réelle contenue dans ces données de sondages. Je propose donc de parler aujourd’hui des “marges d’erreurs” (dits aussi “intervalles de confiance à 95%”) qui ont pour but de quantifier cette incertitude. Je proposerai aussi une idée pour estimer une marge d’erreur prenant en compte à la fois les sondages (“le plan”) et l’évolution du paysage politique (“le modèle”).

Les “marges d’erreur” légales

Commençons par le début : aujourd’hui, on utilise une formule simple pour estimer les marges d’erreur d’un sondage : on prend le chiffre estimé et on effectue +/- deux fois l’erreur-type du sondage aléatoire simple de même taille. Malheureusement, ce mode de calcul ne repose sur aucun socle mathématique. La méthode utilisée par les instituts français, le sondage par quotas est en réalité très éloigné d’un sondage à probabilités égales, et les marges d’erreurs calculées ainsi ne correspondent pas à grand chose. C’est embêtant pour deux raisons qui peuvent sembler contradictoire :
– l’erreur aléatoire du sondage par quotas est probablement plus faible que celle utilisée pour calculer les marges (ce qui a amené des débats sur le “herding”)
– l’erreur totale est sans nul doute plus forte, car elle contient d’autres termes en plus de l’aléatoire (“vote caché”, profils difficiles à joindre, formulation des questions non neutres, etc.)

Le plan et le modèle

En plus de ces erreurs de mesure, on comprend bien que l’intention de vote sous-jacente des électeurs peut être elle-même variable ! Pour comprendre mieux ce dont on est en train de parler, on peut utiliser la formalisation suivante, empruntée à Binder et Roberts et illustrer avec le sondage politique :

Chaque observation à un instant t des intentions de vote consiste en un sondage en deux phases :

  • 1ère phase (modèle) : les intentions de vote des français varient en fonction des événements et du temps. Ce phénomène (supposé aléatoire) produit une population (ou “super-population”) de taille N = 47 millions, le nombre d’inscrits sur les listes électorales.
  • 2ème phase (plan) : les sondeurs sélectionnent n personnes de la population (typiquement n = 1000) et mesurent les intentions de vote à l’instant t, avec une certaine erreur de mesure.
    Comme le notait récemment Freakonometrics, il est difficile de vraiment séparer les deux phénomènes, et ne prendre en compte que l’erreur d’échantillonnage comme c’est fait aujourd’hui est très peu satisfaisant.
Approche en deux phases modèle / plan selon Binder – Roberts

Notez que l’avantage de la formalisation en deux phases choisie ici est que l’on a :

Erreur totale = Erreur modèle + Erreur de sondage

Une idée simple pour estimer ces marges

Pour le deuxième terme, faute de mieux, on va conserver l’erreur de sondage telle qu’elle est calculée aujourd’hui (avec la formule du sondage aléatoire simple) : elle sur-estime l’erreur aléatoire mais ça n’est pas plus mal car cela permet de prendre en compte au moins en partie l’erreur de mesure (voir ce post qui en parle de façon plus détaillée)

Le premier terme est le plus intéressant ! Une idée très simple pour prendre en compte le modèle et l’erreur de sondage : mettre à profit les deuxièmes choix des électeurs, information que l’on retrouve dans un certain nombre d’enquêtes cette année (par exemple chez Ipsos, en page 11 de ce document). L’idée est que si des événements se produisent qui peuvent faire évoluer les intentions de vote, les électeurs auront tendance à se reporter sur leur deuxième choix plutôt que de changer totalement d’avis. Petite remarque : il faut bien intégrer dans ces choix potentiels la possibilité de l’abstention ou du vote blanc, qui ont bien entendu une influence sur la précision des estimations.

Cette idée permettrait d’intégrer la composante modèle à peu de frais ! Reste bien sûr la question de la quantification, mais je me dis que des règles naïves peuvent suffire à obtenir des estimations d’erreur de bonne qualité. Je serais très curieux de savoir si une définition pareille permet de construire des intervalles de confiance avec de bonnes propriétés de couverture. Je crains cependant que les données de deuxième choix des candidats soient peu disponibles pour les présidentielles précédentes.

Le modèle de “Too close to call” prend justement en compte ces information, et obtient des marges d’erreur très intéressantes :

Distribution de probabilité des scores – modèle Too close to call

Ces marges reflètent en particulier la relative “sûreté” du score de Marine Le Pen, qui semble posséder une base fidèle ; le score d’Emmanuel Macron semble lui beaucoup plus incertain.