La connessione tra i due concetti è che i metodi Monteov della catena di Markov (aka MCMC) si basano sulla teoria della catena di Markov per produrre simulazioni e approssimazioni di Monte Carlo da una distribuzione target complessa .π
In pratica, questi metodi di simulazione generano una sequenza che è una catena di Markov, cioè tale che la distribuzione di X i dato l'intero passato { X i - 1 , … , X 1 } dipende solo da X i - 1 . In altre parole, X i = f ( X i - 1 , ϵ i ) dove fX1,…,XNXi{Xi−1,…,X1}Xi−1
Xi=f(Xi−1,ϵi)
fè una funzione specificata dall'algoritmo e la distribuzione target
e gli
ϵ i sono iid. Le garanzie (ergodico) teoria che
X i converge (a distribuzione) a
¸ come
mi arriva a
∞ .
πϵiXiπi∞
L'esempio più semplice di un algoritmo MCMC è il slice sampler : all'iterazione di questo algoritmo, do
- simula ϵ1i∼U(0,1)
- Xio∼ U ( { x ; π( x ) ≥ ϵ1ioπ( Xi - 1) } )ε2io
N (0,1)
- simula ϵ 1 i ∼ U ( 0 , 1 ε1io∼ U ( 0 , 1 )
- Xio∼ U ( { x ; x2≤ - 2 log( 2 π--√ε1io} )Xio= ± ϵ2io{ - 2 log( 2 π--√ε1io) φ ( Xi - 1) }1 / 2ε2io∼ U ( 0 , 1 )
o in R
T=1e4
x=y=runif(T) #random initial value
for (t in 2:T){
epsilon=runif(2)#uniform white noise
y[t]=epsilon[1]*dnorm(x[t-1])#vertical move
x[t]=sample(c(-1,1),1)*epsilon[2]*sqrt(-2*#Markov move from
log(sqrt(2*pi)*y[t]))}#x[t-1] to x[t]
N (0,1)( Xio)
( Xio, ϵ1ioπ( Xio) )
curve(dnorm,-3,3,lwd=2,col="sienna",ylab="")
for (t in (T-100):T){
lines(rep(x[t-1],2),c(y[t-1],y[t]),col="steelblue");
lines(x[(t-1):t],rep(y[t],2),col="steelblue")}
che segue i movimenti verticali e orizzontali della catena di Markov sotto la curva di densità target.