La conexión entre ambos conceptos es que los métodos de la cadena de Markov Monte Carlo (también conocido como MCMC) se basan en la teoría de la cadena de Markov para producir simulaciones y aproximaciones de Monte Carlo a partir de una distribución objetivo compleja .π
En la práctica, estos métodos de simulación una secuencia que es una cadena de Markov, es decir, tal que la distribución de dado todo el pasado solo depende en . En otras palabras, donde es una función especificada por el algoritmo y la distribución objetivo y son iid. La teoría (ergódico) garantiza que converge (en la distribución) a como se pone a .X i { X i - 1 , … , X 1 } X i - 1 X i = f ( X i - 1 , ϵ i ) f π ϵ i X i π i ∞X1, ... , XnorteXyo{ Xi - 1, ... , X1}Xi - 1
Xyo= f( Xi - 1, ϵyo)
FπϵyoXyoπyo∞
El ejemplo más fácil de un algoritmo MCMC es la muestra de corte : en la iteración i de este algoritmo, haga
- simularϵ1yo∼ U ( 0 , 1 )
- simular (que equivale a generar un segundo independiente )Xyo∼ U ( { x ; π( x ) ≥ ϵ1yoπ( Xi - 1) } )ϵ2yo
Por ejemplo, si la distribución objetivo es un normal [para el cual obviamente no necesitaría MCMC en la práctica, ¡este es un ejemplo de juguete!] Lo anterior se traduce comoN (0,1)
- simularϵ1yo∼ U ( 0 , 1 )
- simular , es decir,
conXyo∼ U ( { x ; x2≤ - 2 log( 2 π--√ϵ1yo} )Xyo= ± ϵ2yo{ - 2 log( 2 π--√ϵ1yo) φ ( Xi - 1) }1 / 2ϵ2yo∼ U ( 0 , 1 )
o en 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]
Aquí hay una representación de la salida, que muestra el ajuste correcto al objetivo y la evolución de la cadena de Markov .
N (0,1)( Xyo)
Y aquí hay un zoom sobre la evolución de la cadena de Markov en las últimas 100 iteraciones, obtenida por( Xyo, ϵ1yoπ( Xyo) )
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")}
que sigue los movimientos verticales y horizontales de la cadena de Markov bajo la curva de densidad objetivo.