{"word_count": 1210, "character_count": 10553}
La saison 1 de Mad Men se termine avec l'élection de 1960, Nixon contre Kennedy, qui s'est jouée dans un mouchoir de poche.L'autre jour, Benoit Rittaud évoquait sur http://images.math.cnrs.fr/ la possibilité que des candidats soient ex-æquo dans une élection, et les aspects légaux (car visiblement la constitution française n'a pas vraiment prévu ce cas). Le plus intéressant aurait été - à mon avis (mais mon avis est fortement biaisé) - de calculer la probabilité qu'un tel évènement survienne. Par exemple, qu'à l'issu du premier tour, le deuxième et le troisième candidat soient ex-æquo, de telle sorte qu'on ne puisse déterminer qui ira au second tour. Justement, un des commentaire affirme "la probabilité qu’un tel événement arrive est environ l’inverse du nombre typique de voix séparant le deuxième homme (ou femme) du troisième". N'ayant réussi à démontrer ce résultat, je me suis dit qu'on pourrait se lancer dans des simulations pour quantifier cette probabilité.Commençons par supposer qu'il y a quatre candidats (et la possibilité de s'abstenir). On suppose que le taux d'abstention est de 20%, et que les intentions de vote pour chacun des candidats soit de 20%.EXE=function(N=100,ns=1000000){ExE=rep(NA,ns)for(s in 1:ns){M=sample(c("A","B","C","D","E"),size=N,prob=rep(.2,5),replace=TRUE)tb=table(M)Ms=rev(sort(tb[-(names(tb)=="A")]))ExE[s]=(Ms[2]==Ms[3])}return(mean(ExE))}Le soucis est que faire plusieurs centaines de millions de tirages de plus de 40 millions de lois multinomiales pourrait prendre du temps (genre vraiment beaucoup). Une stratégie intuitive peut être de faire des simulations pour une population plus faible, puis d'extrapoler.E=function(N) EXE(N)taille=c(20,50,100,200,500,1000,2000)proba=Vectorize(E)(taille)plot(taille,proba,type="b",log="xy")base=data.frame(y=proba,x=taille)reg=lm(log(y)~I(log(x)),data=base)s2=summary(reg)$sigmam=exp(predict(reg,newdata=data.frame(x=41194689)))*exp(s2^2/2)L'extrapolation linéaire n'étant peut-être pas parfaite, on peut tenter un ajustement quadratique (comme cela a été fait sur la figure ci-dessus)reg2=lm(log(y)~I(log(x))+I(log(x)^2),data=base)s2=summary(reg2)$sigmam2=exp(predict(reg2,newdata=data.frame(x=41194689)))*exp(s2^2/2)La différence de prédiction avec les deux modèles est significative comme on le voit sur le graphique. Toutefois, avoir des ex-æquo avec une très très grande population est tellement rare qu'il faut réellement beaucoup de simulations pour avoir un ordre de grandeur valide. L'extrapolation semble être une alternative valide ici (mais je suis ouvert à toute critique, ou discussion).Maintenant que l'on a une méthodologie (ou presque), utilisons des ordres de grandeurs réalistes. Par exemple en se basant sur l'élection présidentielle de 2002. 41.19 millions d'électeurs, 28.4% d'abstentions, et pour les votes exprimés, un candidat en tête avec 19.9% des votes, un second à 16.8% et le troisième à 16.2% (et les autres plus loin). Les intentions de votes pour les principaux candidats figurent dans la loi multinomiale ci-dessousEXE=function(N=100,ns=1000){ExE=rep(NA,ns)for(s in 1:ns){M=sample(c("abs","JC","JMLP","LJ","FB","AL","JPC","NM","autres"),size=N,prob=c(.284,.1988*.716,.1686*.716,.1618*.716,.0684*.716,.0572*.716,.0533*.716,.0525*.716,.1714104),replace=TRUE)tb=table(M);Ms=rev(sort(tb[-(names(tb)%in%c("abs","autres"))]));ExE[s]=(Ms[2]==Ms[3])}return(mean(ExE))}Si on en croit l'affirmation du commentaire, la probabilité d'avoir eu des ex-æquo (entre le second et le troisième candidat) serait de l'ordre de&#62; 1/(41194689*(.1686*.716-.1618*.716))[1] 4.985823e-06Je dois avouer que les calculs n'ont rien donné (on verra tout à l'heure ce qui se passe si on change la définition d’ex-æquo). Numériquement, les calculs tournent encore (après 4 jours) sur le serveur... Par contre, si la population ne contenait que 10000 électeurs, la probabilité d'avoir des ex-æquo (entre le 2ème et le 3ème candidat) serait de l'ordre de 3 sur 10000 (avec un intervalle de confiance que je n'ai toujours pas calculé)&#62; EXE(10000,100000000)[1] 3.245562e-05A titre d'illustration, on peut regarder ce qui s'est passé, commune par commune en France (les données sont en ligne sur le site du Ministère de l'Intérieur). L'exercice est biaisé parce qu'il y a de l'hétérogénéité spatiale... mais ça permet toujours d'illustrer... Les nombres de voix obtenues, pour le second et le troisième candidat, par commune est le suivant&#62; election=read.table(+ "/Users/UQAM/Documents/Pres2002Tour1.csv",sep=";")+ election=election[-1,]&#62; VOIX=election[,seq(14,74,by=4)]&#62; DEUXIEME=TROISIEME=TOTAL=rep(NA,nrow(VOIX))&#62; for(i in 1:nrow(VOIX)){+ u=rev(sort(as.numeric(as.character(+ election[i,seq(14,74,by=4)]))))+ TOTAL[i]=sum(u)+ DEUXIEME[i]=u[2]+ TROISIEME[i]=u[3]+ }Sur 37000 communes,&#62; nrow(election)[1] 37513ou plutôt sur les 24000 communes qui ont eu plus de 5000 votes exprimés&#62; sum((TOTAL&#62;5000))[1] 24230il y a eu 56 cas avec de deuxième et troisième candidats ex-aequo,&#62; base=data.frame(TOTAL,DEUXIEME,TROISIEME,COMMMUNE=election[,3])&#62; selection=(TOTAL&#62;5000)&#62; sousbase=base[selection,]&#62; sum(sousbase$DEUXIEME==sousbase$TROISIEME)[1] 56On a même le détail,&#62; sousbase[indice,]TOTAL DEUXIEME TROISIEME                     COMMMUNE1134   5819      699       699                        Crouy1507   5386      717       717          Louroux-Bourbonnais2603   6235     1151      1151                  Saint-Peray2916   6346      935       935                        Coucy2970   7529     1413      1413                   Haraucourt5089   5567      717       717                      Vignats(etc). On peut alors regarder, en fonction de la taille des communes (ici le nombre de votes exprimés) la probabilité d'avoir un ex-æquo, dans une commune donnée. On va subdivisionner en 50 classes (pour commencer), et compter à chaque fois le nombre d’ex-æquo,&#62; n=50&#62; niveau=seq(1/(2*n),1-1/(2*n),by=1/n)&#62; base$CLASSE=cut(TOTAL,quantile(TOTAL,seq(0,1,by=1/n)),+ labels=niveau)&#62; base$EXAEQUO=(base$DEUXIEME==base$TROISIEME)*1&#62; m=by(base$EXAEQUO, base$CLASSE, sum)Par exemple pour les 2% des plus grosses villes, on a eu 5 cas de communes avec des ex-aequos------------------------------------------------------------base$CLASSE: 0.99[1] 5Si on regarde plus en détails, ce sont les communes avec plus de 7500 votes exprimés,&#62; quantile(TOTAL,.98)98%7427.76&#62; selection=(TOTAL&#62;quantile(TOTAL,.98))&#62; sousbase=base[selection,]&#62; sum(sousbase$DEUXIEME==sousbase$TROISIEME)[1] 5&#62; indice=which(sousbase$DEUXIEME==sousbase$TROISIEME)&#62; sousbase[indice,]TOTAL DEUXIEME TROISIEME       COMMMUNE CLASSE EXAEQUO2970   7529     1413      1413     Haraucourt   0.99       114359  7496     1392      1392          Renac   0.99       125028  8104     1381      1381         Heloup   0.99       130014  8087     1340      1340         Barnay   0.99       136770  7435      764       764 Pont-sur-Yonne   0.99       1On peut représenter ces nombres de cas d'ex-æquo et faire une régression de Poisson (car on fait du comptage ici),&#62; taille=length(TOTAL)/n&#62; plot(quantile(TOTAL,niveau),m/taille)&#62; sb=data.frame(niveau,exaequo=as.vector(m))&#62; library(splines)&#62; reg=glm(exaequo~bs(niveau),family=poisson,data=sb)&#62; u=seq(0,1,by=.001)&#62; lines(quantile(TOTAL,u),predict(reg,+ newdata=data.frame(niveau=u),+ type="response")/taille,lwd=2,col="red")pour des facilités de lecture, on a en ordonnées des probabilités et en abscisse les tailles moyennes des villesOn peut faire la même chose avec 200 classes,Bref, pour une commune de taille moyenne (disons moyenne supérieure, avec 5000 votes exprimés), on a 2 chances sur 1000 d'avoir un second et un troisième candidat ex-æquo. Ce qui laisserait entendre que pour 40 millions, la probabilité devrait être faible, voire très faible...Bon, au delà du problème conceptuel des ex-æquo (ou légal, car je doute qu'il soit possible d'avoir une égalité parfaite, le Ministère de l'Intérieur ferait un recompte et trouverait forcément un résultat différent), il semble que la probabilité semble beaucoup plus faible que celle obtenue par la règle ad-hoc....Mais peut-être serait-il réaliste de dire que l'élection n'a pas su dégager une majorité (c'est le but d'une élection il me semble) si le nombre de voix séparant deux candidats est trop faible. Par exemple, si moins de 100 voix séparent les candidats, on refait un vote ! Pour revenir sur mon exemple précédant, avec 10000 votants&#62; EXE100(10000,1000000)[1] 0.012641soit une chance sur 100 (je me suis autorisé à faire moins de simulations car l'évènement me semble moins improbable... donc il y a besoin de moins de simulations pour l'observer à l'occasion). Si on va plus loin, et que l'on fait des simulations que l'on projette, comme auparavant, pour estimer la probabilité d'avoir des ex-æquo non pas pour une ville, mais au niveau de la France entière, on est plutôt aux alentours de&#62; (m=exp(predict(reg,newdata=+ data.frame(x=41194689)))*exp(s2^2/2))11.505422e-12pour un modèle linéaire, et&#62; (m=exp(predict(reg2,newdata=+ data.frame(x=41194689)))*exp(s2^2/2))14.074588e-98pour un modèle quadratique (avec la confiance - relativement faible - que l'on peut accorder à une telle projection). Ce qui donne une différence énorme... Si on visualise tout ça,lines(c(1,100000000),exp(predict(reg,newdata=data.frame(x=c(1,100000000))))*exp(s2^2/2),lty=2,col="light blue")que l'on représente en bleu, en vert un ajustement quadratiquelines(10^(seq(1,8,by=.1)),exp(predict(reg,newdata=data.frame(x=10^(seq(1,8,by=.1)))))*exp(s2^2/2),lty=2,col="dark green")alors que le calcul suggéré dans le commentaire donnerait la courbe rouge,lines(c(1,100000000),1/(c(1,100000000)*(.1686*.716-.1618*.716)),col="red",lty=2)Peut-on parler d'évènement improbable ? A titre de comparaison, quand on parle de quelque chose d'improbable, ou qui arrive avec une probabilité infinitésimale, on pense au loto. A l'ancien loto (français), il fallait choisir 6 numéros parmi 49 (sans remise). La probabilité de gagner le gros lot était dePour l'Euromillions, il faut choisir 5 numéros parmi 50 numéros auxquels il faut ajouter les combinaisons possibles avec les Étoiles, soit 2 numéros à choisir parmi 9. La probabilité de gagner le gros lot est alors deBref, tomber sur des ex-æquo lors d'une élection nationale, en France, c'est a priori plus rare que gagner le gros lot en jouant une fois au loto... On peut donc dire qu'il ne devrait pas y avoir d’ex-æquo à l'issu du premier tour !