1
M´
etodo de Monte Carlo Simples
Finalidade: obter uma estimativa para o valor esperado de uma fun¸c˜ao qualquer g da vari´avel aleat´oria θ, ou seja, E[g(θ)].
Seja g(θ) uma fun¸c˜ao qualquer de θ. Suponha que quero estimar I = E[g(θ)] sendo θ um vari´avel aleat´oria com f.d.p. p(θ). Note que
I = E[g(θ)] = Z +∞
−∞
g(θ)p(θ)dθ O m´etodo de Monte Carlo simples estima isto da seguinte forma
ˆ I = ¯g = 1 n n X i=1 g(θi)
sendo (θ1, . . . , θn) uma a.a.s. da distribui¸c˜ao p(θ).
Portanto, os passos deste m´etodo s˜ao
1. Obtenho uma a.a.s. (θ1, . . . , θn) da distribui¸c˜ao p(θ)
2. calculo g(θ1), . . . , g(θn)
3. calculo ˆI = ¯g = 1nPn
i=1g(θi)
Exemplo 1:
Suponha que quero estimar I =R13exp(−θ)dθ. Posso reescrever isto da seguinte forma
I =
Z 3
1
exp(−θ)(3 − 1) 1
3 − 1dθ = E[2 exp(−θ)]
sendo θ uma v.a. com distribui¸c˜ao Unif(1,3). Logo, pelo m´etodo de Monte Carlo simples, estimo I da seguinte forma: obtenho uma amostra de tamanho n da distribui¸c˜ao Unif(1,3). Para cada valor amostrado, calculo g(θi) = 2 exp(−θi). Depois calculo
ˆ
I = ¯g = 1 n
Pn
i=1g(θi).
Note que I = − exp(−3) + exp(−1) = 0, 3181. Logo, para n suficientemente grande, teremos ˆI → 0, 3181.
Exemplo 2:
Suponha que quero estimar I = R01exp(−θ)dθ utilizando a distribui¸c˜ao Beta(4,3). Posso reescrever isto da seguinte forma
I = Z 1 0 exp(−θ) p(θ) p(θ)dθ = E exp(−θ) p(θ)
sendo p(θ) a f.d.p. da distribui¸c˜ao Beta(4,3). Logo, pelo m´etodo de Monte Carlo simples, estimo I da seguinte forma: obtenho uma amostra de tamanho n da distribui¸c˜ao Beta(4,3). Para cada valor amostrado, calculo g(θi) = exp(−θp(θ i)
i) . Depois calculo ˆI = ¯g =
1 n
Pn
i=1g(θi).
Note que I = − exp(−1)+exp(0) = 0, 6321. Logo, para n suficientemente grande, teremos ˆ
I → 0, 6321.
OBS:
Note que podemos estimar o valor de qualquer integral a partir deste m´etodo pois
I = Z b a h(θ)dθ = Z b a h(θ) p(θ)p(θ)dθ = E h(θ) p(θ)
considerando θ uma v.a. com f.d.p. p(θ).
Propriedades do estimador
1. O estimador ˆI ´e um estimador n˜ao viesado para I pois
E[ ˆI] = E " 1 n n X i=1 g(θi) # = 1 n n X i=1 E[g(θi)] iid = 1 nnE[g(θ)] = E[g(θ)] = I 2. Pela Lei Forte dos Grandes N´umeros, temos que
ˆ I q.c.→ I quando n for suficientemente grande.
3. A variˆancia do estimador ˆI ´e τ = V ar[ ˆI]indep= 1 n2 n X i=1 V ar[g(θi)] ident.distr. = 1 nV ar[g(θ)]. Note que um bom estimador para V ar[g(θ)] ´e a variˆancia amostral
Pn
i=1(g(θi)−¯g)2
n−1
sendo ¯g = ˆI. Logo, podemos estimar a variˆancia τ usando o seguinte estimador ˆ τ = 1 n(n − 1) n X i=1 (g(θi) − ¯g)2.
4. Como θ1, θ2, . . . , θn ´e a.a.s., temos que θi iid
∼ p(θ). Logo, temos que Yi = g(θi)
´e independente de Yj = g(θj) quando i 6= j e temos que Y1, . . . , Yn s˜ao v.a.s
identicamente distribu´ıdas. Portanto, pelo Teorema Central do Limite, temos que, quando o tamanho da amostra n ´e suficientemente grande,
ˆ I → W
sendo W uma vari´avel aleat´oria com distribui¸c˜ao N (I, ˆτ ).
Podemos usar o resultado acima para testar a convergˆencia: se tivermos uma amostra de ˆI, a distribui¸c˜ao desta amostra tem que convergir para a distribui¸c˜ao normal quando o tamanho da amostra for suficientemente grande. Caso n˜ao convirja, pode ser que o tamanho da amostra n˜ao seja suficientemente grande. Tamb´em podemos estimar o erro deste estimador a partir da amostra: zα/2
√ ˆ τ sendo zα/2 o quantil (1 − α/2) da distribui¸c˜ao normal padr˜ao.
Extens˜ao para o caso multivariado
Suponha que queiramos estimar E[g(θ)] sendo θ = (θ1, . . . , θp). Seja p(θ) a fun¸c˜ao de
densidade de probabilidade do vetor aleat´orio θ. Logo,
I =
Z . . .
Z
g(θ)p(θ)dθ1. . . dθp
1. Obtenho uma a.a.s. (θ1, . . . , θn) da distribui¸c˜ao p(θ). Note que θi´e o i-´esimo vetor
de tamanho p gerado da distribui¸c˜ao p(θ). 2. calculo g(θ1), . . . , g(θn)
3. calculo ˆI = ¯g = 1nPn
i=1g(θi)
Exemplo
Suponha que queremos estimar I = E[θ1θ2] sendo θ = (θ1, θ2) um vetor aleat´orio
com distribui¸c˜ao normal bivariada com vetor de m´edias repleto de zeros, variˆancias iguais a 1 e correla¸c˜ao igual a 0,5. Ent˜ao podemos obter uma a.a.s. da distribui¸c˜ao N2 0 0 , 1 0, 5 0, 5 1
. Calculamos ent˜ao g(θi) = θ1iθ2i e depois calculamos
ˆ I = ¯g.
Note que cov(θ1, θ2) = 0, 5 = E[θ1θ2]−
E[θ1]
E[θ2] = E[θ1θ2]. Logo, ˆI tem que convergir
para 0,5. C´odigo do R: ite = 1000 for(j in 1:ite) { n = 1000 theta = matrix(NA,n,2) for(i in 1:n) { theta[i,] = mvrnorm(1,rep(0,2),matrix(c(1,0.5,0.5,1),2,2)) g[i] = theta[i,1]*theta[i,2]} I[j] = mean(g) } }
mean(I) var(I)
OBS 1: Note que se quisermos calcular a probabilidade de θ1 < 1 usando o exemplo
acima, podemos gerar n valores da distribui¸c˜ao normal bivariada e calcular quantos destes valores tiveram θ1 < 1.
OBS 2: Note que se quisermos calcular P r(θ1 < 1|θ2 < 1) usando o exemplo acima,
podemos gerar n valores da distribui¸c˜ao normal bivariada, selecionar somente os pontos nos quais θ2 < 1 e calcular quantos pontos selecionados tiveram θ1 < 1.
2
M´
etodo de Monte Carlo via cadeias de Markov
(MCMC)
Antes de falarmos sobre este m´etodo, vamos fazer uma breve introdu¸c˜ao sobre cadeias de Markov.
Dizemos que temos uma cadeia de Markov de primeira ordem quando tivermos uma s´erie X0, X1, . . . , Xt satisfazendo a seguinte condi¸c˜ao
P r(Xt|X0, X1, . . . , Xt−1) = P r(Xt|Xt−1).
Os m´etodos MCMC requerem ainda que a cadeia seja 1. homogˆenea
As probabilidades de transi¸c˜ao de um estado para outro s˜ao invariantes. Para explicar isto, considere que Xt = s sendo s ∈ {0, . . . , S}. Costuma-se dizer que
a vari´avel aleat´oria Xt est´a no estado s no tempo t. A probabilidade desta vari´avel
mudar para o estado k no tempo t + 1 n˜ao pode depender de t se a cadeia for homogˆenea.
2. irredut´ıvel
Cada estado pode ser atingido a partir de qualquer outro em um n´umero finito de itera¸c˜oes.
3. aperi´odica
N˜ao haja estado absorvente. Dizemos que temos um estado absorvente se quando a vari´avel aleat´oria entrar neste estado, ela permanecer nele com probabilidade 1. Suponha que uma distribui¸c˜ao π(x) , x ∈ Rdseja conhecida a menos de uma constante
multiplicativa por´em complexa o bastante para n˜ao ser poss´ıvel obter uma amostra diretamente. Dada as realiza¸c˜oes {X(t), t = 0, 1, . . .} de uma cadeia de Markov com
distribui¸c˜ao de equil´ıbro π, temos que X(t) t→∞→ π(x) e 1 ng(X
(t) i )
t→∞
→ Eπ(g(X)) q.c. .
Um algoritmo Monte Carlo via cadeias de Markov para simular uma amostra de uma distribui¸c˜ao p(·) ´e qualquer m´etodo que produza uma cadeia de Markov homogˆenea, erg´odica e irredut´ıvel cuja distribui¸c˜ao estacion´aria seja p(·). Uma cadeia ´e erg´odica quando ela ´e aperi´odica e recorrente positiva. Uma cadeia ´e recorrente positiva quando o n´umero m´edio de passos at´e que a cadeia retorne a qualquer estado ´e finito.
2.1
Amostrador de Gibbs
O algoritmo amostrador de Gibbs foi proposto por Geman e Geman (1984) e introduzido a comunidade estat´ıstica por Gelfand e Smith (1990). Usa-se este algoritmo quando amostrar de uma dada distribui¸c˜ao ´e custoso, complicado ou quando n˜ao tem como amostrar diretamente da distribui¸c˜ao. Seja p(θ) a distribui¸c˜ao que tem-se o interesse de amostrar onde θ = (θ1, . . . , θd). Cada um dos componentes pode ser um escalar, um vetor
ou uma matriz. Seja θ−l composto por todos os elementos de θ exceto pelo elemento θl,
l = 1, . . . , d. Sejam pl(θl) = p(θl|θ−l), l = 1, . . . , d as distribui¸c˜oes condicionais completa.
Considere-nas completamente conhecidas. O amostrador de Gibbs consiste num esquema de amostragem baseado em sucessivas gera¸c˜oes das distribui¸c˜oes condicionais completas descrito abaixo:
1. Determina-se um valor inicial arbitr´ario para cada θl, l = 1, . . . , d, denotando estes
valores por θ(0) = (θ1(0), . . . , θ(0)d );
2. Inicializa-se o contador da itera¸c˜ao i = 1;
3. Obtem-se um novo valor θ(i) = (θ(i)1 , . . . , θ(i)d ) atrav´es de gera¸c˜oes sucessivas das distribui¸c˜oes θ1(i) ∼ p(θ1|θ2(i−1), . . . , θ (i−1) d ), θ2(i) ∼ p(θ2|θ1(i), θ (i−1) 3 , θ (i−1) 4 , . . . , θ (i−1) d ), .. . θd(i) ∼ p(θ2|θ1(i), . . . , θ (i) d−1);
4. Altera-se o contador de i para i + 1;
5. Repete-se os ´ıtens 3 e 4 at´e que a convergˆencia seja obtida.
A convergˆencia das cadeias de Markov ´e esperada ap´os um per´ıodo chamado de aquecimento. Para diminuir a autocorrela¸c˜ao dos parˆametros pode-se usar o que denomina-se de espa¸camento. Sejam b − 1 a quantidade de itera¸c˜oes iniciais necess´arias para o aquecimento e t o espa¸camento. Ent˜ao tem-se que as amostras θ(b), θ(b+t), θ(b+2t), . . .
s˜ao usadas como sendo a amostra de θ da distribui¸c˜ao de interesse.
2.1.1 Modelo 1
Suponha que queiramos obter uma amostra de θ1 e θ2 sabendo que
θ1 θ2 ∼ N2 µ1 µ2 , V11 V12 V21 V22 sendo µ1, µ2, V11, V12, V21, V22 conhecidos.
Amostrando da distribui¸c˜ao exata
Pode-se mostrar que, para i 6= j,
θi|θj ∼ N (µi+ VijVjj−1(θj − µj) , Vii− Vij2V −1 jj )
θj ∼ N (µj, Vjj)
Desta forma, podemos decompor a distribui¸c˜ao conjunta de (θ1, θ2) no produto de normais
da seguinte forma:
p(θ1, θ2) = p(θ1|θ2)p(θ2)
Logo, para obter uma amostra da conjunta, basta amostrar θ2 da distribui¸c˜ao normal com
m´edia µ2 e variˆancia V22e depois amostrar θ1 com m´edia µ1+ V12V22−1(θ2− µ2) e variˆancia
V11− V122V −1 22 .
Outra forma de obter uma amostra da distribui¸c˜ao conjunta usando o programa R ´e usando a fun¸c˜ao mvrnorm do R. Para isto, tem-se que carregar o pacote MASS.
Amostrando usando o MCMC
Precisamos calcular as distribui¸c˜oes condicionais completas: θ1|θ2 ∼ N (µ1+ V12V22−1(θ2− µ2) , V11− V122V −1 22 ) θ2|θ1 ∼ N (µ2+ V21V11−1(θ1− µ1) , V22− V212V −1 11 ) Exerc´ıcio:
Considere µ1 = 2, µ2 = 1, V11 = V22 = 1 e V12= V21 = 0, 7. Obtenha uma amostra de
(θ1, θ2) da distribui¸c˜ao exata. Depois simule usando o MCMC.
2.1.2 Modelo 2
Suponha que Yi seja o n´umero de pessoas doentes no dia i. Suponha que para os
dias i = 1, 2, . . . , K, consideremos que Yi iid
consideremos que Yi iid
∼ P ois(φ). Ou seja, estamos considerando que para os K primeiros dias, em m´edia, λ pessoas ficam doentes e para os (n − K) dias seguintes, esta m´edia muda para φ pessoas. Suponha que λ, φ, K sejam desconhecidos. Com uma amostra y = y1, . . . , yn, como podemos estimar o valor de K, λ, φ?
A distribui¸c˜ao das observa¸c˜oes condicionada nos parˆametros ´e p(y1, . . . , yn|λ, φ, K) = p(y1, . . . , yk|λ, K)p(yk+1, . . . , yn|φ, K)
= Qn1
i=1yi
λPKi=1yiexp(−λK)φPni=K+1yiexp(−φ(n − K))
Para usar a inferˆencia bayesiana, precisamos atribuir uma distribui¸c˜ao a priori para (K, λ, φ). Considere a priori que estes parˆametros sejam independentes e que λ ∼ G(a2, b2), φ ∼ G(a1, b1) e que K ∼ U nif Disc{1, . . . , n}. Portanto a distribui¸c˜ao
conjunta de (K, λ, φ) a posteriori ´e proporcional a
p(λ, φ, K|y1, . . . , yn) ∝ p(y1, . . . , yn|λ, φ, K)p(λ, φ, K)
∝ λPKi=1yiexp(−λK)φPni=K+1yiexp(−φ(n − K)) ×
λa2−1exp(−b
2λ)φa1−1exp(−b1φ) (1)
Se a fun¸c˜ao acima pudesse ser reescrita como sendo o produto de distribui¸c˜oes conhecidas, eu saberia amostrar da distribui¸c˜ao acima. Por´em n˜ao consigo isto e, por isso, recorrerei aos m´etodos de Monte Carlo via cadeias de MarKov para obter uma amostra da distribui¸c˜ao acima. Usarei o Amostrador de Gibbs para isto. Logo, preciso calcular as distribui¸c˜oes condicionais completas a posteriori:
p(λ|φ, K, y1, . . . , yn) ∝ λ PK
i=1yiexp(−λK)λa2−1exp(−b
2λ) ∝ λa2+PKi=1yi−1exp(−λ(K + b 2)) ⇒ λ|φ, K, y1, . . . , yn∼ G(a2+ K X i=1 yi, K + b2) p(φ|λ, K, y1, . . . , yn) ∝ φ Pn
i=K+1yiexp(−φ(n − K))φa1−1exp(−b
1φ) ∝ φa1+Pni=K+1yi−1exp(−φ(b 1+ n − K)) ⇒ φ|λ, K, y1, . . . , yn∼ G(a1+ n X i=K+1 yi, n − K + b1) p(K|λ, φ, y1, . . . , yn) ∝
λPKi=1yiexp(−λK)φPni=K+1yiexp(−φ(n − K)) se K = 1, 2, . . . , n − 1
λPKi=1yiexp(−λK) se K = n
e ent˜ao K|λ, φ, y1, . . . , yn tem distribui¸c˜ao discreta com probabilidade P r(K = j) sendo
P r(K = l) = cλPli=1yiexp(−λl)φ Pn i=l+1yiexp(−φ(n − l)) se l = 1, . . . , n − 1 cλPli=1yiexp(−λl) se l = n
sendo c uma constante. Para calcular o valor de c, considere que ql seja igual a
ql =
λPli=1yiexp(−λl)φPni=l+1yiexp(−φ(n − l)) se l = 1, . . . , n − 1
λPli=1yiexp(−λl) se l = n
e ent˜ao
c = 1
q1+ q2+ . . . + qn
.
Logo, para obter uma amostra da distribui¸c˜ao dada pela equa¸c˜ao 1, faremos os seguintes passos:
1. Inicializo θ(1) fazendo λ = 3, φ = 2 e k = 4 ≤ n, por exemplo.
2. Fa¸co j = 2.
3. Gero λ(j) ∼ G(a2 +
PK(j−1)
i=1 yi, K(j−1)+ b2).
5. Calculo as probabilidades pl= P r(K = l) para l = 1, 2, . . . , n.
6. Gero K(j) da distribui¸c˜ao discreta com probabilidade p1, . . . , pn.
7. Fa¸co j = j + 1 e repito os 4 ´ultimos passos anteriores at´e obter convergˆencia. Para calcular as probabilidades pl = P r(K = l) para l = 1, 2, . . . , n, quando n for
grande, teremos que calcular ql e podemos ter que esta medida assume valores muito
altos ou baixos, ocasionando em problemas num´ericos. Sendo assim, podemos usar o seguinte artif´ıcio:
P r(K = l) = ql
q1+ q2+ . . . , qn
= exp (log(ql) − log(q1+ q2+ . . . , qn))
e para calcular log(q1+ q2+ . . . , qn) podemos fazer o seguinte
q = q1 + q2
log(q) = log(q1+ q2) = log(q1) + log (1 + q2/q1) = log(q1) + log (1 + exp(log(q2) − log(q1)))
Inicializo o contador l = 3 e considero q =Pl−1
i=1ql. Desta forma, tenho que
log(q + ql) = log(q) + log (1 + exp(log(ql) − log(q)))
Fa¸co l = l + 1 e repito a equa¸c˜ao anterior at´e obter log(q1 + q2+ . . . , qn). Depois fa¸co
pK = P r(K = l) = exp {log(ql) − log(q1+ q2+ . . . + qn)} .
2.2
Algoritmo de Metropolis-Hastings
Este algoritmo foi proposto por Metropolis e outros (1953) e Hastings (1970). Seja p(φ) a distribui¸c˜ao que tem-se o interesse de amostrar. Assim como o amostrador de Gibbs, o algoritmo Metropolis-Hastings gera uma sequˆencia φ(0), φ(1), . . . , a partir de
uma cadeia de Markov, cuja distribui¸c˜ao limite ´e p(φ). Usualmente, quando n˜ao sabe-se gerar da distribui¸c˜ao condicional completa, recorre-se a este algoritmo. Ele pode ser descrito pelos seguintes passos:
1. Determina-se um valor inicial arbitr´ario para φ denotando este valor por φ(0);
2. Inicializa-se o contador de itera¸c˜ao i = 1;
3. Gera-se ξ ∼ q(ξ|φ(i−1)) de uma distribui¸c˜ao conhecida, chamada de distribui¸c˜ao
proposta ou de fun¸c˜ao de densidade de transi¸c˜ao, pois ´e a fun¸c˜ao de densidade de probabilidade de mover de φ(i−1)para ξ. Aceita-se o ponto gerado com probabilidade
min 1, p(ξ) q(ξ|φ(i−1)) q(φ(i−1)|ξ) p(φ(i−1))
, onde p(·) ´e a distribui¸c˜ao de interesse; Se o ponto for aceito, φ(i) = ξ, caso contr´ario, φ(i) = φ(i−1) e a cadeia n˜ao se move.
4. Altera-se o contador de i para i + 1;
5. Repete-se os ´ıtens 3 e 4 at´e que a convergˆencia seja obtida.
A desvantagem deste algoritmo ´e que dependendo da escolha da distribui¸c˜ao proposta o n´umero de rejei¸c˜oes pode ser muito alto comprometendo a eficiˆencia do algoritmo. Baseado em ?, ? descreve um algoritmo para sintonizar a variˆancia de um determinado parˆametro garantindo que a taxa de aceita¸c˜ao fique em torno de 44%. Suponha que τ2 seja a variˆancia da distribui¸c˜ao proposta, q(ξ|φ(i−1)), para um dado parˆametro φ. Os
passos para sintonizar a variˆancia s˜ao:
1. Gera-se um valor inicial para a variˆancia proposta e denomina-se este valor de (τ2)(0).
2. Inicializa-se o contador de ciclos, n = 0. Executa-se L itera¸c˜oes usando (τ2)(n)como
a variˆancia proposta.
3. Se a taxa de aceita¸c˜ao de φ for maior que 0,44, faz-se log(τ2)(n+1) = log (τ2)(n) +
δ(n + 1) e, se for menor, faz-se log(τ2)(n+1)
= log(τ2)(n) − δ(n + 1), onde
δ(n + 1) = min (0, 01; (n + 1)−1/2).
4. Incrementa-se o contador de k para k + 1 e repete-se os passos 2 e 3 at´e obter convergˆencia.
5. A convergˆencia ´e esperada ap´os um per´ıodo chamado de aquecimento. Calcula-se a m´edia das variˆancias propostas, isto ´e, ¯τ2 =
Nc
X
n=b
(τ2)(n), onde Nc ´e o n´umero total
de ciclos e b − 1 o n´umero de itera¸c˜oes necess´arias para o aquecimento. Executa-se o MCMC novamente usando ¯τ2 como a variˆancia da distribui¸c˜ao proposta.
2.2.1 Modelo 3
Em uma certa popula¸c˜ao de animais sabe-se que cada animal pode pertencer a uma dentre 4 linhagens gen´eticas com probabilidades
p1 = 1 2 + θ 4, p2 = p3 = 1 − θ 4 , p4 = θ 4,
sendo 0 < θ < 1 um parˆametro desconhecido. Note que pi > 0 para todo i = 1, 2, 3, 4
e que p1+ p2 + p3 + p4 = 1. Observa-se n animais e anota-se a linhagem deste animal.
Seja Y um vetor com elementos Yi sendo o n´umero de animais observados pertencentes
a linhagem i. Ent˜ao temos que
Y ∼ M ultin(n, p = (p1, p2, p3, p4)).
Assumindo a priori que θ ∼ U nif (0, 1) temos que a distribui¸c˜ao a posteriori de θ ´e proporcional a π(θ) = p(θ|y1, y2, y3, y4) ∝ p(y1, y2, y3, y4|θ)p(θ) ∝ 1 2+ θ 4 y1 1 − θ 4 y2+y3 θ 4 y4 ∝ (2 + θ)y1 (1 − θ)y2+y3 θy4
Como a distribui¸c˜ao acima ´e desconhecida, podemos obter uma amostra desta distribui¸c˜ao usando o Metropolis-Hastings. Portanto, precisamos escolher uma distribui¸c˜ao proposta q(|θ(j−1)), sendo θ(j−1)o valor amostrado na itera¸c˜ao anterior. Seja ∼ U nif (0, 1). Desta forma temos que a raz˜ao
r = π() q(|θ(j−1)) q(θ(j−1)|) π(θ(j−1)) = (2 + ) y1 (1 − )y2+y3 y4 (2 + θ(j−1))y1 (1 − θ(j−1))y2+y3 (θ(j−1))y4
Simule um conjunto de dados deste modelo e amostre θ usando o Metropolis-Hastings com a distribui¸c˜ao proposta dada acima. Vocˆe ver´a que a taxa de rejei¸c˜ao ´e muito grande. Neste caso, podemos alterar a distribui¸c˜ao proposta de forma que a taxa de rejei¸c˜ao diminua.