El algoritmo ideal de Monte Carlo utiliza independiente valores aleatorios sucesivos. En MCMC, los valores sucesivos no son independientes, lo que hace que el método converja más lentamente que el Monte Carlo ideal; sin embargo, cuanto más rápido se mezcle, más rápido decaerá la dependencia en las sucesivas iteraciones¹, y más rápido convergerá.
¹ Quiero decir aquí que los valores sucesivos son rápidamente "casi independientes" del estado inicial, o más bien que dado el valor $X_n$ en un momento dado, los valores $X_{ń+k}$ se vuelven rápidamente "casi independientes" de $X_n$ como $k$ crece; así, como dice qkhhly en los comentarios, "la cadena no se queda estancada en una región determinada del espacio de estados".
Edición: Creo que el siguiente ejemplo puede ayudar
Imagina que quieres estimar la media de la distribución uniforme en $\{1, \dots, n\}$ por MCMC. Se comienza con la secuencia ordenada $(1, \dots, n)$ En cada paso, usted eligió $k>2$ elementos de la secuencia y los baraja al azar. En cada paso, se registra el elemento en la posición 1; esto converge a la distribución uniforme. El valor de $k$ controla la rapidez de la mezcla: cuando $k=2$ es lento; cuando $k=n$ Los elementos sucesivos son independientes y la mezcla es rápida.
Aquí hay una función de R para este algoritmo MCMC :
mcmc <- function(n, k = 2, N = 5000)
{
x <- 1:n;
res <- numeric(N)
for(i in 1:N)
{
swap <- sample(1:n, k)
x[swap] <- sample(x[swap],k);
res[i] <- x[1];
}
return(res);
}
Apliquémoslo para $n = 99$ y trazar la estimación sucesiva de la media $\mu = 50$ a lo largo de las iteraciones MCMC:
n <- 99; mu <- sum(1:n)/n;
mcmc(n) -> r1
plot(cumsum(r1)/1:length(r1), type="l", ylim=c(0,n), ylab="mean")
abline(mu,0,lty=2)
mcmc(n,round(n/2)) -> r2
lines(1:length(r2), cumsum(r2)/1:length(r2), col="blue")
mcmc(n,n) -> r3
lines(1:length(r3), cumsum(r3)/1:length(r3), col="red")
legend("topleft", c("k = 2", paste("k =",round(n/2)), paste("k =",n)), col=c("black","blue","red"), lwd=1)
Aquí puede ver que para $k=2$ (en negro), la convergencia es lenta; para $k=50$ (en azul), es más rápido, pero sigue siendo más lento que con $k=99$ (en rojo).
También puede trazar un histograma para la distribución de la media estimada después de un número fijo de iteraciones, por ejemplo 100 iteraciones:
K <- 5000;
M1 <- numeric(K)
M2 <- numeric(K)
M3 <- numeric(K)
for(i in 1:K)
{
M1[i] <- mean(mcmc(n,2,100));
M2[i] <- mean(mcmc(n,round(n/2),100));
M3[i] <- mean(mcmc(n,n,100));
}
dev.new()
par(mfrow=c(3,1))
hist(M1, xlim=c(0,n), freq=FALSE)
hist(M2, xlim=c(0,n), freq=FALSE)
hist(M3, xlim=c(0,n), freq=FALSE)
Puede ver que con $k=2$ (M1), la influencia del valor inicial después de 100 iteraciones sólo da un resultado terrible. Con $k=50$ parece estar bien, con una desviación estándar aún mayor que con $k=99$ . Aquí están las medias y la sd:
> mean(M1)
[1] 19.046
> mean(M2)
[1] 49.51611
> mean(M3)
[1] 50.09301
> sd(M2)
[1] 5.013053
> sd(M3)
[1] 2.829185
1 votos
Se sabe en la literatura MCMC que cuando una cadena de Markov es geométricamente ergódica, tiene un decaimiento de mezcla alfa exponencialmente rápido. No tengo claro cómo X_{n} podría converger rápidamente a la distribución objetivo y, sin embargo, mantener una alta correlación entre las muestras sucesivas. ¿Hay algún ejemplo sencillo? Gracias por cualquier aportación.