Cómo interpretar el gráfico de autocorrelación en MCMC

12

Me estoy familiarizando con las estadísticas bayesianas al leer el libro Doing Bayesian Data Analysis , de John K. Kruschke, también conocido como el "libro del cachorro". En el capítulo 9, se presentan modelos jerárquicos con este simple ejemplo: y las observaciones de Bernoulli son 3 monedas, cada una de 10 lanzamientos. Una muestra 9 cabezas, las otras 5 cabezas y la otra 1 cabeza.

yjiBernoulli(θj)θjBeta(μκ,(1μ)κ)μBeta(Aμ,Bμ)κGamma(Sκ,Rκ)

He usado pymc para inferir los hiperparamteres.

with pm.Model() as model:
# define the     
    mu = pm.Beta('mu', 2, 2)
    kappa = pm.Gamma('kappa', 1, 0.1)
    # define the prior
    theta = pm.Beta('theta', mu * kappa, (1 - mu) * kappa, shape=len(N))
    # define the likelihood
    y = pm.Bernoulli('y', p=theta[coin], observed=y)

    # Generate a MCMC chain
    step = pm.Metropolis()
    trace = pm.sample(5000, step, progressbar=True)
    trace = pm.sample(5000, step, progressbar=True)


burnin = 2000  # posterior samples to discard
thin = 10  # thinning 
pm.autocorrplot(trace[burnin::thin], vars =[mu, kappa])

Mi pregunta es sobre la autocorrelación. ¿Cómo debo interpretar la autocorrelación? ¿Podría por favor ayudarme a interpretar el diagrama de autocorrelación?

ingrese la descripción de la imagen aquí

Dice que a medida que las muestras se alejan unas de otras, la correlación entre ellas se reduce. ¿Derecha? ¿Podemos usar esto para trazar y encontrar el adelgazamiento óptimo? ¿El adelgazamiento afecta las muestras posteriores? después de todo, ¿de qué sirve esta trama?

Adham
fuente

Respuestas:

13

En primer lugar: si la memoria y el tiempo de cálculo para manejar la salida de MCMC no son limitantes, el adelgazamiento nunca es "óptimo". En un número igual de iteraciones MCMC, el adelgazamiento de la cadena siempre conduce (en promedio) a una precisión de pérdida de la aproximación MCMC.

El adelgazamiento rutinario basado en autocorrelación o cualquier otro diagnóstico no es aconsejable . Ver Link, WA y Eaton, MJ (2012) Sobre adelgazamiento de cadenas en MCMC. Métodos en ecología y evolución, 3, 112-115.

Sin embargo, en la práctica diaria, existe el caso común de que tiene que trabajar con un modelo para el que la muestra no se mezcla muy bien (alta autocorrelación). En este caso

1) Los elementos de cadena cerrada son muy similares, lo que significa que tirar uno no pierde mucha información (eso es lo que muestra el diagrama de autocorrelación)

2) Necesitas muchas repeticiones para lograr la convergencia, lo que significa que obtienes cadenas muy grandes si no adelgazas. Debido a eso, trabajar con la cadena completa puede ser muy lento, cuesta mucho almacenamiento o incluso puede causar problemas de memoria al monitorear muchas variables.

3) Además, tengo la sensación (pero la que nunca he probado sistemáticamente) de que el adelgazamiento también hace que JAGS sea un poco más rápido, por lo que podría obtener algunas iteraciones más al mismo tiempo.

Entonces, mi punto es: el gráfico de autocorrelación le da una estimación aproximada de la cantidad de información que está perdiendo a través del adelgazamiento (tenga en cuenta que este es un promedio sobre todo el posterior, la pérdida puede ser mayor en regiones particulares).

El hecho de que valga la pena pagar este precio depende de lo que gane disminuyendo en términos de ahorro de recursos informáticos y tiempo posterior. Si las iteraciones de MCMC son baratas, siempre puede compensar la pérdida de adelgazamiento ejecutando algunas iteraciones más.

Florian Hartig
fuente
Gracias Florian por tu respuesta. Fue muy útil para mi.
Adham