Upload
others
View
5
Download
0
Embed Size (px)
Citation preview
Statistique bayesienne avec R
Julien JACQUES
Université de Lyon, France
1 / 78
Références et logiciels
Ouvrages
Packages R� package bayess, BayesFactor, BMA, BAS� package rjags (interface du logiciel JAGS)
2 / 78
https://web.stanford.edu/~hastie/Papers/ESLII.pdf
Plan
Rappel sur les principales lois de probabilités
Statistique bayesienneLes outils bayesiensChoix de modèle bayésienMéthodes de Monte Carlo
Regression et sélection de variables
Les modèles graphiques et leur implémentation sous JAGSLes graphes acycliques dirigésJAGS
3 / 78
Loi normale N (µ, σ2)
� densité :p(x |µ, σ2) = 1
σ√
2πexp(−(x − µ)2/2σ2)
� espérance : µ� variance : σ2
� sous R : dnorm
−3 −2 −1 0 1 2 3
x
densité normale N(0,1)
4 / 78
Loi de Bernoulli B(p)
Modélise une variable aléatoire pouvant prendre 2 valeurs {0,1}, 1 encas de succès et 0 en cas d’échec, où p est la probabilité du succès.� probabilité : p(x = 1|p) = p� espérance : p� variance : p(1− p)� sous R : dnbinom avec size=1
5 / 78
Loi binomiale B(n,p)
Modélise le nombre de succès lorsqu’on répète n expériencesindépendante de Bernoulli.� probabilité :
p(x = k |p) = Ckn pk (1− p)n−k pour toutk ∈ {0, . . . ,n}
� espérance : np� variance : np(1− p)� propriétés asymptotiques :
� B(n, p)→ P(np) si n grand et np petit� B(n, p)→ N (np, np(1− p)) si np et
np(1− p) grands� sous R : dbinom 0 2 4 6 8 10
x
probabilité binomiale B(10,.3)
6 / 78
loi géométrique G(p)
Modélise le nombre d’échecs d’une suite d’expériences de Bernoulliavant l’obtention du premier succès.
� probabilité : p(x = k |p) = p(1− p)kpour tout k ∈ N
� espérance : (1− p)/p� variance : (1− p)/p2� sous R : dgeom
0 2 4 6 8 10
x
probabilité Geométrique G(.5)
7 / 78
loi binomiale négative BN (s,p)
Modélise le nombre d’échecs d’une suite d’expériences de Bernoulliavant l’obtention de s succès.
� probabilité :p(x = k |p) = Cks+k−1ps(1− p)k pourtout k ∈ N
� espérance : s(1− p)/p� variance : s(1− p)/p2� sous R : dnbinom
0 5 10 15
x
probabilité Binomiale Négative BN(5,.5)
8 / 78
loi de Poisson P(λ)
Modélise un nombre d’événements indépendants dans un intervalle detemps donné.
� probabilité : p(x = k |λ) = λk e−λ/k !pour tout k ∈ N
� espérance : λ� variance : λ� propriété asymptotique :
� P(λ)→ N (λ) si λ grand� sous R : dpois
0 2 4 6 8 10
x
probabilité Poisson P(2)
9 / 78
loi exponentielle E(λ)
Modélise un temps entre deux événements indépendants.
� probabilité : p(x |λ) = λe−λx pour toutx ≥ 0
� espérance : 1/λ� variance : 1/λ2
� sous R : dexp
0 2 4 6 8 10
x
densite exponentielle E(3)
10 / 78
loi gamma Gamma(α, λ)
Modélise le temps nécessaire pour l’observation de α événementsindépendants. Cette définition est étendue au cas où α n’est pasnécessairement entier (mais positif).
� probabilité : p(x |α, λ) = λαxα−1e−λxΓ(α) pourtout x ≥ 0
� espérance : α/λ� variance : α/λ2
� sous R : dgamma
0 2 4 6 8 10
x
densite Gamma(5,3)
11 / 78
loi beta Beta(α, β)
Loi très flexible sur ]0,1[, symétrique lorsque α = β.� probabilité :
p(x |α, β) = Γ(α+β)Γ(α)Γ(β) xα−1(1− x)β−1� espérance : α/(α + β)� variance : αβ/[(α + β)2(α + β + 1)]� Beta(1,1) est la loi uniforme sur ]0,1[� sous R : dbeta
12 / 78
loi de Cauchy centrée Cauchy(0,a)
� probabilité : p(x |a) = 1π ax2+a2� espérance, variance, ... : non définie� sous R : dcauchy
13 / 78
Plan
Rappel sur les principales lois de probabilités
Statistique bayesienneLes outils bayesiensChoix de modèle bayésienMéthodes de Monte Carlo
Regression et sélection de variables
Les modèles graphiques et leur implémentation sous JAGSLes graphes acycliques dirigésJAGS
14 / 78
Contents
Rappel sur les principales lois de probabilités
Statistique bayesienneLes outils bayesiensChoix de modèle bayésienMéthodes de Monte Carlo
Regression et sélection de variables
Les modèles graphiques et leur implémentation sous JAGSLes graphes acycliques dirigésJAGS
15 / 78
Les données normaldata
normaldata� package bayess� mesures de différences de vitesses de deux faisceaux de lumière
parcourant la même distance dans deux directions orthogonales(expérience d’Illingworth en 1927).
shift
Freque
ncy
−0.8 −0.6 −0.4 −0.2 0.0 0.2 0.4 0.6
05
1015
16 / 78
Approche fréquentiste vs bayesienne
Approche fréquentiste� la variable d’intérêt x est supposée suivre une loi paramétrique :
x ∼ f (·, θ)
� où θ ∈ Θ est un paramètre fixe, inconnu� que l’on estime à partir un échantillon i.i.d. x = (x1, . . . , xn)� en maximisant la vraisemblance des données
`(θ|x) =n∏
i=1
f (xi , θ)
17 / 78
Exemple 1 - données normaldata
vraisemblance des données normaldata en fonction de µ pour unmodèle N (µ, σ2)
`(θ|x) =n∏
i=1
exp{−(xi − µ)2/2σ2}/√
2πσ
∝ exp{−[n(µ− x̄)2 + s2]/2σ2}/σn
−0.8 −0.6 −0.4 −0.2 0.0 0.2 0.4 0.6
0.0e+
005.0
e−20
1.0e−
191.5
e−19
2.0e−
192.5
e−19
vraisemblance en fonction de la moyenne m
mvra
isemb
lance
18 / 78
Approche fréquentiste vs bayesienne
Approche bayesienne� permet d’introduire l’information a priori dont on dispose sur θ
(i.e. l’information disponible sur θ avant d’observer x ) :
pour Illingworth, il ne doit pas y avoir de différence de vitesse� on note p(θ) la loi a priori (prior ) de θ� on ne s’intéresse plus alors à la vraisemblance `(θ|x) mais à la loi a
posteriori (posterior )
p(θ|x) = `(θ|x)p(θ)p(x)
∝ `(θ|x)p(θ)
(on reconnait le théorème de Bayes)
Rq : contrairement à la vraisemblance, la loi a posteriori p(θ|x) est unedistribution de probabilité sur Θ
19 / 78
Approche fréquentiste vs bayesienne
Approche bayesienne� permet d’introduire l’information a priori dont on dispose sur θ
(i.e. l’information disponible sur θ avant d’observer x ) :pour Illingworth, il ne doit pas y avoir de différence de vitesse
� on note p(θ) la loi a priori (prior ) de θ� on ne s’intéresse plus alors à la vraisemblance `(θ|x) mais à la loi a
posteriori (posterior )
p(θ|x) = `(θ|x)p(θ)p(x)
∝ `(θ|x)p(θ)
(on reconnait le théorème de Bayes)
Rq : contrairement à la vraisemblance, la loi a posteriori p(θ|x) est unedistribution de probabilité sur Θ
19 / 78
Approche fréquentiste vs bayesienne
Approche bayesienne� permet d’introduire l’information a priori dont on dispose sur θ
(i.e. l’information disponible sur θ avant d’observer x ) :pour Illingworth, il ne doit pas y avoir de différence de vitesse
� on note p(θ) la loi a priori (prior ) de θ
� on ne s’intéresse plus alors à la vraisemblance `(θ|x) mais à la loi aposteriori (posterior )
p(θ|x) = `(θ|x)p(θ)p(x)
∝ `(θ|x)p(θ)
(on reconnait le théorème de Bayes)
Rq : contrairement à la vraisemblance, la loi a posteriori p(θ|x) est unedistribution de probabilité sur Θ
19 / 78
Approche fréquentiste vs bayesienne
Approche bayesienne� permet d’introduire l’information a priori dont on dispose sur θ
(i.e. l’information disponible sur θ avant d’observer x ) :pour Illingworth, il ne doit pas y avoir de différence de vitesse
� on note p(θ) la loi a priori (prior ) de θ� on ne s’intéresse plus alors à la vraisemblance `(θ|x) mais à la loi a
posteriori (posterior )
p(θ|x) = `(θ|x)p(θ)p(x)
∝ `(θ|x)p(θ)
(on reconnait le théorème de Bayes)
Rq : contrairement à la vraisemblance, la loi a posteriori p(θ|x) est unedistribution de probabilité sur Θ
19 / 78
Exemple 1 - données normaldata
� x ∼ N (µ, σ2) avec variance σ2 connue� supposons la loi a priori sur µ : N (0, σ2)� on peut calculer la loi a posteriori
p(µ|x) ∝ p(µ)`(θ|x)∝ exp{−µ2/2σ2} exp{−n(µ− x̄)2/2σ2}∝ exp{−(n + 1)[µ− nx̄/(n + 1)]2/2σ2}
⇒ µ|x ∼ N ( nn + 1
x̄ ,σ2
n + 1)
� Rq 1 : la moyenne de la loi a posteriori est plus proche de 0 quel’estimateur classique x de µ : cela est dû à la loi a priori centrée en0, qui suppose donc que µ est assez proche de 0.
� Rq 2 : l’influence de la loi a priori s’estompe quand la tailled’échantillon grandit
20 / 78
Estimation bayesienne
Inférence� estimation ponctuelle θ̂ de θ ?
� on peut choisir l’espérance de p(θ|x)� on peut aussi choisir la maximum a posteriori (MAP) : la valeur θ̂ qui
maximise p(θ|x) en θ(mais pas toujours simple à trouver...)
� l’approche bayesienne est une approche inférentielle complète quipermet de tout faire : estimation, intervalle de confiance, testd’hypothèse, vérification de modèle, ...
21 / 78
Exercice 1
1. récupérer les données normaldata dans le package bayess. Dansces données, la seconde variable (que l’on appelera shift) mesurede différences de vitesses de deux faisceaux de lumière parcourantla même distance dans deux directions orthogonales (expérienced’Illingworth en 1927).
2. estimer l’espérance µ de la variable shift par maximum devraisemblance. Tracer la vraisemblance.
3. en supposant une loi a priori N (0, σ2) sur µ, avec σ2 la variance de lavariable shift, estimer µ par maximum a posteriori. Tracer la loi aposteriori.
22 / 78
Différents types de loi a priori
Le choix de la loi a priori peut être fait :� en fonction du réel a priori dont on dispose
(mais attention, la loi a posteriori n’est pas toujours calculableanalytiquement...)
� de sorte à permettre le calcul analytique de la loi a posteriori : onparle de loi a priori conjuguée(mais attention à l’influence des hyper-paramètres de la loi conjuguée...)
� de sorte à atténuer l’effet de l’a priori : on parle de loi a priori noninformative(dans ce cas la loi a posteriori se rapproche de la vraisemblance...)
23 / 78
Différents types de loi a priori
Le choix de la loi a priori peut être fait :� en fonction du réel a priori dont on dispose
(mais attention, la loi a posteriori n’est pas toujours calculableanalytiquement...)
� de sorte à permettre le calcul analytique de la loi a posteriori : onparle de loi a priori conjuguée(mais attention à l’influence des hyper-paramètres de la loi conjuguée...)
� de sorte à atténuer l’effet de l’a priori : on parle de loi a priori noninformative(dans ce cas la loi a posteriori se rapproche de la vraisemblance...)
23 / 78
Différents types de loi a priori
Le choix de la loi a priori peut être fait :� en fonction du réel a priori dont on dispose
(mais attention, la loi a posteriori n’est pas toujours calculableanalytiquement...)
� de sorte à permettre le calcul analytique de la loi a posteriori : onparle de loi a priori conjuguée(mais attention à l’influence des hyper-paramètres de la loi conjuguée...)
� de sorte à atténuer l’effet de l’a priori : on parle de loi a priori noninformative(dans ce cas la loi a posteriori se rapproche de la vraisemblance...)
23 / 78
Lois a priori conjuguées
Quand on ne dispose pas d’a priori fiable, on opte souvent pour le choixde la simplicité, c’est-à-dire le choix d’une loi a priori conjuguée quifacilite le calcul de la loi a posteriori :
24 / 78
Lois a priori non informative
Une loi non informative est une loi qui porte une information sur leparamètre à estimer dont le poids dans l’inférence est réduit.� par exemple, si θ peut prendre q valeurs, alors on choisit p(θ) = 1/q
pour tout θ ∈ Θ� loi de Jeffreys :
� c’est une méthode pour construire des loi donnant un poids plusimportant aux valeurs θ où l’information de Fisher I(θ) (quantité d’info. surθ apporté par x) est grande : p(θ) = C
√I(θ)
� cette méthode conduit souvent à des lois impropres (∫
Θp(θ)dθ = +∞).
25 / 78
Intervalle de crédibilité bayesien
� dans une approche bayesienne on parle d’intervalle de crédibilitéplutôt que d’intervalle de confiance :
p(θ ∈ IC(θ, x)|x) = 1− α
où 1− α est la probabilité qu’un θ ∼ p(θ|x) appartienne à l’intervalleIC(θ, x).
� le calcul de cet intervalle est trivial dès lors que l’on dispose dep(θ|x), en utilisant les quantiles de cette dernière(ce qui n’est généralement pas le cas en dehors du contexte de loi a prioriconjuguée, mais dans ce cas il suffit d’avoir recours à un algorithmed’approximation ...)
26 / 78
Exercice 2
On veut connaı̂tre la probabilité θ de tomber sur face pour une piècedonnée.Nous considérons plusieurs a priori :1. loi bêta(1,1) : toutes les valeurs de θ sont équiprobables (a priori non
informatif) : p(θ) ∝ 1,∀θ2. loi bêta(2,2), bêta(4,4), bêta(8,8)Nous observons l’échantillon suivant : x = {1,1,1,0,1,1,0,0,1,1}, soity = 7 ”face” et 3 ”pile”.
Questions1. Quelle est la vraisemblance de x ?2. Pour chaque loi a priori :
2.1 calculer et représenter la loi a posteriori de θ,2.2 estimer θ ponctuellement,2.3 donner un intervalle de crédibilité de θ.
27 / 78
Exercice 2 - correction1. vraisemblance : p(x |θ) = θ7(1− θ)32. la loi bêta(a,b) étant conjuguée pour la loi binomiale, on peut calculer
la loi a posteriori :� loi a priori : p(θ) = bêta(a, b) ∝ θa−1(1− θ)b−1� loi a posteriori : p(θ|x) = bêta(a + 7, b + 3) ∝ θa+7−1(1− θ)b+3−1
28 / 78
Exercice 2 - correction1. vraisemblance : p(x |θ) = θ7(1− θ)32. la loi bêta(a,b) étant conjuguée pour la loi binomiale, on peut calculer
la loi a posteriori :� loi a priori : p(θ) = bêta(a, b) ∝ θa−1(1− θ)b−1� loi a posteriori : p(θ|x) = bêta(a + 7, b + 3) ∝ θa+7−1(1− θ)b+3−1
28 / 78
Exercice 2 - correction
0.0 0.2 0.4 0.6 0.8 1.0
prior = loi beta(1,1)
theta
vraisemblance
prior
posterior
0.0 0.2 0.4 0.6 0.8 1.0
prior = loi beta(2,2)
theta
vraisemblance
prior
posterior
0.0 0.2 0.4 0.6 0.8 1.0
prior = loi beta(4,4)
theta
vraisemblance
prior
posterior
0.0 0.2 0.4 0.6 0.8 1.0
prior = loi beta(8,8)
theta
vraisemblance
prior
posterior
29 / 78
Exercice 2 - correction
Estimation ponctuelle de θLa loi a posteriori étant une bêta(a+7,b+3), on peut estimer θ par� l’espérance de sa loi a posteriori : a+7a+b+10� le mode de sa loi a posteriori : a+6a+b+8
Intervalle de crédibilité de θL’intervalle de crédibilité se calcule à partir des quantiles de la loi aposteriori
30 / 78
Contents
Rappel sur les principales lois de probabilités
Statistique bayesienneLes outils bayesiensChoix de modèle bayésienMéthodes de Monte Carlo
Regression et sélection de variables
Les modèles graphiques et leur implémentation sous JAGSLes graphes acycliques dirigésJAGS
31 / 78
Tester la validité d’une hypothèse
Question : est-ce que µ = 0 pour les normaldata ?
Approche fréquentisteOn met en place un test de Student pour décider entre� H0 : µ = 0� H1 : µ 6= 0
Approche bayésienneOn compare les deux modèles� M1 : x ∼ N (0, σ2)� M2 : x ∼ N (µ, σ2)
32 / 78
Tester la validité d’une hypothèse
Question : est-ce que µ = 0 pour les normaldata ?
Approche fréquentisteOn met en place un test de Student pour décider entre� H0 : µ = 0� H1 : µ 6= 0
Approche bayésienneOn compare les deux modèles� M1 : x ∼ N (0, σ2)� M2 : x ∼ N (µ, σ2)
32 / 78
Tester la validité d’une hypothèse
Question : est-ce que µ = 0 pour les normaldata ?
Approche fréquentisteOn met en place un test de Student pour décider entre� H0 : µ = 0� H1 : µ 6= 0
Approche bayésienneOn compare les deux modèles� M1 : x ∼ N (0, σ2)� M2 : x ∼ N (µ, σ2)
32 / 78
Facteur de bayes
Choix entre deux modèlesOn veut comparer p(M1|x) et p(M2|x).Pour cela on introduit le Bayes factor :
B21(x) =p(x |M2)p(x |M1)
=p(M2|x)/p(M1|x)
p(M2)/p(M1)
qui correspond au odds ratio ou rapport de vraisemblance classique 1,sauf qu’ici le paramètre est intégré et non maximisé sous chaquemodèle
1déviance D = −2 ln(p(x |M1, θ̂)/p(x |M2, θ̂))33 / 78
Facteur de bayes
Echelle d’évidence de Jeffrey’sBayes factor :
B21(x) =p(x |M2)p(x |M1)
=p(M2|x)/p(M1|x)
p(M2)/p(M1)
� si log10(B21(x)) ∈ [0,0.5], la certitude que M1 est fausse est faible� si log10(B21(x)) ∈ [0.5,1], la certitude que M1 est fausse est
substantielle� si log10(B21(x)) ∈ [1,2], la certitude que M1 est fausse est forte� si log10(B21(x)) > 2, la certitude que M1 est fausse est décisive
et idem en faveur de M1 pour les valeurs négatives.
Rq : log10(B21(x)) > 1⇔ B21 > 10, log10(B21(x)) > 2⇔ B21 > 100,...34 / 78
Facteur de bayes
Calcul du facteur de bayesBayes factor :
B21(x) =p(M2|x)/p(M1|x)
p(M2)/p(M1)=
∫Θ2`2(θ2|x)p2(θ2)dθ2∫
Θ1`1(θ1|x)p1(θ1)dθ1
qui peut parfois se calculer analytiquement.Quand ce n’est pas le cas, on utilise des approximations numériques(Méthodes de Monte Carlo)
35 / 78
Tests d’hypothèse sous R
� Pour comparer deux populations, on utilisera :� fréquentiste : t.test ou wilcox.test� bayésien : ttestBF
� Pour comparer plus de deux populations, on utilisera :� fréquentiste : aov ou kruskal.test� bayésien : anovaBF
36 / 78
Exemple 2 - données sleep
Les données sleep contiennent l’effet de 2 somnifères (group) sur ladurée de sommeil, pour 10 patients.
1 2
−1
01
23
45
group
extr
a
� tester la différence entre les groupes avec un approche classique
37 / 78
Exemple 2 - données sleep
� nous allons maintenant évaluer la différence entre les groupes avecune approche bayésienne :� δ = µ1−µ2
σ� on compare les modèles
� M1 : (µ1 − µ2)/σ ∼ N (0, 1)� M2 : (µ1 − µ2)/σ ∼ N (δ, 1) avec δ ∼ Cauchy(rscale)
� La certitude que M1 est fausse est donc forte !
38 / 78
Exemple 2 - données sleep� nous pouvons également simuler la distribution a posteriori de
(µ1 − µ2)/σ
0 200 400 600 800 1000
−3−2
−10
Iterations
Trace of var1
−3 −2 −1 0 1
0.0
0.2
0.4
0.6
0.8
Density of var1
N = 1000 Bandwidth = 0.1139
39 / 78
Exercice 3ToothGrowth contient la longueur des dents de 60 cochons d’Inde enfonction de deux sources de vitamine C (jus d’orange et acide ascorbique).
0.5 1.0 1.5 2.0
510
1520
2530
35
0.5 1.0 1.5 2.0
ToothGrowth data: length vs dose, given type of supplement
len
OJ
VC
Given : supp
Tester les effets sources et doses avec :� une approche classique� une approche bayésienne
40 / 78
Contents
Rappel sur les principales lois de probabilités
Statistique bayesienneLes outils bayesiensChoix de modèle bayésienMéthodes de Monte Carlo
Regression et sélection de variables
Les modèles graphiques et leur implémentation sous JAGSLes graphes acycliques dirigésJAGS
41 / 78
Méthodes de Monte CarloLe calcul de la loi a posteriori et des facteurs de Bayes font intervenir lecalcul de : ∫
Θ
`(θ|x)p(θ)dθ
qui est souvent non calculable analytiquement.
Méthode de Monte-CarloPour estimer l’intégrale
I =∫
h(x)g(x)dx
� simuler x1, . . . , xn ∼ g(x)� approcher I par
În =1n
n∑i=1
h(xi )
42 / 78
Méthodes de Monte CarloLe calcul de la loi a posteriori et des facteurs de Bayes font intervenir lecalcul de : ∫
Θ
`(θ|x)p(θ)dθ
qui est souvent non calculable analytiquement.
Méthode de Monte-CarloPour estimer l’intégrale
I =∫
h(x)g(x)dx
� simuler x1, . . . , xn ∼ g(x)� approcher I par
În =1n
n∑i=1
h(xi )
42 / 78
Méthodes de Monte Carlo
Lorsqu’il est difficile de simuler suivant g(·), on peut utiliser l’importancesampling
Importance SamplingPour estimer l’intégrale
I =∫
h(x)g(x)dx =∫
h(x)g(x)γ(x)
γ(x)dx
� simuler x1, . . . , xn ∼ γ(x)� calculer wi = g(xi )/γ(xi )� approcher I par
În =∑n
i=1 w1h(x1)∑ni=1 wi
43 / 78
Exercice 4On cherche dans cet exercice à approcher l’intégrale I =
∫ 20 e− x22 dx .
Pour cela nous utilisons une méthode de Monte-Carlo. Soit X1, . . . ,Xnun échantillon de variables aléatoires uniformes sur [0,2], et soit
Yi = e−X2i2 pour tout i = 1,n.
� Que vous dis la loi des grands nombres sur la convergence deȲn = 1n
∑ni=1 Yi lorsque n→∞ ?
� Utiliser ce résultat pour approcher l’intégrale I, en simulant nvariables aléatoires Yi (n = 100,104,106).
� Répéter 100 fois ces approximations, et représenter les résultatssous la forme d’une boı̂te à moustache pour chacune des 3 valeursde n utilisées. Que constatez-vous ?
� Représenter cette fois ces résultats sous la forme d’un histogramme(pour chaque valeur de n). Avez-vous une idée de la distribution deces résultats d’approximation ? Que vous dit le théorème centralelimite ?
44 / 78
Plan
Rappel sur les principales lois de probabilités
Statistique bayesienneLes outils bayesiensChoix de modèle bayésienMéthodes de Monte Carlo
Regression et sélection de variables
Les modèles graphiques et leur implémentation sous JAGSLes graphes acycliques dirigésJAGS
45 / 78
Régression linéaire ordinaire
Le modèle linéaire ordinaire
y|α,β, σ2 ∼ N (α1n + xβ, σ2In)avec donc
E [yi |α,β, σ2] = α + β1xi1 + . . .+ βpxipV (yi |α,β, σ2) = σ2
L’estimation par maximum de vraisemblance (débiaisé pour σ̂2) donne
α̂ = ȳβ̂ = (x′x)−1x′(y− ȳ)
σ̂2 =(y− α1n + xβ)′(y− α1n + xβ)
n − p − 1 =s2
n − p − 1
46 / 78
Régression bayésienne
avec a priori non informatif de Jeffreys
y|α,β, σ2 ∼ N (α1n + xβ, σ2In)(α,β, σ2) ∝ σ−2
Les estimateurs bayésiens (espérance Eπ de la loi a posteriori) sontalors :
Eπ[α|y] = α̂Eπ[β|y] = β̂
Eπ[σ2|y] = s2/(n − p − 3)
Notons que les estimations de α et β sont les mêmes que dans le casordinaires, et que l’estimation de σ2 est un peu plus grande (pluspessimiste).
47 / 78
Régression bayésienne
avec a priori informatif de Zellner� idée de Zellner : proposer un a priori conjugué mais en réduisant le
nombre d’hyper-paramètres⇒ a priori gaussien sur β dont on doit fixer l’espérance β̃ et le facteur
d’importance g(g = n⇔ a priori a autant d’importance qu’une observation,g = 1⇔ et il a autant d’importance que toutes les données ensemble)
⇒ a priori non informatif de Jeffreys (impropre) sur (α, σ2)
y|α,β, σ2 ∼ N (α1n + xβ, σ2In)β|α, σ2 ∼ N (β̃,gσ2(x′x)−1)(α, σ2) ∝ σ−2
L’estimateur bayésien pour β est alors Eπ[β|y] = gg+1 (β̂ + β̃/g)48 / 78
Régression bayésienne
Quelques a priori particuliers bien connus� ridge regression : β ∼ N (0, λI):
β̂ridge = argminβ{
n∑i=1
(yi − α−p∑
j=1
βjxij )2 + λp∑
j=1
β2j }
� LASSO regression : β ∼ Laplace(λ):
β̂LASSO = argminβ{
n∑i=1
(yi − α−p∑
j=1
βjxij )2 + λp∑
j=1
|βj |}
49 / 78
Régression bayésienne sous R : BayesRegLa fonction BayesReg (package bayess) implémente une régressionbayésienne avec a priori de Zellner
50 / 78
Régression bayésienne sous R : BayesReg
La fonction BayesReg (package bayess) implémente une régressionbayésienne avec a priori de Zellner
50 / 78
Exercice 5 : données longley
� charger les données longley, les étudier puis réaliser unerégression ordinaire
� comparer à une régression bayésienne en jouant sur leshyper-paramètres de l’a priori de Zellner
51 / 78
Choix de modèle en régression bayésienne
� avec p variables, le nombre de modèles possibles est 2p
� il est impossible de comparer tous les modèles dans une approchefréquentiste classique
� en régression bayésienne, le choix du modèle (i.e. des variables àinclure dans le modèle) est considéré comme un paramètre, avec una priori généralement uniforme (ou plus généralement beta-binomial).
� la fonction ModChoBayesReg implémente ce modèle de régressionbayésienne intégrant le choix de modèle.� si p < 15 les probabilités a posteriori de tous les modèles sont calculées� si p > 15, une approximation MCMC est utilisée
52 / 78
Régression bayésienne sous R : BayesReg
La fonction ModChoBayesReg implémente un modèle de régressionbayésienne avec a priori de Zellner intégrant le choix de modèle.
53 / 78
Exercice 5 (suite) : données longley
� choisissez le meilleur modèle de régression bayésienne, en jouantsur le paramètre g de Zellner
54 / 78
Bayesian Model Averaging
� choisir un unique modèleMm parmi 2p modèles possible peut-êtrerestrictif, sachant que les différence entre leur probabilité a posteriorisont parfois faible
� le Bayesian Model Averaging préconise de moyenner les modèles enfonction de leur probabilité a posteriori. Ainsi :
Eπ[β|y] =M∑
m=1
Eπ[β|y|Mm] p(Mm|y)
où M < 2p est le nombre de modèle conservés (on ne conserve que lesmodèles dont la probabilité a posteriori est supérieure à 1/OR le maximumdes probabilités a posteriori).
� cette technique est utilisable dès lors que l’on fait de la prédiction (enclassification également donc), et quelque soit le type de modèle quel’on utilise (réseaux de neurones, arbres de régression ...)
55 / 78
Bayesian Model Averaging
� la fonction bicreg du package BMA implémente cette technique,mais sans grand contrôle sur le choix des a priori.
� la fonction bas.lm du package BAS permet de plus contrôler les loi apriori.
56 / 78
Exercice 5 (suite) : données longley
� Tester le Bayesian Model Averaging avec les fonctions bicreg.
57 / 78
Pour aller plus loin...
Sélection bayésienne de variables en régression linéaire
Gilles Celeux∗, Jean-Michel Marin†et Christian Robert‡
18 mai 2006
Résumé
Nous nous intéressons à la sélection bayésienne de variables en régression linéaire.Nous en abordons tous les aspects afin de fournir au lecteur un guide précis. Nousétudions successivement les cas où les loi a priori sur les paramètres des modèles sontinformatives et non informatives. Dans le cas informatif, nous proposons d’utiliser laloi a priori de Zellner pour le modèle contenant toutes les variables et une loi a prioride Zellner compatible avec la précédente pour chaque sous-modèle. Dans le cas noninformatif, nous montrons d’abord que l’inférence bayésienne utilisant des loi a priorifaiblement informatives construites à partir de la loi de Zellner est très sensible à lavaleur prise par un hyperparamètre, ce qui nous amène à déconseiller son utilisation.Nous proposons alors une nouvelle loi a priori hiérarchique basée sur la loi de Zellner.Nous montrons que l’utilisation de cette loi a priori assure d’excellentes performances desélection, d’un point de vue explicatif, par rapport aux critères fréquentiels classiques.Enfin, lorsque le nombre de variables est important, nous considérons les aspects algo-rithmiques et, en particulier, nous montrons que l’échantillonneur de Gibbs fonctionneparfaitement bien pour sélectionner les variables pertinentes, contrairement à ce quiest parfois affirmé.
Mots clés : modèle de régression linéaire, sélection bayésienne de variables,loi a priori de Zellner, lois a priori compatibles, modèles hiérarchiques,échantillonneur de Gibbs
Abstract
Bayesian variable selection in linear regression is considered. All its aspects arestudied in order to provide a precise and efficient userguide. The informative and non-informative cases are analysed. In the informative case, it is suggested to choose theZellner G-prior on the full model and to derive compatible prior distributions for eachsub-model. In the non-informative case, it is shown that, if a Zellner weakly informative
∗INRIA FUTURS, Équipe SELECT, [email protected]†Auteur correspondant : INRIA FUTURS, Équipe SELECT et CEREMADE, Université Paris Dauphine,
Université Paris-Sud, Laboratoire de Mathématiques, 91425 Orsay, [email protected]‡CEREMADE, Université Paris Dauphine et CREST, INSEE, [email protected]
1
Bayesian Model Selection in Social Research STOR
Adrian E. Raftery
Sociological Methodology, Vol. 25 (1995), 111-163.
Stable URL: http://links.jstor.org/sici ?sici=0081-1750%281995%2925%3C 111 %3ABMSISR %3E2.0.C0%3B2-0
Your use of the JSTOR archive indicates your acceptance of JSTOR' s Terms and Conditions of Use, available at http://www.jstor.org/about/terms.html. JSTOR's Terms and Conditions of Use provides, in part, that unless you
have obtained prior permission, you may not download an entire issue of a journal or multiple copies of articles, and you may use content in the JSTOR archive only for your personal, non-commercial use.
Each copy of any part of a JSTOR transmission must contain the same copyright notice that appears on the screen or printed page of such transmission.
Sociological Methodology is published by American Sociological Association. Please contact the publisher for further permissions regarding the use of this work. Publisher contact information may be obtained at http://www.jstor.org/joumals/asa.html.
Sociological Methodology ©1995 American Sociological Association
JSTOR and the JSTOR logo are trademarks of JSTOR, and are Registered in the U.S. Patent and Trademark Office. For more information on JSTOR [email protected].
©2003 JSTOR
http://www .j stor.org/ Tue Oct 14 20:31:39 2003
58 / 78
Exercice 6
� Réaliser une régression bayésienne sur les données de votre choix(les vôtres idéalement)...
59 / 78
Plan
Rappel sur les principales lois de probabilités
Statistique bayesienneLes outils bayesiensChoix de modèle bayésienMéthodes de Monte Carlo
Regression et sélection de variables
Les modèles graphiques et leur implémentation sous JAGSLes graphes acycliques dirigésJAGS
60 / 78
Contents
Rappel sur les principales lois de probabilités
Statistique bayesienneLes outils bayesiensChoix de modèle bayésienMéthodes de Monte Carlo
Regression et sélection de variables
Les modèles graphiques et leur implémentation sous JAGSLes graphes acycliques dirigésJAGS
61 / 78
Les graphes acycliques dirigés
Les graphes acycliques dirigés (DAG)� un outil de modélisation général.� graphique qui montre les relations (stochastiques et déterministes)
entre les paramètres et les données.� idée : retranscrire toutes les étapes qui, à partir des paramètres,
permettent de générer les données.
Propriétés des DAG� acyclique : pas de cycle� dirigés : les liens ont un sens (direction)
62 / 78
Formalisme des DAG
� Noeuds du graphe� covariables : donnée fixe, supposée sans erreur : rectangle
ex: âge� variable aléatoire (donnée observée à modéliser, paramètres) : ellipse
ex: poids à la naissance, intercept, pente� Liens du graphe
� lien déterministe : flèche en pointillésex: µi = α + β × agei
� lien stochastiques : flèche en trait pleinex: yi ∼ N (µi , σ2)
� Tous les noeuds du graphe à un même niveau sont contenus dans uncadre
63 / 78
Exemple 3 : poids des enfants à la naissance
µf
µg
µi
sexei
yi
σ
i:1..n
64 / 78
Exemple 3 : poids des enfants à la naissance
Partie déterministeµi = µf si l’enfant est une fille (sexei = f )µi = µg si l’enfant est un graçon (sexei = g)
Partie stochastique
yi ∼ N (µi , σ2)
Information a priori� µf et µg sont uniformes entre 2.5kg et 5kg� σ est uniforme entre 0.2kg et 0.8kg
65 / 78
Exemple 3 : poids des enfants à la naissance
Partie déterministeµi = µf si l’enfant est une fille (sexei = f )µi = µg si l’enfant est un graçon (sexei = g)
Partie stochastique
yi ∼ N (µi , σ2)
Information a priori� µf et µg sont uniformes entre 2.5kg et 5kg� σ est uniforme entre 0.2kg et 0.8kg
65 / 78
Contents
Rappel sur les principales lois de probabilités
Statistique bayesienneLes outils bayesiensChoix de modèle bayésienMéthodes de Monte Carlo
Regression et sélection de variables
Les modèles graphiques et leur implémentation sous JAGSLes graphes acycliques dirigésJAGS
66 / 78
Projet BUGS: Bayesian inference Using GibbsSampling
Développement et mise à disposition de logiciels flexibles permettant demettre en oeuvre l’inférence bayésienne sur des modèles complexes, enutilisant les MCMC.Quelques outils disponibles :� Winbugs� Openbugs� JAGS (Just Another Gibbs sampler - Martyn Plummer)� Stan (nouveaux algorithmes - Andrew Gelman)� RevBayes (pour la phylogénie)� ...
67 / 78
Installation de JAGS et rjags
� installer JAGShttp://sourceforge.net/projects/mcmc-jags/
� installer le package R rjags� guide complet de JAGS :http://sourceforge.net/projects/mcmc-jags/files/Manuals/
68 / 78
http://sourceforge.net/projects/mcmc-jags/http://sourceforge.net/projects/mcmc-jags/ files/Manuals/
Langage de type BUGS
� c’est un langage déclaratif qui ressemble à R� déclaration des liens logiques :noeud
Code de l’exemple 3 : poids des enfants à lanaissance
A écrire dans un fichier texte comme ci-dessous.
70 / 78
Langage de type BUGS� fonctions de baseexp(x) log(x) sqrt(x) min(x1,x2)step(x) (1 si x ≥ 0, 0 sinon)ifelse(x,a,b) (si x alors a sinon b)
� fonctions vectoriellesmean(v[]) sd(v[]) inverse(M[])ranked(v[],k) (k -ème élément de v dans l’ordre croissant)
� fonction de lien pouvant être utilisé à gauche de
Utiliser rjags
� il faut commencer par définir les données (attention à la cohérence desnoms dans le modèle et dans les données)data
Utiliser rjags
� il faut commencer par définir les données (attention à la cohérence desnoms dans le modèle et dans les données)data
Utiliser rjags
� il faut commencer par définir les données (attention à la cohérence desnoms dans le modèle et dans les données)data
Utiliser rjags
� on itére l’algorithme MCMC sur une période de chauffeupdate(m1, 3000)
� puis de nouvelles itérations permettant de générer les paramètresselon leur loi a posteriorimcmc1
Utiliser rjags
� on peut aussi représenter les simulations des paramètres selon leurlois a posteriori par l’algo. MCMCplot(mcmc1)
4000 4500 5000 5500 6000
3400
3600
3800
4000
Iterations
Trace of moyennes[1]
3400 3600 3800 4000
0.00
00.
002
0.00
4
Density of moyennes[1]
N = 2000 Bandwidth = 17.54
4000 4500 5000 5500 6000
3000
3400
3800
Iterations
Trace of moyennes[2]
2800 3000 3200 3400 3600 3800
0.00
000.
0010
0.00
200.
0030
Density of moyennes[2]
N = 2000 Bandwidth = 22.69
4000 4500 5000 5500 6000
400
500
600
700
800
Iterations
Trace of sigma
400 500 600 700 800
0.00
00.
002
0.00
40.
006
Density of sigma
N = 2000 Bandwidth = 10.51
74 / 78
Utiliser rjags� Pour savoir si on a atteint l’état stationnaire de la chaine MCMC, on
peut calculer l’indice de réduction de la variance de Gelman :√variance totale
variance intra-chaı̂nes
gelman.diag(mcmc1)gelman.plot(mcmc1)
4000 4500 5000 5500 6000
1.00
1.05
1.10
1.15
1.20
last iteration in chainsh
rink
fact
or
median97.5%
moyennes[1]
4000 4500 5000 5500 6000
1.00
01.
005
1.01
01.
015
1.02
0
last iteration in chain
shrin
k fa
ctor
median97.5%
moyennes[2]
4000 4500 5000 5500 6000
1.00
1.05
1.10
1.15
last iteration in chain
shrin
k fa
ctor
median97.5%
sigma
Ici l’indice est de 1, ce qui signifie que les 3 chaı̂nes échantillonnentsuivant la même distribution (a posteriori)
75 / 78
Utiliser rjags
� Une chaı̂ne MCMC ne doit pas être auto-corrélée (sinon il faut plusd’itérations). On peut vérifier cela à l’aide de la commande suivante :
autocorr.plot(mcmc1[[1]])0 5 10 15 20 25
−1.
0−
0.5
0.0
0.5
1.0
Lag
Aut
ocor
rela
tion
moyennes[1]
0 5 10 15 20 25
−1.
0−
0.5
0.0
0.5
1.0
Lag
Aut
ocor
rela
tion
moyennes[2]
0 5 10 15 20 25
−1.
0−
0.5
0.0
0.5
1.0
Lag
Aut
ocor
rela
tion
sigma
Ici pas de soucis particulier.
76 / 78
Utiliser rjags
� Enfin, on peut exploiter les chaı̂nes MCMC pour obtenir lesestimations bayésienne des paramètres :
77 / 78
Exercice 7
� Toujours sur les poids des enfants à la naissance, introduire d’autresvariables (présente dans le fichier).
78 / 78
Rappel sur les principales lois de probabilitésStatistique bayesienneRegression et sélection de variablesLes modèles graphiques et leur implémentation sous JAGS