SlideShare ist ein Scribd-Unternehmen logo
1 von 55
Downloaden Sie, um offline zu lesen
Premiers
pas avec
OpenBUGS
Dhafer
Malouche
Introduction
Initiation `a
OpenBUGS
Utilisation
de OpenBUG `a
partir de R
Etude de
Cas: Les
r´esultats
des
sondages
des urnes
ont-ils
pr´edit les
r´esultats
des
´elections?
Premiers pas avec OpenBUGS
Dhafer Malouche
Ecole Sup´erieure de la Statistique et de l’Analyse de l’information
Cours 2016-2017
Premiers
pas avec
OpenBUGS
Dhafer
Malouche
Introduction
Initiation `a
OpenBUGS
Utilisation
de OpenBUG `a
partir de R
Etude de
Cas: Les
r´esultats
des
sondages
des urnes
ont-ils
pr´edit les
r´esultats
des
´elections?
Introduction
Premiers
pas avec
OpenBUGS
Dhafer
Malouche
Introduction
Initiation `a
OpenBUGS
Utilisation
de OpenBUG `a
partir de R
Etude de
Cas: Les
r´esultats
des
sondages
des urnes
ont-ils
pr´edit les
r´esultats
des
´elections?
Exemple : lancement de satellites
Entre 1980 et 2002 il y a eu 11 lancements de satellites,
3 succ`es et 8 ´echecs.
Objectif : Estimer la probabilit´e de r´eussite d’un
nouveau lanceur, fournir un intervalle de
confiance/cr´edibilit´e.
Premiers
pas avec
OpenBUGS
Dhafer
Malouche
Introduction
Initiation `a
OpenBUGS
Utilisation
de OpenBUG `a
partir de R
Etude de
Cas: Les
r´esultats
des
sondages
des urnes
ont-ils
pr´edit les
r´esultats
des
´elections?
Approche fr´equentiste (Rappel)
Distribution des donn´ees (le mod`ele statistique)
y est le nombre de succ`es parmi n lancements de
satellites,
θ est la probabilit´e de succ`es d’un lancement
y | θ ∼ B(n, θ);
Vraisemblance et estimateur du maximum de
vraisemblance
l(y | θ) = Cy
nθy
(1 − θ)n−y
,
log (l(y | θ)) = y log θ + (n − y) log(1 − θ).
θ = argmaxθ log (l(y | θ))
θ =
y
n
Calcul d’intervalle de confiance (asymptotique n grand) :
θ ± zα/2
1
n
θ(1 − θ) .
Premiers
pas avec
OpenBUGS
Dhafer
Malouche
Introduction
Initiation `a
OpenBUGS
Utilisation
de OpenBUG `a
partir de R
Etude de
Cas: Les
r´esultats
des
sondages
des urnes
ont-ils
pr´edit les
r´esultats
des
´elections?
Approche Bay´esienne
On consid`ere une loi a priori Beta sur θ
π(θ) ∝ θa−1
(1 − θ)b−1
.
Calcul de la loi a posteriori
π(θ | y) ∝ l(y | θ)π(θ)
∝ θy+a−1(1 − θ)n−y+b−1.e
Donc y | θ ∼ Beta(y + a, n − y + b).
La distribution, moyenne, variance, intervalle de
cr´edibilit´e a posteriori ?
Solution OpenBuGS
Premiers
pas avec
OpenBUGS
Dhafer
Malouche
Introduction
Initiation `a
OpenBUGS
Utilisation
de OpenBUG `a
partir de R
Etude de
Cas: Les
r´esultats
des
sondages
des urnes
ont-ils
pr´edit les
r´esultats
des
´elections?
Initiation `a OpenBUGS
Premiers
pas avec
OpenBUGS
Dhafer
Malouche
Introduction
Initiation `a
OpenBUGS
Utilisation
de OpenBUG `a
partir de R
Etude de
Cas: Les
r´esultats
des
sondages
des urnes
ont-ils
pr´edit les
r´esultats
des
´elections?
OpenBUGS
Pr´esentation OpenBUGS fait partie du projet BUGS
(Bayesian inference Using Gibbs Sampler) qui vise `a
rendre simple la pratique des m´ethodes MCMC aux
statisticiens. Il a ´et´e d´evelopp´e par l’unit´e MRC
Biostatistics de l’universit´e de Cambridge.
OpenBUGS est un logiciel libre et gratuit.
Utilisation possible
Via une interface clique-bouton qui permet de
contrˆoler l’analyse,
En utilisant des mod`eles d´efinis par des interfaces
graphiques, appel´es DoddleBUGS,
Via d’autres logiciels tels que R (en particulier via le
package R2OpenBUGS)
Premiers
pas avec
OpenBUGS
Dhafer
Malouche
Introduction
Initiation `a
OpenBUGS
Utilisation
de OpenBUG `a
partir de R
Etude de
Cas: Les
r´esultats
des
sondages
des urnes
ont-ils
pr´edit les
r´esultats
des
´elections?
Algorithme de Gibbs
Supposons que le vecteur param`etre θ est constitu´e de k
composantes, i.e. θT = (θ1, . . . , θk). Les ´etapes de
l’algorithme de Gibbs sont :
1 Choisir des valeurs initiales pour θ
(0)
1 , . . . , θ
(0)
k .
2 G´en´erer θ
(1)
1 selon π θ1 | θ
(0)
2 , . . . , θ
(0)
k , y .
3 G´en´erer θ
(1)
2 selon π θ2 | θ
(1)
1 , θ
(0)
3 . . . , θ
(0)
k , y .
...
4 G´en´erer θ
(1)
k selon π θk | θ
(1)
1 , θ
(1)
2 . . . , θ
(1)
k−1, y .
R´ep´eter l’´etape 2 plusieurs milliers de fois.
Premiers
pas avec
OpenBUGS
Dhafer
Malouche
Introduction
Initiation `a
OpenBUGS
Utilisation
de OpenBUG `a
partir de R
Etude de
Cas: Les
r´esultats
des
sondages
des urnes
ont-ils
pr´edit les
r´esultats
des
´elections?
Exemple de code OpenBUGS
Le mod`ele :
model{
for(i in 1:n){
y[i] ˜ dbern(p)
}
p˜dbeta(a,b)
}
Les donn´ees
> list(n=11,y=c(0,0,0,0,0,0,1,0,0,1,0),a=2,b=3)
Les valeurs initiales.
> list(p=.2)
> list(p=.9)
> list(p=.4)
Premiers
pas avec
OpenBUGS
Dhafer
Malouche
Introduction
Initiation `a
OpenBUGS
Utilisation
de OpenBUG `a
partir de R
Etude de
Cas: Les
r´esultats
des
sondages
des urnes
ont-ils
pr´edit les
r´esultats
des
´elections?
Les ´etapes de l’ex´ecution sous OpenBUGS
1 V´erifier le mod`ele,
2 Charger les donn´ees,
3 Sp´ecifier le nombre de chaˆınes MCMC,
4 Compiler le mod`ele,
5 Charger les conditions initiales,
6 G´en´erer les r´ealisations “burnin”,
7 Sp´ecifier les param`etres/quantit´es `a conserver,
8 G´en´erer les r´ealisations `a conserver,
9 V´erifier la convergence et mise en place des r´esultats.
Premiers
pas avec
OpenBUGS
Dhafer
Malouche
Introduction
Initiation `a
OpenBUGS
Utilisation
de OpenBUG `a
partir de R
Etude de
Cas: Les
r´esultats
des
sondages
des urnes
ont-ils
pr´edit les
r´esultats
des
´elections?
D’autres Exemples:
Jet d’une pi`ece de monnaie. On jette une pi`ece de
monnaie 8 fois dont la probabilit´e d’avoir Pile est de 0.5.
Quelle est la probabilit´es de voir Pile au plus 2 fois.
Le mod`ele math´ematique
Y ∼ Binomial(0.5, 8)
Il s’agit d’estimer P(Y ≤ 2).
Le mod`ele sous OpenBugs
model{
Y ˜ dbin(0.5,8)
P <- step(2.5-Y)
}
Premiers
pas avec
OpenBUGS
Dhafer
Malouche
Introduction
Initiation `a
OpenBUGS
Utilisation
de OpenBUG `a
partir de R
Etude de
Cas: Les
r´esultats
des
sondages
des urnes
ont-ils
pr´edit les
r´esultats
des
´elections?
Comment faire fonctionner ce code dans
OpenBUGS
1 Ouvrir une nouvelle fenˆetre dans OpenBUGS, File>New
2 Copier/Coller le code ci-dessus.
3 Model>Specification
4 Select model et clique sur check model
5 clique sur compile ensuite gen inits.
6 Model>Update et clique sur update
7 Inference> Samples et introduit le param`etre P dans
set
8 Tous les boutons de la derni`ere interface vont s’allumer,
donc vous pouvez avoir votre estimation.
En effet, la fonction step va prendre la valeur si 2.5-Y est
≥ 0 et 0 sinon. Donc P est ´egal `a si Y est plus petit o‘u ´egal `a
1.
Premiers
pas avec
OpenBUGS
Dhafer
Malouche
Introduction
Initiation `a
OpenBUGS
Utilisation
de OpenBUG `a
partir de R
Etude de
Cas: Les
r´esultats
des
sondages
des urnes
ont-ils
pr´edit les
r´esultats
des
´elections?
Utilisation de OpenBUGS pour simuler une
distribution
Une loi de Student Supposons qu’on voudrait simuler une loi de
Student de moyenne 10, de pr´ecision 2 et de ddl 4.
model{
y ˜ dt(10,2,4)
}
Une transformation de la loi Normale. On consid`ere
Z ∼ N(0, 1), on veut simuler Y = (2Z + 1)3
et estimer P(Y > 10)
model{
z ˜ dnorm(0,1)
y <- pow(2*z+1,3)
p <- step(y-10)
}
Premiers
pas avec
OpenBUGS
Dhafer
Malouche
Introduction
Initiation `a
OpenBUGS
Utilisation
de OpenBUG `a
partir de R
Etude de
Cas: Les
r´esultats
des
sondages
des urnes
ont-ils
pr´edit les
r´esultats
des
´elections?
Combien de r´eparations?
Supposons que le coˆut de r´eparation a une distribution
Gamma de moyenne 100 TND et d’´ecart-type 50 TND. On
veut r´epondre `a la question, combien de fois peut-on r´eparer
avec 1000 TND?
1 Montrer qu’une Gamma(4,0.04) a une moyenne 100 et
un ´ecart-type 50 TND
2 Ecrire le code ‘OpenBUGS‘ permettant de calculer ce
nombre.
On consid`ere Yi, i = 1, . . . , I variables al´eatoires de loi
Gamma(4,0.04) et il s’agit de chercher M tel que
M
i=1
Yi < 1000
.
Premiers
pas avec
OpenBUGS
Dhafer
Malouche
Introduction
Initiation `a
OpenBUGS
Utilisation
de OpenBUG `a
partir de R
Etude de
Cas: Les
r´esultats
des
sondages
des urnes
ont-ils
pr´edit les
r´esultats
des
´elections?
Le code OpenBUGS
On prendra I = 20, on va calculer la probabilit´e de faire plus
des 12 r´eparations
model{
for(i in 1:20) {
Y[i] ˜ dgamma(4,0.04)
}
cum[1] <- Y[1]
for(i in 2:20) {
cum[i] <- cum[i-1]+Y[i]
}
for(i in 1:20) {
cum.step[i] <- i*step(1000- cum[i])
}
number <- rank(cum.step[],20) ## le maximum dans cum.step
P <- step(number-12)
}
rank(v,s) s’applique au vecteur v et et au nombre s et calcule le
nombre composantes dans v qui sont plus petites que s
Premiers
pas avec
OpenBUGS
Dhafer
Malouche
Introduction
Initiation `a
OpenBUGS
Utilisation
de OpenBUG `a
partir de R
Etude de
Cas: Les
r´esultats
des
sondages
des urnes
ont-ils
pr´edit les
r´esultats
des
´elections?
Utilisation de OpenBUG `a partir de R
Premiers
pas avec
OpenBUGS
Dhafer
Malouche
Introduction
Initiation `a
OpenBUGS
Utilisation
de OpenBUG `a
partir de R
Etude de
Cas: Les
r´esultats
des
sondages
des urnes
ont-ils
pr´edit les
r´esultats
des
´elections?
Exemple avec R2OpenBUGS
Pour utiliser OpenBUGS il faut installer dans R le package
R2OpenBUGS.
Consid´erons le probl`eme suivant: On jette deux pi`eces de
monnaie dont ne connaˆıt pas la probabilit´e d’avoir Pile.
Les deux pi`eces sont jet´ees 86 fois. Pour la premi`ere on a
obtenu 83 fois Pile et pour la deuxi`eme on obtenu 72 fois
Pile. Comparer les deux probabilit´es d’avoir Pile.
Premiers
pas avec
OpenBUGS
Dhafer
Malouche
Introduction
Initiation `a
OpenBUGS
Utilisation
de OpenBUG `a
partir de R
Etude de
Cas: Les
r´esultats
des
sondages
des urnes
ont-ils
pr´edit les
r´esultats
des
´elections?
Exemple avec R2OpenBUGS
D’abord on ´ecrit les donn´ees dans R.
> donnees=list(r=c(83,72),n=c(86,86))
Le mod`ele sous OpenBUGS
model{
for(i in 1:2){
r[i] ˜ dbin(p[i],n[i])
}
for (i in 1:2){ p[i] ˜ dunif(0,1)}
delta <- p[1] - p[2]
delta.up <- step(delta)
lambda <- log( (p[1]/(1-p[1])) / (p[2]/(1-p[2])) );
lambda.up <- step(lambda)
}
Premiers
pas avec
OpenBUGS
Dhafer
Malouche
Introduction
Initiation `a
OpenBUGS
Utilisation
de OpenBUG `a
partir de R
Etude de
Cas: Les
r´esultats
des
sondages
des urnes
ont-ils
pr´edit les
r´esultats
des
´elections?
Exemple avec R2OpenBUGS
Le code pour g´en´erer le mod`ele `a partir de R sans avoir
recours `a OpenBUGS :
On cr´ee un fichier exempleBinom.txt qui contient le code BUGS
> sink('exempleBinom.txt')
> cat("
+ model{
+ for(i in 1:2){
+ r[i] ˜ dbin(p[i],n[i])
+ }
+ for (i in 1:2){ p[i] ˜ dunif(0,1)}
+ delta <- p[1] - p[2]
+ delta.up <- step(delta)
+ lambda <- log( (p[1]/(1-p[1])) / (p[2]/(1-p[2])) );
+ lambda.up <- step(lambda)
+ }
+ ",fill=T)
> sink()
Premiers
pas avec
OpenBUGS
Dhafer
Malouche
Introduction
Initiation `a
OpenBUGS
Utilisation
de OpenBUG `a
partir de R
Etude de
Cas: Les
r´esultats
des
sondages
des urnes
ont-ils
pr´edit les
r´esultats
des
´elections?
Exemple avec R2OpenBUGS
On cr´ee une variable avec le nom du fichier.
> filename<-"exempleBinom.txt"
Les valeurs initiales
> inits<-function(){
+ inits=list(p=runif(2,0,1))
+ }
Les param`etres `a estimer
> params <- c('p','delta.up','lambda.up')
Enfin l’ex´ecution sous R
> library(R2OpenBUGS)
> outBinom <-bugs(donnees,inits,params,filename,codaPkg=F,n.thin =1,
+ n.iter=10000,debug=F,n.chains = 3,
+ working.directory=getwd(),
Premiers
pas avec
OpenBUGS
Dhafer
Malouche
Introduction
Initiation `a
OpenBUGS
Utilisation
de OpenBUG `a
partir de R
Etude de
Cas: Les
r´esultats
des
sondages
des urnes
ont-ils
pr´edit les
r´esultats
des
´elections?
Exemple avec R2OpenBUGS
Le r´esultat
> outBinom
Inference for Bugs model at "exempleBinom.txt",
Current: 3 chains, each with 10000 iterations (first 5000 discarded)
Cumulative: n.sims = 15000 iterations saved
mean sd 2.5% 25% 50% 75% 97.5% Rhat n.eff
p[1] 1.0 0 0.9 0.9 1.0 1.0 1.0 1 15000
p[2] 0.8 0 0.7 0.8 0.8 0.9 0.9 1 15000
delta.up 1.0 0 1.0 1.0 1.0 1.0 1.0 1 15000
lambda.up 1.0 0 1.0 1.0 1.0 1.0 1.0 1 15000
deviance 9.3 2 7.3 7.9 8.7 10.1 14.7 1 15000
For each parameter, n.eff is a crude measure of effective sample size,
and Rhat is the potential scale reduction factor (at convergence, Rhat=1).
DIC info (using the rule, pD = Dbar-Dhat)
pD = 1.8 and DIC = 11.0
DIC is an estimate of expected predictive error (lower deviance is better).
Premiers
pas avec
OpenBUGS
Dhafer
Malouche
Introduction
Initiation `a
OpenBUGS
Utilisation
de OpenBUG `a
partir de R
Etude de
Cas: Les
r´esultats
des
sondages
des urnes
ont-ils
pr´edit les
r´esultats
des
´elections?
Exemple avec R2OpenBUGS
Notons que le param`etre lambda est le logarithme du odds
ratio, Si lambda est :
proche de 0, on a la mˆeme chance d’avoir Pile avec les
deux pi`eces. ;
sup´erieur `a 0, il est plus fr´equente d’avoir Pile avec la
pi`ece 1 qu’avec la pi`ece 2 ;
bien sup´erieur `a 0, il est beaucoup plus fr´equente d’avoir
Pile avec la pi`ece 1 qu’avec la pi`ece 2 ;
inf´erieur `a 0, il est moins fr´equente d’avoir Pile avec la
pi`ece 1 qu’avec la pi`ece 2 ;
proche de -∞, il est beaucoup moins fr´equente d’avoir
Pile avec la pi`ece 1 qu’avec la pi`ece 2 ;
Premiers
pas avec
OpenBUGS
Dhafer
Malouche
Introduction
Initiation `a
OpenBUGS
Utilisation
de OpenBUG `a
partir de R
Etude de
Cas: Les
r´esultats
des
sondages
des urnes
ont-ils
pr´edit les
r´esultats
des
´elections?
Exemple avec R2OpenBUGS
Les param`etres estim´es dans l’objet outBinom
deviance : Si y = (y1, . . . , yn) est le vecteur des donn´ees
dont on suppose g´en´er´e par une loi de probabilit´e de densit´e
f(y | θ). Alors la fonction vraisemblance
l(y | θ) =
n
i=1
f(yi | θ)
Donc la deviance s’exprime par
D(θ) = − log l(y | θ)
Dans notre cas : y1 ∼Binom(N, p1) et y2 ∼Binom(N, p2),
donc
l(y | p1, p2) ∝
p1
1 − p1
y1
p2
1 − p2
y2
Premiers
pas avec
OpenBUGS
Dhafer
Malouche
Introduction
Initiation `a
OpenBUGS
Utilisation
de OpenBUG `a
partir de R
Etude de
Cas: Les
r´esultats
des
sondages
des urnes
ont-ils
pr´edit les
r´esultats
des
´elections?
Exemple avec R2OpenBUGS
DIC : Deviance Information Criteria
La moyenne ¯D = Eθ
[D(θ)] est une mesure de l’ajustement du mod`ele aux
donn´ees; plus ¯D est grand, plus l’ajustement est mauvais.
pD est une estimation du nombre effective des param`etres du mod`ele :
pD = ¯D − D(¯θ), plus les valeurs du pD est ´elev´e, plus le mod`ele ajuste au
mieux les donn´ees. C’est pour cela qu’on d´efinit une p´enalisation `a la
vraisemblance.
DIC se calcule
DIC = pD + ¯D = D(¯θ) + 2pD
Des mod`eles avec des valeurs faibles du DIC sont les plus pr´ef´er´es. Comme
¯D d´ecroit quand le nombre de param`etres dans le mod`ele croit, le pD va
compenser cette effet en favorisant les mod`eles avec un petit nombre de
param`etres.
Premiers
pas avec
OpenBUGS
Dhafer
Malouche
Introduction
Initiation `a
OpenBUGS
Utilisation
de OpenBUG `a
partir de R
Etude de
Cas: Les
r´esultats
des
sondages
des urnes
ont-ils
pr´edit les
r´esultats
des
´elections?
Estimation des densit´es a posteriori
Les probabilit´es
> library(reshape2)
> dt=melt(outBinom$sims.matrix[,1:2])
> library(ggplot2)
> gr<-ggplot(data=dt,aes(x=value,fill=Var2,colour=Var2))+geom_density(alpha=.5)
> gr
Premiers
pas avec
OpenBUGS
Dhafer
Malouche
Introduction
Initiation `a
OpenBUGS
Utilisation
de OpenBUG `a
partir de R
Etude de
Cas: Les
r´esultats
des
sondages
des urnes
ont-ils
pr´edit les
r´esultats
des
´elections?
Estimation des densit´es a posteriori
Les probabilit´es
0
5
10
15
20
0.7 0.8 0.9 1.0
density
Var2
p[1]
p[2]
Premiers
pas avec
OpenBUGS
Dhafer
Malouche
Introduction
Initiation `a
OpenBUGS
Utilisation
de OpenBUG `a
partir de R
Etude de
Cas: Les
r´esultats
des
sondages
des urnes
ont-ils
pr´edit les
r´esultats
des
´elections?
Estimation des densit´es a posteriori
delta.up
> dt=data.frame(outBinom$sims.matrix[,3:4])
> gr<-ggplot(data=dt,aes(x=delta.up))+geom_density(alpha=.5,fill="pink")
> gr
Premiers
pas avec
OpenBUGS
Dhafer
Malouche
Introduction
Initiation `a
OpenBUGS
Utilisation
de OpenBUG `a
partir de R
Etude de
Cas: Les
r´esultats
des
sondages
des urnes
ont-ils
pr´edit les
r´esultats
des
´elections?
Estimation des densit´es a posteriori
delta.up
0
20
40
60
0.00 0.25 0.50 0.75 1.00
density
Premiers
pas avec
OpenBUGS
Dhafer
Malouche
Introduction
Initiation `a
OpenBUGS
Utilisation
de OpenBUG `a
partir de R
Etude de
Cas: Les
r´esultats
des
sondages
des urnes
ont-ils
pr´edit les
r´esultats
des
´elections?
Estimation des densit´es a posteriori
lambda.up
> gr<-ggplot(data=dt,aes(x=lambda.up))+geom_density(alpha=.5,fill="pink")
> gr
Premiers
pas avec
OpenBUGS
Dhafer
Malouche
Introduction
Initiation `a
OpenBUGS
Utilisation
de OpenBUG `a
partir de R
Etude de
Cas: Les
r´esultats
des
sondages
des urnes
ont-ils
pr´edit les
r´esultats
des
´elections?
Estimation des densit´es a posteriori
lambda.up
0
20
40
60
0.00 0.25 0.50 0.75 1.00
density
Premiers
pas avec
OpenBUGS
Dhafer
Malouche
Introduction
Initiation `a
OpenBUGS
Utilisation
de OpenBUG `a
partir de R
Etude de
Cas: Les
r´esultats
des
sondages
des urnes
ont-ils
pr´edit les
r´esultats
des
´elections?
Exercice : Comparaison de deux mod`eles
bay´esiens
On consid`ere les mod`eles bay´esiens suivants :
Mod`ele M1 : y ∼ Binomial(n, τ) o`u τ ∼ Beta(a, b)
Mod`ele M2 :y ∼ Binomial(n, τ) o`u τ =
1
p + q + 1
o`u
p, q ∼ Uniform[0, 1].
Ecrire les deux codes BUGS et R pour g´en´erer la loi a
posteriori des mod`eles bay´esiens M1 et M2. Comparer les
DIC, pD et la d´eviance des deux mod`eles, Conclure?
Premiers
pas avec
OpenBUGS
Dhafer
Malouche
Introduction
Initiation `a
OpenBUGS
Utilisation
de OpenBUG `a
partir de R
Etude de
Cas: Les
r´esultats
des
sondages
des urnes
ont-ils
pr´edit les
r´esultats
des
´elections?
Etude de Cas: Les r´esultats des sondages
des urnes ont-ils pr´edit les r´esultats des
´elections?
Premiers
pas avec
OpenBUGS
Dhafer
Malouche
Introduction
Initiation `a
OpenBUGS
Utilisation
de OpenBUG `a
partir de R
Etude de
Cas: Les
r´esultats
des
sondages
des urnes
ont-ils
pr´edit les
r´esultats
des
´elections?
Probl´ematique
En D´ecembre 2014, il y a eu les premiers ´elections
pr´esidentielles “libres et d´emocratiques” en Tunisie. Ces
´elections se sont d´eroul´ees en deux tours.
Durant ces derni`eres ´elections plusieurs candidats se sont
pr´esent´es au 1er tour. Les deux gagnants ce 1er tour
sont : Moncef Marzouki et B´eji Caid Essebsi.
Plusieurs bureaux de sondages locaux ont fait des
sondages aux sorties des urnes. Nous voulons pr´esenter
dans ce travail une comparaison statistique des r´esultats
de ces sondages avec les vrais r´esultats des ´elections.
Premiers
pas avec
OpenBUGS
Dhafer
Malouche
Introduction
Initiation `a
OpenBUGS
Utilisation
de OpenBUG `a
partir de R
Etude de
Cas: Les
r´esultats
des
sondages
des urnes
ont-ils
pr´edit les
r´esultats
des
´elections?
R´esultats des sondages sorti des urnes
Rappelons les principaux r´esultats pr´esent´es
Bureau BC Marzouki Hammami Hamdi Riahi les autres
Sigma 42.70 32.60% 9.50% 3.90% 6.70% 4.60%
Emraude 44.20 31.20% 10.90% 2.10% 6.90% 4.70%
3C 47.80 26.90% 10.20% 3.50% 5.40% 6.20%
ISIE 39.46 33.43% 7.82% 5.75% 5.55% 7.99%
Premiers
pas avec
OpenBUGS
Dhafer
Malouche
Introduction
Initiation `a
OpenBUGS
Utilisation
de OpenBUG `a
partir de R
Etude de
Cas: Les
r´esultats
des
sondages
des urnes
ont-ils
pr´edit les
r´esultats
des
´elections?
Le mod`ele statistique.
Chaque bureau de sondage a d´eclar´e avoir questionn´e
autour de 10 000 personnes aux sorties des urnes et donc
l’´echantillon observ´es est une observation d’une loi
multinomiale
X = (X1, . . . , XI) ∼ Mulitinomial(N, p1, . . . , pI)
ou est N = 10000 est le nombre des personnes
interrog´ees et p1, . . . , pI sont les probabilit´es recherch´ees
et qui les % de votes attendus des candidats. La somme
des pI est ´evidement ´egale `a 1 et I
i=1 xI = N.
Donc
P(X = x) =
N!
x1! . . . xI!
px1
1 . . . pxI
I
Premiers
pas avec
OpenBUGS
Dhafer
Malouche
Introduction
Initiation `a
OpenBUGS
Utilisation
de OpenBUG `a
partir de R
Etude de
Cas: Les
r´esultats
des
sondages
des urnes
ont-ils
pr´edit les
r´esultats
des
´elections?
Objectif
On va examiner si les r´esultats des sondages sont “r´eellement”
“proches” des vrais r´esultats des ´elections ?
Premiers
pas avec
OpenBUGS
Dhafer
Malouche
Introduction
Initiation `a
OpenBUGS
Utilisation
de OpenBUG `a
partir de R
Etude de
Cas: Les
r´esultats
des
sondages
des urnes
ont-ils
pr´edit les
r´esultats
des
´elections?
Mise en oeuvre sous R (M´ethode fr´equentiste)
Consiste `a estimer les probabilit´es et donner leurs IC.
On utilisera le package MultinomialCI
> pSigma=c(42.7,32.6,9.5,3.9,6.7)
> pEm=c(44.2,31.2,10.9,2.1,6.9)
> p3c=c(47.8,26.9,10.2,3.5,5.4)
> pISIE=c(39.46,33.43,7.82,5.75,5.55)
> pSigma=c(pSigma,100-sum(pSigma))
> pEm=c(pEm,100-sum(pEm))
> p3c=c(p3c,100-sum(p3c))
> pISIE=c(pISIE,100-sum(pISIE))
Premiers
pas avec
OpenBUGS
Dhafer
Malouche
Introduction
Initiation `a
OpenBUGS
Utilisation
de OpenBUG `a
partir de R
Etude de
Cas: Les
r´esultats
des
sondages
des urnes
ont-ils
pr´edit les
r´esultats
des
´elections?
Mise en oeuvre sous R (M´ethode fr´equentiste)
> library(MultinomialCI)
> N=10000 ## Sample size
> ySigma=N*pSigma/100
> ySigma
[1] 4270 3260 950 390 670 460
> yEm=N*pEm/100
> yEm
[1] 4420 3120 1090 210 690 470
> y3c=N*p3c/100
> y3c
[1] 4780 2690 1020 350 540 620
Premiers
pas avec
OpenBUGS
Dhafer
Malouche
Introduction
Initiation `a
OpenBUGS
Utilisation
de OpenBUG `a
partir de R
Etude de
Cas: Les
r´esultats
des
sondages
des urnes
ont-ils
pr´edit les
r´esultats
des
´elections?
Mise en oeuvre sous R (M´ethode fr´equentiste)
> n=length(ySigma);n
[1] 6
> ci.Sigma=multinomialCI(ySigma,alpha = .05)
> rownames(ci.Sigma)=c("BCE","Marzouki","Hammami",
+ "Hamdi","Riahi","Les autres")
> ci.Sigma
[,1] [,2]
BCE 0.4166 0.43755426
Marzouki 0.3156 0.33655426
Hammami 0.0846 0.10555426
Hamdi 0.0286 0.04955426
Riahi 0.0566 0.07755426
Les autres 0.0356 0.05655426
Premiers
pas avec
OpenBUGS
Dhafer
Malouche
Introduction
Initiation `a
OpenBUGS
Utilisation
de OpenBUG `a
partir de R
Etude de
Cas: Les
r´esultats
des
sondages
des urnes
ont-ils
pr´edit les
r´esultats
des
´elections?
Mise en oeuvre sous R (M´ethode fr´equentiste)
> ci.Em=multinomialCI(yEm,alpha = .05)
> rownames(ci.Em)=c("BCE","Marzouki","Hammami",
+ "Hamdi","Riahi","Les autres")
> ci.Em
[,1] [,2]
BCE 0.4316 0.45251734
Marzouki 0.3016 0.32251734
Hammami 0.0986 0.11951734
Hamdi 0.0106 0.03151734
Riahi 0.0586 0.07951734
Les autres 0.0366 0.05751734
Premiers
pas avec
OpenBUGS
Dhafer
Malouche
Introduction
Initiation `a
OpenBUGS
Utilisation
de OpenBUG `a
partir de R
Etude de
Cas: Les
r´esultats
des
sondages
des urnes
ont-ils
pr´edit les
r´esultats
des
´elections?
Mise en oeuvre sous R (M´ethode fr´equentiste)
> ci.3c=multinomialCI(y3c,alpha = .05)
> rownames(ci.3c)=c("BCE","Marzouki","Hammami",
+ "Hamdi","Riahi","Les autres")
> ci.3c
[,1] [,2]
BCE 0.4677 0.48831591
Marzouki 0.2587 0.27931591
Hammami 0.0917 0.11231591
Hamdi 0.0247 0.04531591
Riahi 0.0437 0.06431591
Les autres 0.0517 0.07231591
Premiers
pas avec
OpenBUGS
Dhafer
Malouche
Introduction
Initiation `a
OpenBUGS
Utilisation
de OpenBUG `a
partir de R
Etude de
Cas: Les
r´esultats
des
sondages
des urnes
ont-ils
pr´edit les
r´esultats
des
´elections?
Mise en oeuvre sous R (M´ethode fr´equentiste)
ISIE
BCE
Marzouki
Hammami
Hamdi
Riahi
Les autres
0% 10% 20% 30% 40% 50%
3C Em Sigma
Premiers
pas avec
OpenBUGS
Dhafer
Malouche
Introduction
Initiation `a
OpenBUGS
Utilisation
de OpenBUG `a
partir de R
Etude de
Cas: Les
r´esultats
des
sondages
des urnes
ont-ils
pr´edit les
r´esultats
des
´elections?
Mise en oeuvre sous R (M´ethode bay´esienne).
Le vecteur des param`etres p = (p1, . . . , pI) une loi a priori
qui est la loi de Dirichlet de param´etr´es tous ´egaux `a 1.
model {
x[1:n] ˜ dmulti(p[], N)
p[1:n] ˜ ddirch(alpha[])
for (k in 1:n) {
alpha[k] <- 1
}
}
Premiers
pas avec
OpenBUGS
Dhafer
Malouche
Introduction
Initiation `a
OpenBUGS
Utilisation
de OpenBUG `a
partir de R
Etude de
Cas: Les
r´esultats
des
sondages
des urnes
ont-ils
pr´edit les
r´esultats
des
´elections?
Le code R sous OpenBUGS
> sink('Modelmultinom.txt')
> cat("model {
+ x[1:n] ˜ dmulti(p[], N)
+ p[1:n] ˜ ddirch(alpha[])
+
+ for (k in 1:n) {
+ alpha[k] <- 1
+ }
+ }
+ ")
> sink()
Premiers
pas avec
OpenBUGS
Dhafer
Malouche
Introduction
Initiation `a
OpenBUGS
Utilisation
de OpenBUG `a
partir de R
Etude de
Cas: Les
r´esultats
des
sondages
des urnes
ont-ils
pr´edit les
r´esultats
des
´elections?
Mise en oeuvre sous R (M´ethode bay´esienne).
> library(R2OpenBUGS)
> ##
> filename<-'Modelmultinom.txt'
>
> inits <- function(){
+ p<-runif(n)
+ p<-p/sum(p)
+ list(p=p)
+ }
> ###
> params<-"p"
Premiers
pas avec
OpenBUGS
Dhafer
Malouche
Introduction
Initiation `a
OpenBUGS
Utilisation
de OpenBUG `a
partir de R
Etude de
Cas: Les
r´esultats
des
sondages
des urnes
ont-ils
pr´edit les
r´esultats
des
´elections?
Mise en oeuvre sous R (M´ethode bay´esienne).
> donneesSigma<-list(x=ySigma,N=N,n=n)
> donnees3c<-list(x=y3c,N=N,n=n)
> outSigma <-bugs(donneesSigma,inits,params,
+ filename, n.iter=100000,
+ debug=F,n.chains = 1,
+ working.directory=getwd())
> out3c <-bugs(donnees3c,inits,params,
+ filename,n.iter=100000,
+ debug=F,n.chains = 1,
+ working.directory=getwd())
Premiers
pas avec
OpenBUGS
Dhafer
Malouche
Introduction
Initiation `a
OpenBUGS
Utilisation
de OpenBUG `a
partir de R
Etude de
Cas: Les
r´esultats
des
sondages
des urnes
ont-ils
pr´edit les
r´esultats
des
´elections?
R´esum´e des r´esultats des CM.
Les r´esultats de Sigma-Conseil
> library(R2OpenBUGS)
> outSigma
Inference for Bugs model at "Modelmultinom.txt",
Current: 1 chains, each with 1e+05 iterations (first 50000 discarded)
Cumulative: n.sims = 50000 iterations saved
mean sd 2.5% 25% 50% 75% 97.5%
p[1] 0.4 0.0 0.4 0.4 0.4 0.4 0.4
p[2] 0.3 0.0 0.3 0.3 0.3 0.3 0.3
p[3] 0.1 0.0 0.1 0.1 0.1 0.1 0.1
p[4] 0.0 0.0 0.0 0.0 0.0 0.0 0.0
p[5] 0.1 0.0 0.1 0.1 0.1 0.1 0.1
p[6] 0.0 0.0 0.0 0.0 0.0 0.0 0.1
deviance 46.9 3.2 42.7 44.6 46.2 48.5 54.8
DIC info (using the rule, pD = Dbar-Dhat)
pD = 5.0 and DIC = 51.9
DIC is an estimate of expected predictive error (lower deviance is bette
Premiers
pas avec
OpenBUGS
Dhafer
Malouche
Introduction
Initiation `a
OpenBUGS
Utilisation
de OpenBUG `a
partir de R
Etude de
Cas: Les
r´esultats
des
sondages
des urnes
ont-ils
pr´edit les
r´esultats
des
´elections?
R´esum´e des r´esultats des CM.
Les r´esultats de EM-Consulting
> outEm
Inference for Bugs model at "Modelmultinom.txt",
Current: 1 chains, each with 1e+05 iterations (first 50000 discarded)
Cumulative: n.sims = 50000 iterations saved
mean sd 2.5% 25% 50% 75% 97.5%
p[1] 0.4 0.0 0.4 0.4 0.4 0.4 0.5
p[2] 0.3 0.0 0.3 0.3 0.3 0.3 0.3
p[3] 0.1 0.0 0.1 0.1 0.1 0.1 0.1
p[4] 0.0 0.0 0.0 0.0 0.0 0.0 0.0
p[5] 0.1 0.0 0.1 0.1 0.1 0.1 0.1
p[6] 0.0 0.0 0.0 0.0 0.0 0.0 0.1
deviance 46.4 3.1 42.3 44.1 45.8 48.1 54.3
DIC info (using the rule, pD = Dbar-Dhat)
pD = 5.0 and DIC = 51.4
DIC is an estimate of expected predictive error (lower deviance is bette
Premiers
pas avec
OpenBUGS
Dhafer
Malouche
Introduction
Initiation `a
OpenBUGS
Utilisation
de OpenBUG `a
partir de R
Etude de
Cas: Les
r´esultats
des
sondages
des urnes
ont-ils
pr´edit les
r´esultats
des
´elections?
R´esum´e des r´esultats des CM.
Les r´esultats de 3C-Etudes
> out3c
Inference for Bugs model at "Modelmultinom.txt",
Current: 1 chains, each with 1e+05 iterations (first 50000 discarded)
Cumulative: n.sims = 50000 iterations saved
mean sd 2.5% 25% 50% 75% 97.5%
p[1] 0.5 0.0 0.5 0.5 0.5 0.5 0.5
p[2] 0.3 0.0 0.3 0.3 0.3 0.3 0.3
p[3] 0.1 0.0 0.1 0.1 0.1 0.1 0.1
p[4] 0.0 0.0 0.0 0.0 0.0 0.0 0.0
p[5] 0.1 0.0 0.0 0.1 0.1 0.1 0.1
p[6] 0.1 0.0 0.1 0.1 0.1 0.1 0.1
deviance 46.8 3.2 42.7 44.5 46.2 48.5 54.7
DIC info (using the rule, pD = Dbar-Dhat)
pD = 5.0 and DIC = 51.8
DIC is an estimate of expected predictive error (lower deviance is bette
Premiers
pas avec
OpenBUGS
Dhafer
Malouche
Introduction
Initiation `a
OpenBUGS
Utilisation
de OpenBUG `a
partir de R
Etude de
Cas: Les
r´esultats
des
sondages
des urnes
ont-ils
pr´edit les
r´esultats
des
´elections?
Repr´esentation des densit´es des lois a postiori.
(BCE)
0
20
40
60
80
39% 42% 45% 48%
BC.Essebsi
density
Bureau
e3c
Em
Sigma
Premiers
pas avec
OpenBUGS
Dhafer
Malouche
Introduction
Initiation `a
OpenBUGS
Utilisation
de OpenBUG `a
partir de R
Etude de
Cas: Les
r´esultats
des
sondages
des urnes
ont-ils
pr´edit les
r´esultats
des
´elections?
Repr´esentation des densit´es des lois a postiori.
(Marzouki)
0
25
50
75
25.0% 27.5% 30.0% 32.5% 35.0%
M.Marzouki
density
Bureau
e3c
Em
Sigma
Premiers
pas avec
OpenBUGS
Dhafer
Malouche
Introduction
Initiation `a
OpenBUGS
Utilisation
de OpenBUG `a
partir de R
Etude de
Cas: Les
r´esultats
des
sondages
des urnes
ont-ils
pr´edit les
r´esultats
des
´elections?
Repr´esentation des densit´es des lois a postiori.
(Hammami)
0
50
100
8% 9% 10% 11% 12%
H.Hammami
density
Bureau
e3c
Em
Sigma
Premiers
pas avec
OpenBUGS
Dhafer
Malouche
Introduction
Initiation `a
OpenBUGS
Utilisation
de OpenBUG `a
partir de R
Etude de
Cas: Les
r´esultats
des
sondages
des urnes
ont-ils
pr´edit les
r´esultats
des
´elections?
Utilisation du package MCMCpack
C’est un package compl´etement int´egr´e dans R
Il n’y a pas besoin de faire intervenir un logicil externe `a
R
Il contient des fonctions qui simules des MCMC de lois a
posteriori des mode`eles les plus connus : Bernoulli,
Multinomiale, R´egression, Logit. . .
Premiers
pas avec
OpenBUGS
Dhafer
Malouche
Introduction
Initiation `a
OpenBUGS
Utilisation
de OpenBUG `a
partir de R
Etude de
Cas: Les
r´esultats
des
sondages
des urnes
ont-ils
pr´edit les
r´esultats
des
´elections?
Exemple avec les ´elections Tunisiennes.
On simule la loi a posteriori des probabilit´es `a partir du sondage de
Sigma-Conseil.
> library(MCMCpack)
> posterioriSigma=MCmultinomdirichlet(y = ySigma,
+ alpha0 = rep(1,length(ySigma)),
+ mc=100000,n.chain=3)
Estimation de la probabilit´e d’avoir l’ordre des ´elus.
> names(pISIE)=c('BCE','Marzouki','Hammami','Hamdi','Riahi','autres')
> oISIE=order(pISIE,decreasing = T)
> oSigma=apply(posterioriSigma,1,function(x)order(x,decreasing = T))
> oSigma=t(oSigma)
Premiers
pas avec
OpenBUGS
Dhafer
Malouche
Introduction
Initiation `a
OpenBUGS
Utilisation
de OpenBUG `a
partir de R
Etude de
Cas: Les
r´esultats
des
sondages
des urnes
ont-ils
pr´edit les
r´esultats
des
´elections?
Exemple avec les ´elections Tunisiennes.
On calcule `a chaque la probabilit´e de pr´edire un, deux,. . . les six
candidats dans l’ordre.
> res=sapply(1:100000,function(i)sum((oSigma[i,]==oISIE)))
> table(res)
res
2 3
99159 841
Donc la probabilit´e que Sigma conseil pr´edit plus que 3 candidats
dans l’ordre est quaziment nulle (< 8 × 10−3
)

Weitere ähnliche Inhalte

Andere mochten auch

Applications de la perception
Applications de la perceptionApplications de la perception
Applications de la perceptionNaoual_Aicha
 
LÉGISLATION CANADIENNE
LÉGISLATION CANADIENNELÉGISLATION CANADIENNE
LÉGISLATION CANADIENNElaulo69
 
Travaux de rénovation thermique les plus efficaces : Remplacer les fenetres T...
Travaux de rénovation thermique les plus efficaces : Remplacer les fenetres T...Travaux de rénovation thermique les plus efficaces : Remplacer les fenetres T...
Travaux de rénovation thermique les plus efficaces : Remplacer les fenetres T...Travauxlib
 
Hay que buscarse un amante
Hay que buscarse un amanteHay que buscarse un amante
Hay que buscarse un amanteCris Araújo
 
L'intranet collaboratif Aelia : l'étude de cas
L'intranet collaboratif Aelia : l'étude de casL'intranet collaboratif Aelia : l'étude de cas
L'intranet collaboratif Aelia : l'étude de casXWiki
 
Presentación1 guillermo risco
Presentación1  guillermo riscoPresentación1  guillermo risco
Presentación1 guillermo riscomarco risco ramos
 
Diapo ouija c2i
Diapo ouija c2iDiapo ouija c2i
Diapo ouija c2iVVVenere
 
Quien Soy Hace Diferencia
Quien Soy Hace DiferenciaQuien Soy Hace Diferencia
Quien Soy Hace DiferenciaCarlos Lorenzo
 
Toward Unified Analysis of Electricity Day Ahead Prices in Europe (French)
Toward Unified Analysis of Electricity Day Ahead Prices in Europe (French)Toward Unified Analysis of Electricity Day Ahead Prices in Europe (French)
Toward Unified Analysis of Electricity Day Ahead Prices in Europe (French)NicolasRR
 
Las Figuras De Los ñIñOs
Las Figuras De Los ñIñOsLas Figuras De Los ñIñOs
Las Figuras De Los ñIñOslalo gusman
 
Curs Ofimàtica 2004-2005. Bloc OOSheets
Curs Ofimàtica 2004-2005. Bloc OOSheetsCurs Ofimàtica 2004-2005. Bloc OOSheets
Curs Ofimàtica 2004-2005. Bloc OOSheetsAlex Araujo
 

Andere mochten auch (20)

Nos partenaires et les objectifs
Nos partenaires et les objectifsNos partenaires et les objectifs
Nos partenaires et les objectifs
 
Applications de la perception
Applications de la perceptionApplications de la perception
Applications de la perception
 
Papers De Salamanca
Papers De SalamancaPapers De Salamanca
Papers De Salamanca
 
LÉGISLATION CANADIENNE
LÉGISLATION CANADIENNELÉGISLATION CANADIENNE
LÉGISLATION CANADIENNE
 
Travaux de rénovation thermique les plus efficaces : Remplacer les fenetres T...
Travaux de rénovation thermique les plus efficaces : Remplacer les fenetres T...Travaux de rénovation thermique les plus efficaces : Remplacer les fenetres T...
Travaux de rénovation thermique les plus efficaces : Remplacer les fenetres T...
 
Hay que buscarse un amante
Hay que buscarse un amanteHay que buscarse un amante
Hay que buscarse un amante
 
Dispositivos De Entrada
Dispositivos De EntradaDispositivos De Entrada
Dispositivos De Entrada
 
L'intranet collaboratif Aelia : l'étude de cas
L'intranet collaboratif Aelia : l'étude de casL'intranet collaboratif Aelia : l'étude de cas
L'intranet collaboratif Aelia : l'étude de cas
 
La Vida Es..
La Vida Es..La Vida Es..
La Vida Es..
 
Pego3. Bilbao2007
Pego3. Bilbao2007Pego3. Bilbao2007
Pego3. Bilbao2007
 
Presentación1 guillermo risco
Presentación1  guillermo riscoPresentación1  guillermo risco
Presentación1 guillermo risco
 
Diapo ouija c2i
Diapo ouija c2iDiapo ouija c2i
Diapo ouija c2i
 
Quien Soy Hace Diferencia
Quien Soy Hace DiferenciaQuien Soy Hace Diferencia
Quien Soy Hace Diferencia
 
Angelee
AngeleeAngelee
Angelee
 
TecnologíA
TecnologíATecnologíA
TecnologíA
 
Toward Unified Analysis of Electricity Day Ahead Prices in Europe (French)
Toward Unified Analysis of Electricity Day Ahead Prices in Europe (French)Toward Unified Analysis of Electricity Day Ahead Prices in Europe (French)
Toward Unified Analysis of Electricity Day Ahead Prices in Europe (French)
 
ArchivíStica
ArchivíSticaArchivíStica
ArchivíStica
 
Las Figuras De Los ñIñOs
Las Figuras De Los ñIñOsLas Figuras De Los ñIñOs
Las Figuras De Los ñIñOs
 
Arcángel
ArcángelArcángel
Arcángel
 
Curs Ofimàtica 2004-2005. Bloc OOSheets
Curs Ofimàtica 2004-2005. Bloc OOSheetsCurs Ofimàtica 2004-2005. Bloc OOSheets
Curs Ofimàtica 2004-2005. Bloc OOSheets
 

Ähnlich wie Premiers pas avec OpenBUGS

La programmation par contraintes avec Choco3 (Java)
La programmation par contraintes avec Choco3 (Java)La programmation par contraintes avec Choco3 (Java)
La programmation par contraintes avec Choco3 (Java)Aline Figoureux
 
Des mesures pour des décisions
Des mesures pour des décisionsDes mesures pour des décisions
Des mesures pour des décisionsJean-Michel POU
 
FLUPA UX-Day 2013 : Jérémie Chaine "Les nouveaux challenges de l’UX Agile"
FLUPA UX-Day 2013 : Jérémie Chaine "Les nouveaux challenges de l’UX Agile"FLUPA UX-Day 2013 : Jérémie Chaine "Les nouveaux challenges de l’UX Agile"
FLUPA UX-Day 2013 : Jérémie Chaine "Les nouveaux challenges de l’UX Agile"Flupa
 

Ähnlich wie Premiers pas avec OpenBUGS (6)

La programmation par contraintes avec Choco3 (Java)
La programmation par contraintes avec Choco3 (Java)La programmation par contraintes avec Choco3 (Java)
La programmation par contraintes avec Choco3 (Java)
 
Des mesures pour des décisions
Des mesures pour des décisionsDes mesures pour des décisions
Des mesures pour des décisions
 
2-Algo.ppt
2-Algo.ppt2-Algo.ppt
2-Algo.ppt
 
Arbre de décision
Arbre de décisionArbre de décision
Arbre de décision
 
FLUPA UX-Day 2013 : Jérémie Chaine "Les nouveaux challenges de l’UX Agile"
FLUPA UX-Day 2013 : Jérémie Chaine "Les nouveaux challenges de l’UX Agile"FLUPA UX-Day 2013 : Jérémie Chaine "Les nouveaux challenges de l’UX Agile"
FLUPA UX-Day 2013 : Jérémie Chaine "Les nouveaux challenges de l’UX Agile"
 
La série 3 en pascal
La série 3 en pascalLa série 3 en pascal
La série 3 en pascal
 

Premiers pas avec OpenBUGS

  • 1. Premiers pas avec OpenBUGS Dhafer Malouche Introduction Initiation `a OpenBUGS Utilisation de OpenBUG `a partir de R Etude de Cas: Les r´esultats des sondages des urnes ont-ils pr´edit les r´esultats des ´elections? Premiers pas avec OpenBUGS Dhafer Malouche Ecole Sup´erieure de la Statistique et de l’Analyse de l’information Cours 2016-2017
  • 2. Premiers pas avec OpenBUGS Dhafer Malouche Introduction Initiation `a OpenBUGS Utilisation de OpenBUG `a partir de R Etude de Cas: Les r´esultats des sondages des urnes ont-ils pr´edit les r´esultats des ´elections? Introduction
  • 3. Premiers pas avec OpenBUGS Dhafer Malouche Introduction Initiation `a OpenBUGS Utilisation de OpenBUG `a partir de R Etude de Cas: Les r´esultats des sondages des urnes ont-ils pr´edit les r´esultats des ´elections? Exemple : lancement de satellites Entre 1980 et 2002 il y a eu 11 lancements de satellites, 3 succ`es et 8 ´echecs. Objectif : Estimer la probabilit´e de r´eussite d’un nouveau lanceur, fournir un intervalle de confiance/cr´edibilit´e.
  • 4. Premiers pas avec OpenBUGS Dhafer Malouche Introduction Initiation `a OpenBUGS Utilisation de OpenBUG `a partir de R Etude de Cas: Les r´esultats des sondages des urnes ont-ils pr´edit les r´esultats des ´elections? Approche fr´equentiste (Rappel) Distribution des donn´ees (le mod`ele statistique) y est le nombre de succ`es parmi n lancements de satellites, θ est la probabilit´e de succ`es d’un lancement y | θ ∼ B(n, θ); Vraisemblance et estimateur du maximum de vraisemblance l(y | θ) = Cy nθy (1 − θ)n−y , log (l(y | θ)) = y log θ + (n − y) log(1 − θ). θ = argmaxθ log (l(y | θ)) θ = y n Calcul d’intervalle de confiance (asymptotique n grand) : θ ± zα/2 1 n θ(1 − θ) .
  • 5. Premiers pas avec OpenBUGS Dhafer Malouche Introduction Initiation `a OpenBUGS Utilisation de OpenBUG `a partir de R Etude de Cas: Les r´esultats des sondages des urnes ont-ils pr´edit les r´esultats des ´elections? Approche Bay´esienne On consid`ere une loi a priori Beta sur θ π(θ) ∝ θa−1 (1 − θ)b−1 . Calcul de la loi a posteriori π(θ | y) ∝ l(y | θ)π(θ) ∝ θy+a−1(1 − θ)n−y+b−1.e Donc y | θ ∼ Beta(y + a, n − y + b). La distribution, moyenne, variance, intervalle de cr´edibilit´e a posteriori ? Solution OpenBuGS
  • 6. Premiers pas avec OpenBUGS Dhafer Malouche Introduction Initiation `a OpenBUGS Utilisation de OpenBUG `a partir de R Etude de Cas: Les r´esultats des sondages des urnes ont-ils pr´edit les r´esultats des ´elections? Initiation `a OpenBUGS
  • 7. Premiers pas avec OpenBUGS Dhafer Malouche Introduction Initiation `a OpenBUGS Utilisation de OpenBUG `a partir de R Etude de Cas: Les r´esultats des sondages des urnes ont-ils pr´edit les r´esultats des ´elections? OpenBUGS Pr´esentation OpenBUGS fait partie du projet BUGS (Bayesian inference Using Gibbs Sampler) qui vise `a rendre simple la pratique des m´ethodes MCMC aux statisticiens. Il a ´et´e d´evelopp´e par l’unit´e MRC Biostatistics de l’universit´e de Cambridge. OpenBUGS est un logiciel libre et gratuit. Utilisation possible Via une interface clique-bouton qui permet de contrˆoler l’analyse, En utilisant des mod`eles d´efinis par des interfaces graphiques, appel´es DoddleBUGS, Via d’autres logiciels tels que R (en particulier via le package R2OpenBUGS)
  • 8. Premiers pas avec OpenBUGS Dhafer Malouche Introduction Initiation `a OpenBUGS Utilisation de OpenBUG `a partir de R Etude de Cas: Les r´esultats des sondages des urnes ont-ils pr´edit les r´esultats des ´elections? Algorithme de Gibbs Supposons que le vecteur param`etre θ est constitu´e de k composantes, i.e. θT = (θ1, . . . , θk). Les ´etapes de l’algorithme de Gibbs sont : 1 Choisir des valeurs initiales pour θ (0) 1 , . . . , θ (0) k . 2 G´en´erer θ (1) 1 selon π θ1 | θ (0) 2 , . . . , θ (0) k , y . 3 G´en´erer θ (1) 2 selon π θ2 | θ (1) 1 , θ (0) 3 . . . , θ (0) k , y . ... 4 G´en´erer θ (1) k selon π θk | θ (1) 1 , θ (1) 2 . . . , θ (1) k−1, y . R´ep´eter l’´etape 2 plusieurs milliers de fois.
  • 9. Premiers pas avec OpenBUGS Dhafer Malouche Introduction Initiation `a OpenBUGS Utilisation de OpenBUG `a partir de R Etude de Cas: Les r´esultats des sondages des urnes ont-ils pr´edit les r´esultats des ´elections? Exemple de code OpenBUGS Le mod`ele : model{ for(i in 1:n){ y[i] ˜ dbern(p) } p˜dbeta(a,b) } Les donn´ees > list(n=11,y=c(0,0,0,0,0,0,1,0,0,1,0),a=2,b=3) Les valeurs initiales. > list(p=.2) > list(p=.9) > list(p=.4)
  • 10. Premiers pas avec OpenBUGS Dhafer Malouche Introduction Initiation `a OpenBUGS Utilisation de OpenBUG `a partir de R Etude de Cas: Les r´esultats des sondages des urnes ont-ils pr´edit les r´esultats des ´elections? Les ´etapes de l’ex´ecution sous OpenBUGS 1 V´erifier le mod`ele, 2 Charger les donn´ees, 3 Sp´ecifier le nombre de chaˆınes MCMC, 4 Compiler le mod`ele, 5 Charger les conditions initiales, 6 G´en´erer les r´ealisations “burnin”, 7 Sp´ecifier les param`etres/quantit´es `a conserver, 8 G´en´erer les r´ealisations `a conserver, 9 V´erifier la convergence et mise en place des r´esultats.
  • 11. Premiers pas avec OpenBUGS Dhafer Malouche Introduction Initiation `a OpenBUGS Utilisation de OpenBUG `a partir de R Etude de Cas: Les r´esultats des sondages des urnes ont-ils pr´edit les r´esultats des ´elections? D’autres Exemples: Jet d’une pi`ece de monnaie. On jette une pi`ece de monnaie 8 fois dont la probabilit´e d’avoir Pile est de 0.5. Quelle est la probabilit´es de voir Pile au plus 2 fois. Le mod`ele math´ematique Y ∼ Binomial(0.5, 8) Il s’agit d’estimer P(Y ≤ 2). Le mod`ele sous OpenBugs model{ Y ˜ dbin(0.5,8) P <- step(2.5-Y) }
  • 12. Premiers pas avec OpenBUGS Dhafer Malouche Introduction Initiation `a OpenBUGS Utilisation de OpenBUG `a partir de R Etude de Cas: Les r´esultats des sondages des urnes ont-ils pr´edit les r´esultats des ´elections? Comment faire fonctionner ce code dans OpenBUGS 1 Ouvrir une nouvelle fenˆetre dans OpenBUGS, File>New 2 Copier/Coller le code ci-dessus. 3 Model>Specification 4 Select model et clique sur check model 5 clique sur compile ensuite gen inits. 6 Model>Update et clique sur update 7 Inference> Samples et introduit le param`etre P dans set 8 Tous les boutons de la derni`ere interface vont s’allumer, donc vous pouvez avoir votre estimation. En effet, la fonction step va prendre la valeur si 2.5-Y est ≥ 0 et 0 sinon. Donc P est ´egal `a si Y est plus petit o‘u ´egal `a 1.
  • 13. Premiers pas avec OpenBUGS Dhafer Malouche Introduction Initiation `a OpenBUGS Utilisation de OpenBUG `a partir de R Etude de Cas: Les r´esultats des sondages des urnes ont-ils pr´edit les r´esultats des ´elections? Utilisation de OpenBUGS pour simuler une distribution Une loi de Student Supposons qu’on voudrait simuler une loi de Student de moyenne 10, de pr´ecision 2 et de ddl 4. model{ y ˜ dt(10,2,4) } Une transformation de la loi Normale. On consid`ere Z ∼ N(0, 1), on veut simuler Y = (2Z + 1)3 et estimer P(Y > 10) model{ z ˜ dnorm(0,1) y <- pow(2*z+1,3) p <- step(y-10) }
  • 14. Premiers pas avec OpenBUGS Dhafer Malouche Introduction Initiation `a OpenBUGS Utilisation de OpenBUG `a partir de R Etude de Cas: Les r´esultats des sondages des urnes ont-ils pr´edit les r´esultats des ´elections? Combien de r´eparations? Supposons que le coˆut de r´eparation a une distribution Gamma de moyenne 100 TND et d’´ecart-type 50 TND. On veut r´epondre `a la question, combien de fois peut-on r´eparer avec 1000 TND? 1 Montrer qu’une Gamma(4,0.04) a une moyenne 100 et un ´ecart-type 50 TND 2 Ecrire le code ‘OpenBUGS‘ permettant de calculer ce nombre. On consid`ere Yi, i = 1, . . . , I variables al´eatoires de loi Gamma(4,0.04) et il s’agit de chercher M tel que M i=1 Yi < 1000 .
  • 15. Premiers pas avec OpenBUGS Dhafer Malouche Introduction Initiation `a OpenBUGS Utilisation de OpenBUG `a partir de R Etude de Cas: Les r´esultats des sondages des urnes ont-ils pr´edit les r´esultats des ´elections? Le code OpenBUGS On prendra I = 20, on va calculer la probabilit´e de faire plus des 12 r´eparations model{ for(i in 1:20) { Y[i] ˜ dgamma(4,0.04) } cum[1] <- Y[1] for(i in 2:20) { cum[i] <- cum[i-1]+Y[i] } for(i in 1:20) { cum.step[i] <- i*step(1000- cum[i]) } number <- rank(cum.step[],20) ## le maximum dans cum.step P <- step(number-12) } rank(v,s) s’applique au vecteur v et et au nombre s et calcule le nombre composantes dans v qui sont plus petites que s
  • 16. Premiers pas avec OpenBUGS Dhafer Malouche Introduction Initiation `a OpenBUGS Utilisation de OpenBUG `a partir de R Etude de Cas: Les r´esultats des sondages des urnes ont-ils pr´edit les r´esultats des ´elections? Utilisation de OpenBUG `a partir de R
  • 17. Premiers pas avec OpenBUGS Dhafer Malouche Introduction Initiation `a OpenBUGS Utilisation de OpenBUG `a partir de R Etude de Cas: Les r´esultats des sondages des urnes ont-ils pr´edit les r´esultats des ´elections? Exemple avec R2OpenBUGS Pour utiliser OpenBUGS il faut installer dans R le package R2OpenBUGS. Consid´erons le probl`eme suivant: On jette deux pi`eces de monnaie dont ne connaˆıt pas la probabilit´e d’avoir Pile. Les deux pi`eces sont jet´ees 86 fois. Pour la premi`ere on a obtenu 83 fois Pile et pour la deuxi`eme on obtenu 72 fois Pile. Comparer les deux probabilit´es d’avoir Pile.
  • 18. Premiers pas avec OpenBUGS Dhafer Malouche Introduction Initiation `a OpenBUGS Utilisation de OpenBUG `a partir de R Etude de Cas: Les r´esultats des sondages des urnes ont-ils pr´edit les r´esultats des ´elections? Exemple avec R2OpenBUGS D’abord on ´ecrit les donn´ees dans R. > donnees=list(r=c(83,72),n=c(86,86)) Le mod`ele sous OpenBUGS model{ for(i in 1:2){ r[i] ˜ dbin(p[i],n[i]) } for (i in 1:2){ p[i] ˜ dunif(0,1)} delta <- p[1] - p[2] delta.up <- step(delta) lambda <- log( (p[1]/(1-p[1])) / (p[2]/(1-p[2])) ); lambda.up <- step(lambda) }
  • 19. Premiers pas avec OpenBUGS Dhafer Malouche Introduction Initiation `a OpenBUGS Utilisation de OpenBUG `a partir de R Etude de Cas: Les r´esultats des sondages des urnes ont-ils pr´edit les r´esultats des ´elections? Exemple avec R2OpenBUGS Le code pour g´en´erer le mod`ele `a partir de R sans avoir recours `a OpenBUGS : On cr´ee un fichier exempleBinom.txt qui contient le code BUGS > sink('exempleBinom.txt') > cat(" + model{ + for(i in 1:2){ + r[i] ˜ dbin(p[i],n[i]) + } + for (i in 1:2){ p[i] ˜ dunif(0,1)} + delta <- p[1] - p[2] + delta.up <- step(delta) + lambda <- log( (p[1]/(1-p[1])) / (p[2]/(1-p[2])) ); + lambda.up <- step(lambda) + } + ",fill=T) > sink()
  • 20. Premiers pas avec OpenBUGS Dhafer Malouche Introduction Initiation `a OpenBUGS Utilisation de OpenBUG `a partir de R Etude de Cas: Les r´esultats des sondages des urnes ont-ils pr´edit les r´esultats des ´elections? Exemple avec R2OpenBUGS On cr´ee une variable avec le nom du fichier. > filename<-"exempleBinom.txt" Les valeurs initiales > inits<-function(){ + inits=list(p=runif(2,0,1)) + } Les param`etres `a estimer > params <- c('p','delta.up','lambda.up') Enfin l’ex´ecution sous R > library(R2OpenBUGS) > outBinom <-bugs(donnees,inits,params,filename,codaPkg=F,n.thin =1, + n.iter=10000,debug=F,n.chains = 3, + working.directory=getwd(),
  • 21. Premiers pas avec OpenBUGS Dhafer Malouche Introduction Initiation `a OpenBUGS Utilisation de OpenBUG `a partir de R Etude de Cas: Les r´esultats des sondages des urnes ont-ils pr´edit les r´esultats des ´elections? Exemple avec R2OpenBUGS Le r´esultat > outBinom Inference for Bugs model at "exempleBinom.txt", Current: 3 chains, each with 10000 iterations (first 5000 discarded) Cumulative: n.sims = 15000 iterations saved mean sd 2.5% 25% 50% 75% 97.5% Rhat n.eff p[1] 1.0 0 0.9 0.9 1.0 1.0 1.0 1 15000 p[2] 0.8 0 0.7 0.8 0.8 0.9 0.9 1 15000 delta.up 1.0 0 1.0 1.0 1.0 1.0 1.0 1 15000 lambda.up 1.0 0 1.0 1.0 1.0 1.0 1.0 1 15000 deviance 9.3 2 7.3 7.9 8.7 10.1 14.7 1 15000 For each parameter, n.eff is a crude measure of effective sample size, and Rhat is the potential scale reduction factor (at convergence, Rhat=1). DIC info (using the rule, pD = Dbar-Dhat) pD = 1.8 and DIC = 11.0 DIC is an estimate of expected predictive error (lower deviance is better).
  • 22. Premiers pas avec OpenBUGS Dhafer Malouche Introduction Initiation `a OpenBUGS Utilisation de OpenBUG `a partir de R Etude de Cas: Les r´esultats des sondages des urnes ont-ils pr´edit les r´esultats des ´elections? Exemple avec R2OpenBUGS Notons que le param`etre lambda est le logarithme du odds ratio, Si lambda est : proche de 0, on a la mˆeme chance d’avoir Pile avec les deux pi`eces. ; sup´erieur `a 0, il est plus fr´equente d’avoir Pile avec la pi`ece 1 qu’avec la pi`ece 2 ; bien sup´erieur `a 0, il est beaucoup plus fr´equente d’avoir Pile avec la pi`ece 1 qu’avec la pi`ece 2 ; inf´erieur `a 0, il est moins fr´equente d’avoir Pile avec la pi`ece 1 qu’avec la pi`ece 2 ; proche de -∞, il est beaucoup moins fr´equente d’avoir Pile avec la pi`ece 1 qu’avec la pi`ece 2 ;
  • 23. Premiers pas avec OpenBUGS Dhafer Malouche Introduction Initiation `a OpenBUGS Utilisation de OpenBUG `a partir de R Etude de Cas: Les r´esultats des sondages des urnes ont-ils pr´edit les r´esultats des ´elections? Exemple avec R2OpenBUGS Les param`etres estim´es dans l’objet outBinom deviance : Si y = (y1, . . . , yn) est le vecteur des donn´ees dont on suppose g´en´er´e par une loi de probabilit´e de densit´e f(y | θ). Alors la fonction vraisemblance l(y | θ) = n i=1 f(yi | θ) Donc la deviance s’exprime par D(θ) = − log l(y | θ) Dans notre cas : y1 ∼Binom(N, p1) et y2 ∼Binom(N, p2), donc l(y | p1, p2) ∝ p1 1 − p1 y1 p2 1 − p2 y2
  • 24. Premiers pas avec OpenBUGS Dhafer Malouche Introduction Initiation `a OpenBUGS Utilisation de OpenBUG `a partir de R Etude de Cas: Les r´esultats des sondages des urnes ont-ils pr´edit les r´esultats des ´elections? Exemple avec R2OpenBUGS DIC : Deviance Information Criteria La moyenne ¯D = Eθ [D(θ)] est une mesure de l’ajustement du mod`ele aux donn´ees; plus ¯D est grand, plus l’ajustement est mauvais. pD est une estimation du nombre effective des param`etres du mod`ele : pD = ¯D − D(¯θ), plus les valeurs du pD est ´elev´e, plus le mod`ele ajuste au mieux les donn´ees. C’est pour cela qu’on d´efinit une p´enalisation `a la vraisemblance. DIC se calcule DIC = pD + ¯D = D(¯θ) + 2pD Des mod`eles avec des valeurs faibles du DIC sont les plus pr´ef´er´es. Comme ¯D d´ecroit quand le nombre de param`etres dans le mod`ele croit, le pD va compenser cette effet en favorisant les mod`eles avec un petit nombre de param`etres.
  • 25. Premiers pas avec OpenBUGS Dhafer Malouche Introduction Initiation `a OpenBUGS Utilisation de OpenBUG `a partir de R Etude de Cas: Les r´esultats des sondages des urnes ont-ils pr´edit les r´esultats des ´elections? Estimation des densit´es a posteriori Les probabilit´es > library(reshape2) > dt=melt(outBinom$sims.matrix[,1:2]) > library(ggplot2) > gr<-ggplot(data=dt,aes(x=value,fill=Var2,colour=Var2))+geom_density(alpha=.5) > gr
  • 26. Premiers pas avec OpenBUGS Dhafer Malouche Introduction Initiation `a OpenBUGS Utilisation de OpenBUG `a partir de R Etude de Cas: Les r´esultats des sondages des urnes ont-ils pr´edit les r´esultats des ´elections? Estimation des densit´es a posteriori Les probabilit´es 0 5 10 15 20 0.7 0.8 0.9 1.0 density Var2 p[1] p[2]
  • 27. Premiers pas avec OpenBUGS Dhafer Malouche Introduction Initiation `a OpenBUGS Utilisation de OpenBUG `a partir de R Etude de Cas: Les r´esultats des sondages des urnes ont-ils pr´edit les r´esultats des ´elections? Estimation des densit´es a posteriori delta.up > dt=data.frame(outBinom$sims.matrix[,3:4]) > gr<-ggplot(data=dt,aes(x=delta.up))+geom_density(alpha=.5,fill="pink") > gr
  • 28. Premiers pas avec OpenBUGS Dhafer Malouche Introduction Initiation `a OpenBUGS Utilisation de OpenBUG `a partir de R Etude de Cas: Les r´esultats des sondages des urnes ont-ils pr´edit les r´esultats des ´elections? Estimation des densit´es a posteriori delta.up 0 20 40 60 0.00 0.25 0.50 0.75 1.00 density
  • 29. Premiers pas avec OpenBUGS Dhafer Malouche Introduction Initiation `a OpenBUGS Utilisation de OpenBUG `a partir de R Etude de Cas: Les r´esultats des sondages des urnes ont-ils pr´edit les r´esultats des ´elections? Estimation des densit´es a posteriori lambda.up > gr<-ggplot(data=dt,aes(x=lambda.up))+geom_density(alpha=.5,fill="pink") > gr
  • 30. Premiers pas avec OpenBUGS Dhafer Malouche Introduction Initiation `a OpenBUGS Utilisation de OpenBUG `a partir de R Etude de Cas: Les r´esultats des sondages des urnes ont-ils pr´edit les r´esultats des ´elections? Estimation des densit´es a posteriori lambda.up 0 20 40 60 0.00 0.25 0.50 0.75 1.00 density
  • 31. Premiers pas avec OpenBUGS Dhafer Malouche Introduction Initiation `a OpenBUGS Utilisation de OpenBUG `a partir de R Etude de Cas: Les r´esultats des sondages des urnes ont-ils pr´edit les r´esultats des ´elections? Exercice : Comparaison de deux mod`eles bay´esiens On consid`ere les mod`eles bay´esiens suivants : Mod`ele M1 : y ∼ Binomial(n, τ) o`u τ ∼ Beta(a, b) Mod`ele M2 :y ∼ Binomial(n, τ) o`u τ = 1 p + q + 1 o`u p, q ∼ Uniform[0, 1]. Ecrire les deux codes BUGS et R pour g´en´erer la loi a posteriori des mod`eles bay´esiens M1 et M2. Comparer les DIC, pD et la d´eviance des deux mod`eles, Conclure?
  • 32. Premiers pas avec OpenBUGS Dhafer Malouche Introduction Initiation `a OpenBUGS Utilisation de OpenBUG `a partir de R Etude de Cas: Les r´esultats des sondages des urnes ont-ils pr´edit les r´esultats des ´elections? Etude de Cas: Les r´esultats des sondages des urnes ont-ils pr´edit les r´esultats des ´elections?
  • 33. Premiers pas avec OpenBUGS Dhafer Malouche Introduction Initiation `a OpenBUGS Utilisation de OpenBUG `a partir de R Etude de Cas: Les r´esultats des sondages des urnes ont-ils pr´edit les r´esultats des ´elections? Probl´ematique En D´ecembre 2014, il y a eu les premiers ´elections pr´esidentielles “libres et d´emocratiques” en Tunisie. Ces ´elections se sont d´eroul´ees en deux tours. Durant ces derni`eres ´elections plusieurs candidats se sont pr´esent´es au 1er tour. Les deux gagnants ce 1er tour sont : Moncef Marzouki et B´eji Caid Essebsi. Plusieurs bureaux de sondages locaux ont fait des sondages aux sorties des urnes. Nous voulons pr´esenter dans ce travail une comparaison statistique des r´esultats de ces sondages avec les vrais r´esultats des ´elections.
  • 34. Premiers pas avec OpenBUGS Dhafer Malouche Introduction Initiation `a OpenBUGS Utilisation de OpenBUG `a partir de R Etude de Cas: Les r´esultats des sondages des urnes ont-ils pr´edit les r´esultats des ´elections? R´esultats des sondages sorti des urnes Rappelons les principaux r´esultats pr´esent´es Bureau BC Marzouki Hammami Hamdi Riahi les autres Sigma 42.70 32.60% 9.50% 3.90% 6.70% 4.60% Emraude 44.20 31.20% 10.90% 2.10% 6.90% 4.70% 3C 47.80 26.90% 10.20% 3.50% 5.40% 6.20% ISIE 39.46 33.43% 7.82% 5.75% 5.55% 7.99%
  • 35. Premiers pas avec OpenBUGS Dhafer Malouche Introduction Initiation `a OpenBUGS Utilisation de OpenBUG `a partir de R Etude de Cas: Les r´esultats des sondages des urnes ont-ils pr´edit les r´esultats des ´elections? Le mod`ele statistique. Chaque bureau de sondage a d´eclar´e avoir questionn´e autour de 10 000 personnes aux sorties des urnes et donc l’´echantillon observ´es est une observation d’une loi multinomiale X = (X1, . . . , XI) ∼ Mulitinomial(N, p1, . . . , pI) ou est N = 10000 est le nombre des personnes interrog´ees et p1, . . . , pI sont les probabilit´es recherch´ees et qui les % de votes attendus des candidats. La somme des pI est ´evidement ´egale `a 1 et I i=1 xI = N. Donc P(X = x) = N! x1! . . . xI! px1 1 . . . pxI I
  • 36. Premiers pas avec OpenBUGS Dhafer Malouche Introduction Initiation `a OpenBUGS Utilisation de OpenBUG `a partir de R Etude de Cas: Les r´esultats des sondages des urnes ont-ils pr´edit les r´esultats des ´elections? Objectif On va examiner si les r´esultats des sondages sont “r´eellement” “proches” des vrais r´esultats des ´elections ?
  • 37. Premiers pas avec OpenBUGS Dhafer Malouche Introduction Initiation `a OpenBUGS Utilisation de OpenBUG `a partir de R Etude de Cas: Les r´esultats des sondages des urnes ont-ils pr´edit les r´esultats des ´elections? Mise en oeuvre sous R (M´ethode fr´equentiste) Consiste `a estimer les probabilit´es et donner leurs IC. On utilisera le package MultinomialCI > pSigma=c(42.7,32.6,9.5,3.9,6.7) > pEm=c(44.2,31.2,10.9,2.1,6.9) > p3c=c(47.8,26.9,10.2,3.5,5.4) > pISIE=c(39.46,33.43,7.82,5.75,5.55) > pSigma=c(pSigma,100-sum(pSigma)) > pEm=c(pEm,100-sum(pEm)) > p3c=c(p3c,100-sum(p3c)) > pISIE=c(pISIE,100-sum(pISIE))
  • 38. Premiers pas avec OpenBUGS Dhafer Malouche Introduction Initiation `a OpenBUGS Utilisation de OpenBUG `a partir de R Etude de Cas: Les r´esultats des sondages des urnes ont-ils pr´edit les r´esultats des ´elections? Mise en oeuvre sous R (M´ethode fr´equentiste) > library(MultinomialCI) > N=10000 ## Sample size > ySigma=N*pSigma/100 > ySigma [1] 4270 3260 950 390 670 460 > yEm=N*pEm/100 > yEm [1] 4420 3120 1090 210 690 470 > y3c=N*p3c/100 > y3c [1] 4780 2690 1020 350 540 620
  • 39. Premiers pas avec OpenBUGS Dhafer Malouche Introduction Initiation `a OpenBUGS Utilisation de OpenBUG `a partir de R Etude de Cas: Les r´esultats des sondages des urnes ont-ils pr´edit les r´esultats des ´elections? Mise en oeuvre sous R (M´ethode fr´equentiste) > n=length(ySigma);n [1] 6 > ci.Sigma=multinomialCI(ySigma,alpha = .05) > rownames(ci.Sigma)=c("BCE","Marzouki","Hammami", + "Hamdi","Riahi","Les autres") > ci.Sigma [,1] [,2] BCE 0.4166 0.43755426 Marzouki 0.3156 0.33655426 Hammami 0.0846 0.10555426 Hamdi 0.0286 0.04955426 Riahi 0.0566 0.07755426 Les autres 0.0356 0.05655426
  • 40. Premiers pas avec OpenBUGS Dhafer Malouche Introduction Initiation `a OpenBUGS Utilisation de OpenBUG `a partir de R Etude de Cas: Les r´esultats des sondages des urnes ont-ils pr´edit les r´esultats des ´elections? Mise en oeuvre sous R (M´ethode fr´equentiste) > ci.Em=multinomialCI(yEm,alpha = .05) > rownames(ci.Em)=c("BCE","Marzouki","Hammami", + "Hamdi","Riahi","Les autres") > ci.Em [,1] [,2] BCE 0.4316 0.45251734 Marzouki 0.3016 0.32251734 Hammami 0.0986 0.11951734 Hamdi 0.0106 0.03151734 Riahi 0.0586 0.07951734 Les autres 0.0366 0.05751734
  • 41. Premiers pas avec OpenBUGS Dhafer Malouche Introduction Initiation `a OpenBUGS Utilisation de OpenBUG `a partir de R Etude de Cas: Les r´esultats des sondages des urnes ont-ils pr´edit les r´esultats des ´elections? Mise en oeuvre sous R (M´ethode fr´equentiste) > ci.3c=multinomialCI(y3c,alpha = .05) > rownames(ci.3c)=c("BCE","Marzouki","Hammami", + "Hamdi","Riahi","Les autres") > ci.3c [,1] [,2] BCE 0.4677 0.48831591 Marzouki 0.2587 0.27931591 Hammami 0.0917 0.11231591 Hamdi 0.0247 0.04531591 Riahi 0.0437 0.06431591 Les autres 0.0517 0.07231591
  • 42. Premiers pas avec OpenBUGS Dhafer Malouche Introduction Initiation `a OpenBUGS Utilisation de OpenBUG `a partir de R Etude de Cas: Les r´esultats des sondages des urnes ont-ils pr´edit les r´esultats des ´elections? Mise en oeuvre sous R (M´ethode fr´equentiste) ISIE BCE Marzouki Hammami Hamdi Riahi Les autres 0% 10% 20% 30% 40% 50% 3C Em Sigma
  • 43. Premiers pas avec OpenBUGS Dhafer Malouche Introduction Initiation `a OpenBUGS Utilisation de OpenBUG `a partir de R Etude de Cas: Les r´esultats des sondages des urnes ont-ils pr´edit les r´esultats des ´elections? Mise en oeuvre sous R (M´ethode bay´esienne). Le vecteur des param`etres p = (p1, . . . , pI) une loi a priori qui est la loi de Dirichlet de param´etr´es tous ´egaux `a 1. model { x[1:n] ˜ dmulti(p[], N) p[1:n] ˜ ddirch(alpha[]) for (k in 1:n) { alpha[k] <- 1 } }
  • 44. Premiers pas avec OpenBUGS Dhafer Malouche Introduction Initiation `a OpenBUGS Utilisation de OpenBUG `a partir de R Etude de Cas: Les r´esultats des sondages des urnes ont-ils pr´edit les r´esultats des ´elections? Le code R sous OpenBUGS > sink('Modelmultinom.txt') > cat("model { + x[1:n] ˜ dmulti(p[], N) + p[1:n] ˜ ddirch(alpha[]) + + for (k in 1:n) { + alpha[k] <- 1 + } + } + ") > sink()
  • 45. Premiers pas avec OpenBUGS Dhafer Malouche Introduction Initiation `a OpenBUGS Utilisation de OpenBUG `a partir de R Etude de Cas: Les r´esultats des sondages des urnes ont-ils pr´edit les r´esultats des ´elections? Mise en oeuvre sous R (M´ethode bay´esienne). > library(R2OpenBUGS) > ## > filename<-'Modelmultinom.txt' > > inits <- function(){ + p<-runif(n) + p<-p/sum(p) + list(p=p) + } > ### > params<-"p"
  • 46. Premiers pas avec OpenBUGS Dhafer Malouche Introduction Initiation `a OpenBUGS Utilisation de OpenBUG `a partir de R Etude de Cas: Les r´esultats des sondages des urnes ont-ils pr´edit les r´esultats des ´elections? Mise en oeuvre sous R (M´ethode bay´esienne). > donneesSigma<-list(x=ySigma,N=N,n=n) > donnees3c<-list(x=y3c,N=N,n=n) > outSigma <-bugs(donneesSigma,inits,params, + filename, n.iter=100000, + debug=F,n.chains = 1, + working.directory=getwd()) > out3c <-bugs(donnees3c,inits,params, + filename,n.iter=100000, + debug=F,n.chains = 1, + working.directory=getwd())
  • 47. Premiers pas avec OpenBUGS Dhafer Malouche Introduction Initiation `a OpenBUGS Utilisation de OpenBUG `a partir de R Etude de Cas: Les r´esultats des sondages des urnes ont-ils pr´edit les r´esultats des ´elections? R´esum´e des r´esultats des CM. Les r´esultats de Sigma-Conseil > library(R2OpenBUGS) > outSigma Inference for Bugs model at "Modelmultinom.txt", Current: 1 chains, each with 1e+05 iterations (first 50000 discarded) Cumulative: n.sims = 50000 iterations saved mean sd 2.5% 25% 50% 75% 97.5% p[1] 0.4 0.0 0.4 0.4 0.4 0.4 0.4 p[2] 0.3 0.0 0.3 0.3 0.3 0.3 0.3 p[3] 0.1 0.0 0.1 0.1 0.1 0.1 0.1 p[4] 0.0 0.0 0.0 0.0 0.0 0.0 0.0 p[5] 0.1 0.0 0.1 0.1 0.1 0.1 0.1 p[6] 0.0 0.0 0.0 0.0 0.0 0.0 0.1 deviance 46.9 3.2 42.7 44.6 46.2 48.5 54.8 DIC info (using the rule, pD = Dbar-Dhat) pD = 5.0 and DIC = 51.9 DIC is an estimate of expected predictive error (lower deviance is bette
  • 48. Premiers pas avec OpenBUGS Dhafer Malouche Introduction Initiation `a OpenBUGS Utilisation de OpenBUG `a partir de R Etude de Cas: Les r´esultats des sondages des urnes ont-ils pr´edit les r´esultats des ´elections? R´esum´e des r´esultats des CM. Les r´esultats de EM-Consulting > outEm Inference for Bugs model at "Modelmultinom.txt", Current: 1 chains, each with 1e+05 iterations (first 50000 discarded) Cumulative: n.sims = 50000 iterations saved mean sd 2.5% 25% 50% 75% 97.5% p[1] 0.4 0.0 0.4 0.4 0.4 0.4 0.5 p[2] 0.3 0.0 0.3 0.3 0.3 0.3 0.3 p[3] 0.1 0.0 0.1 0.1 0.1 0.1 0.1 p[4] 0.0 0.0 0.0 0.0 0.0 0.0 0.0 p[5] 0.1 0.0 0.1 0.1 0.1 0.1 0.1 p[6] 0.0 0.0 0.0 0.0 0.0 0.0 0.1 deviance 46.4 3.1 42.3 44.1 45.8 48.1 54.3 DIC info (using the rule, pD = Dbar-Dhat) pD = 5.0 and DIC = 51.4 DIC is an estimate of expected predictive error (lower deviance is bette
  • 49. Premiers pas avec OpenBUGS Dhafer Malouche Introduction Initiation `a OpenBUGS Utilisation de OpenBUG `a partir de R Etude de Cas: Les r´esultats des sondages des urnes ont-ils pr´edit les r´esultats des ´elections? R´esum´e des r´esultats des CM. Les r´esultats de 3C-Etudes > out3c Inference for Bugs model at "Modelmultinom.txt", Current: 1 chains, each with 1e+05 iterations (first 50000 discarded) Cumulative: n.sims = 50000 iterations saved mean sd 2.5% 25% 50% 75% 97.5% p[1] 0.5 0.0 0.5 0.5 0.5 0.5 0.5 p[2] 0.3 0.0 0.3 0.3 0.3 0.3 0.3 p[3] 0.1 0.0 0.1 0.1 0.1 0.1 0.1 p[4] 0.0 0.0 0.0 0.0 0.0 0.0 0.0 p[5] 0.1 0.0 0.0 0.1 0.1 0.1 0.1 p[6] 0.1 0.0 0.1 0.1 0.1 0.1 0.1 deviance 46.8 3.2 42.7 44.5 46.2 48.5 54.7 DIC info (using the rule, pD = Dbar-Dhat) pD = 5.0 and DIC = 51.8 DIC is an estimate of expected predictive error (lower deviance is bette
  • 50. Premiers pas avec OpenBUGS Dhafer Malouche Introduction Initiation `a OpenBUGS Utilisation de OpenBUG `a partir de R Etude de Cas: Les r´esultats des sondages des urnes ont-ils pr´edit les r´esultats des ´elections? Repr´esentation des densit´es des lois a postiori. (BCE) 0 20 40 60 80 39% 42% 45% 48% BC.Essebsi density Bureau e3c Em Sigma
  • 51. Premiers pas avec OpenBUGS Dhafer Malouche Introduction Initiation `a OpenBUGS Utilisation de OpenBUG `a partir de R Etude de Cas: Les r´esultats des sondages des urnes ont-ils pr´edit les r´esultats des ´elections? Repr´esentation des densit´es des lois a postiori. (Marzouki) 0 25 50 75 25.0% 27.5% 30.0% 32.5% 35.0% M.Marzouki density Bureau e3c Em Sigma
  • 52. Premiers pas avec OpenBUGS Dhafer Malouche Introduction Initiation `a OpenBUGS Utilisation de OpenBUG `a partir de R Etude de Cas: Les r´esultats des sondages des urnes ont-ils pr´edit les r´esultats des ´elections? Repr´esentation des densit´es des lois a postiori. (Hammami) 0 50 100 8% 9% 10% 11% 12% H.Hammami density Bureau e3c Em Sigma
  • 53. Premiers pas avec OpenBUGS Dhafer Malouche Introduction Initiation `a OpenBUGS Utilisation de OpenBUG `a partir de R Etude de Cas: Les r´esultats des sondages des urnes ont-ils pr´edit les r´esultats des ´elections? Utilisation du package MCMCpack C’est un package compl´etement int´egr´e dans R Il n’y a pas besoin de faire intervenir un logicil externe `a R Il contient des fonctions qui simules des MCMC de lois a posteriori des mode`eles les plus connus : Bernoulli, Multinomiale, R´egression, Logit. . .
  • 54. Premiers pas avec OpenBUGS Dhafer Malouche Introduction Initiation `a OpenBUGS Utilisation de OpenBUG `a partir de R Etude de Cas: Les r´esultats des sondages des urnes ont-ils pr´edit les r´esultats des ´elections? Exemple avec les ´elections Tunisiennes. On simule la loi a posteriori des probabilit´es `a partir du sondage de Sigma-Conseil. > library(MCMCpack) > posterioriSigma=MCmultinomdirichlet(y = ySigma, + alpha0 = rep(1,length(ySigma)), + mc=100000,n.chain=3) Estimation de la probabilit´e d’avoir l’ordre des ´elus. > names(pISIE)=c('BCE','Marzouki','Hammami','Hamdi','Riahi','autres') > oISIE=order(pISIE,decreasing = T) > oSigma=apply(posterioriSigma,1,function(x)order(x,decreasing = T)) > oSigma=t(oSigma)
  • 55. Premiers pas avec OpenBUGS Dhafer Malouche Introduction Initiation `a OpenBUGS Utilisation de OpenBUG `a partir de R Etude de Cas: Les r´esultats des sondages des urnes ont-ils pr´edit les r´esultats des ´elections? Exemple avec les ´elections Tunisiennes. On calcule `a chaque la probabilit´e de pr´edire un, deux,. . . les six candidats dans l’ordre. > res=sapply(1:100000,function(i)sum((oSigma[i,]==oISIE))) > table(res) res 2 3 99159 841 Donc la probabilit´e que Sigma conseil pr´edit plus que 3 candidats dans l’ordre est quaziment nulle (< 8 × 10−3 )