An´
alise Bayesiana de Decis˜
ao
Parte 5: posteriores por simula¸c˜
ao
(aula 2)
Paul Kinas
Integra¸c˜
ao de Monte Carlo
Integra¸c˜ao de Monte Carlo: Seja {θ1, . . . , θn} uma amostra de n
vari´aveis aleat´orias independentes e todas distribuidas com
densidade p(θ|x ). Ent˜ao, para n suficientemente grande, segue
pela Lei dos Grandes N´umeros (Feller, 1968), que
Z H(θ)p(θ|x )dθ ≈ 1 n n X j =1 H(θj)
Exemplos de fun¸c˜
oes H(θ)
1 A m´edia E (Θ) corresponde a fun¸c˜ao H(θ) = θ
2 A variˆancia V (Θ) corresponde a fun¸c˜ao H(θ) = (θ − E (Θ))2
3 A probabilidade P(Θ > θ0) correponde a fun¸c˜ao indicadora
H(θ) = I[θ>θ0]
tal que IA = 1 quando A ´e verdadeiro e IA = 0 quando A ´e
Procedimentos para gerar amostras MC
O m´etodo de re-amostragem por importˆancia (Sampling
Importance Resampling – SIR).
O m´etodo que utiliza cadeias de Markov (Markov Chain
Monte Carlo – MCMC )
Distribui¸c˜
ao Posterior por Simula¸c˜
ao: MCMC
1 Markov Chain Monte Carlo (MCMC)
2 Cadeia de Markov (discreta)
uma distribui¸c˜ao de probabilidade sobre x1, ..., xk no instante t
(pt)
uma matriz de (probabilidades de) transi¸c˜ao M com elemento m(i , j ) para linha i e coluna j
m(i , j ) ´e a probabilidade de que um elemento em i no instante t esteja em j no instante t + 1.
Se o vetor pt+1= pt = pe ent˜ao pe ´e adistribui¸c˜ao
estacion´ariaassociada a matriz M
3 Dadas algumas condi¸c˜oes de regularidade a M, garante-se que
a distribui¸c˜ao estacion´aria existe
4 Pode-se obter uma amostra (Monte Carlo) da distribui¸c˜ao
Distribui¸c˜
ao Posterior por Simula¸c˜
ao: MCMC
1 pt(i ) = P(θt= xi), para i = 1, 2, . . . , k 2 pt+1(j ) = P(θt+1= xj), para j = 1, 2, . . . , k 3 m(i , j ) = P(θt+1= xj|θt= xi)
4 A linha i soma 1; ou seja Pk
j =1m(i , j ) = 1.
5 pt+1(j ) =Pk
i =1pt(i ) · m(i , j ) para todo j = 1, 2, . . . , k
6 Em nota¸c˜ao matricial: pT
t+1= pTt ∗ M
7 Se pT
e = peT ∗ M, ent˜ao pe ´e adistribui¸c˜ao estacion´aria
Exemplo das Ilhas: Cadeia de Markov
Quatro ilhas x1, x2, x3, x4
Matriz de Transi¸c˜ao entre dias consecutivos [,1] [,2] [,3] [,4]
[1,] 0.5 0.3 0.2 0.0
[2,] 0.2 0.4 0.3 0.1
[3,] 0.1 0.1 0.6 0.2
Exemplo das Ilhas: Cadeia de Markov
> # probabilidade no instante t e (t+1) > p.t <- rep(1/4,4) > p.tt <- matrix(t(p.t)%*%M) > p.e <- c(0.2043,0.2256,0.3993,0.1707) > data.frame(p.t=p.t,p.tt=p.tt,p.e=p.e) p.t p.tt p.e 1 0.25 0.225 0.2043 2 0.25 0.250 0.2256 3 0.25 0.350 0.3993 4 0.25 0.175 0.1707Exemplo das Ilhas: distribui¸c˜
ao estacion´
aria por simula¸c˜
ao
> pos <- numeric()
> pos[1] <- 2 # local de partida (ilha 2)
> for(i in 2:70000) {
+ pos[i] <- sample(1:4,size=1,prob=M[pos[i-1],])
+ }
> # descartar 10000 valores iniciais e > # fazer frequencia relativa dos demais > round(table(pos[10001:70000])/(60000),3)
1 2 3 4
0.204 0.227 0.400 0.169
> # distribuicao estacionaria exata > round(p.e,3)
Markov Chain Monte Carlo - MCMC
(vers˜
ao simplificada)
1 Fixar algum valor inicial θ1, e calcular Y1 = p(x |θ1)p(θ1); 2 Para i = 2, ..., m, gerar um novo valor θ0 da distribui¸c˜ao
uniforme sobre o intervalo [θi− ∆, θi + ∆] (para algum ∆
pr´e-fixado);
3 Calcular Y0 = p(x |θ0)p(θ0) e definir Q = min(1, Y0/Yi).
Se Q = 1 ent˜ao θ0 ´e aceito (i.e. θi +1= θ0 e Yi +1= Y0),
Se Q < 1 ent˜ao θ0 ´e aceito com probabilidade Q. Se θ0 for rejeitado, θi +1= θi e Yi +1= Yi
4 Ap´os completar os m passos da Cadeia de Markov, eliminar a
Classifica¸c˜
ao de Gal´
axias (1)
1 objetivo: estimar a propor¸c˜ao θ de gal´axias espirais no
universo
2 dados: n = 50 gal´axias observadas e x = 20 classificadas
como espirais 3 priori vaga: ln θ 1−θ ∼ Gauss(0, 3.5)
Classifica¸c˜
ao de Gal´
axias (2)
> #dados: 50 galaxias sendo 20 tipo espiral > n <- 50; y <- 20
> # parametros priori logit-Gauss > m.0 <- 0.0; s.0 <- 3.5
> # Inicializacao da Cadeia de Markov: > # a) a semente
> teta <- numeric() > teta[1] <- 0.5
> # b) o kernel da densidade posterior de teta[1] > p.0 <- dbinom(y,n,teta)*
Classifica¸c˜
ao de Gal´
axias (3)
> # c) Cadeia de Markov > for(i in 2:11000) + { tt <- runif(1) + l.tt <- log(tt/(1-tt)) + p.tt <- dbinom(y,n,tt)*dnorm(l.tt,m.0,s.0) + Q <- min(1,p.tt/p.0) + ind <- rbinom(1,1,Q)+ teta[i] <- tt*ind + teta[i-1]*(1-ind)
+ p.0 <- p.tt*ind + p.0*(1-ind)
Classifica¸c˜
ao de Gal´
axias (4)
> # d) eliminar 1000 valores burn-in > teta.s <- teta[1001:11000]
> # e) posterior via aprox. Monte Carlo > mean(teta.s)
[1] 0.4037409
> quantile(teta.s,c(.025,.5,.975))
2.5% 50% 97.5%
0.2744221 0.4019787 0.5365439
> # razao chances em favor de H: theta < 0.5 > p0 <- sum(teta.s < 0.5)/length(teta.s) > p0/(1-p0)
Classifica¸c˜
ao de Gal´
axias (5)
teta 0.2 0.3 0.4 0.5 0.6 0.7 0 1 2 3 4 5 6V´
arias Formas de Efetuar MCMC
1 Metropolis:
dado θt, gerar uma proposta Y a partir de uma distribui¸c˜ao
sim´etrica q(Y |θt)
R(Y |θt) = min
1,p(Y )
p(θt)
se p(·) ´e a posterior, calcular a probabilidade de aceita¸c˜ao θt+1= Y com probabilidade R(Y |θt) e θt+1= θt c.c.
2 Hastings:
distribui¸c˜ao q(Y |θt) pode ser assim´etrica
a probabilidade de aceita¸c˜ao ´e calculada por R(Y |θt) = min
1,p(Y )q(θt|Y ) p(θt)q(Y |θt)
Estimar Densidade de Carvalhos via Modelo Poisson
1 Objetivo: estimar a densidade m´edia de ”red oak” (Quercus
rubra) (µ) no Van Cortland Park, N.Y. (McCarthy, 2007; p.70 a 75 )
2 O n´umero de ´arvores Yi foi contado em 10 quadrados de
400m2. Isto ´e, Yi ∼ Poi (µ) para i = 1, ..., 10
3 Duas alternativas de solu¸c˜ao:
a Uma priori vaga para o parˆametro µ ∼ Gama(0.01, 0.01) b Modelo hier´arquico em que µ se transforma em uma vari´avel
latente Mi
Yi∼ Poi (Mi) e log Mi∼ N(m, s), com prioris vagas
m ∼ N∗(0, 1.0E − 6) e s−2∼ Gama(0.01, 0.01)
4 as distribui¸c˜oes posteriores para log µ (a) e para m e s (b)
Estimar Densidade de Carvalhos via Modelo Poisson
Modelo [a]que tem densidade m´edia fixa µ
> library(rjags) > load("OakPostFixo.rda") > oak.post <- oakPostFixo$oak.post > summary(oak.post)[[1]][1:2] Mean SD 2.497629 0.496544 > summary(oak.post)[[2]] 2.5% 25% 50% 75% 97.5% 1.624733 2.143364 2.466546 2.809752 3.568745
Estimar Densidade de Carvalhos via Modelo Poisson
Modelo [a]que tem densidade m´edia fixa µ
mu Density 1 2 3 4 0.0 0.2 0.4 0.6 0.8
Estimar Densidade de Carvalhos via Modelo Poisson
Modelo[b]que tem densidade como vari´avel latente Mi
> load("OakPostmv.rda") > oakmv.post <- oakPostmv$oakmv.post > summary(oakmv.post)[[1]][c(11,13,12),1:2] Mean SD m 0.5713484 0.4629854 s 0.9380326 0.5119305 mediana 1.9476565 0.8247885 > summary(oakmv.post)[[2]][c(11,13,12),] 2.5% 25% 50% 75% 97.5% m -0.5112938 0.3284032 0.6315946 0.8818379 1.303221 s 0.1960581 0.5889138 0.8522009 1.1813121 2.216771
Estimar Densidade de Carvalhos via Modelo Poisson
Modelo[b]que tem densidade como vari´avel latente Mi
mediana = exp(m) Density 0 1 2 3 4 5 6 0.0 0.1 0.2 0.3 0.4 0.5
Qual ´
e o melhor Modelo?
Em analogia com AIC (Akaike Information Criterium) da abordagem frequentista, Spiegelhalter et al. (2002) propuseram DIC (Deviance Information Criterium) para modelos Bayesianos.
1 a deviˆancia (y fixo) ´e D(θ) = −2 log p(y |θ)
2 pD ´e o n´umero efetivo de parˆametros no modelo (penalty)
3 D ´¯ e o valor esperado de D(θ) a posteriori
(mean deviance)
4 Crit´erio de Informa¸c˜ao de Deviˆancia: DIC = ¯D + pD
(penalized deviance)
5 Pode-se definir pD = ¯D − D(¯θ)
Qual Modelo ´
e melhor entre [a] e [b] ?
> dicMFixo <- oakPostFixo$dicMFixo > dicmv <- oakPostmv$dicmv > dicMFixo Mean deviance: 47.73 penalty 0.9689 Penalized deviance: 48.7 > dicmv Mean deviance: 34.42 penalty 7.247 Penalized deviance: 41.67 > diffdic(dicMFixo,dicmv) Difference: 7.029199Considera¸c˜
oes Finais
1 a possibilidade de obter posterioris por simula¸c˜ao foi
fundamental para a populariza¸c˜ao da abordagem Bayesiana
2 a for¸ca de MCMC em geral e, particularmente, a linguagem
BUGS possibilitaram inferˆencias em modelos hier´arquicos de
dificil implementa¸c˜ao frequentista
3 o JAGS ´e um programa para fazer programas que executam
MCMC; sua interface com o R ´e a biblioteca ’rjags’
4 para uso eficiente do JAGS ´e preciso estudar manuais
espec´ıficos e entender como sua l´ogica funciona. Somente
permite ajustar DAGs (Direct Acyclic Graphs)
5 existem recursos diagn´osticos para avaliar se a convergˆencia
FIM
OBRIGADO paulkinas@furg.br