Como interpretar o gráfico de autocorrelação no MCMC


12

Estou me familiarizando com as estatísticas bayesianas lendo o livro Doing Bayesian Data Analysis , de John K. Kruschke, também conhecido como "livro de filhotes". No capítulo 9, modelos hierárquicos são introduzidos com este exemplo simples:

yjEuBernovocêeueuEu(θj)θjBetuma(μκ,(1-μ)κ)μBetuma(UMAμ,Bμ)κGumammuma(Sκ,Rκ)

Eu usei o pymc para inferir os hiperparâmetros.

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])

Minha pergunta é sobre a autocorrelação. Como devo interpretar a autocorrelação? Você poderia me ajudar a interpretar o gráfico de autocorrelação?

insira a descrição da imagem aqui

Diz que à medida que as amostras se afastam, a correlação entre elas diminui. certo? Podemos usar isso para plotar para encontrar o melhor desbaste? O afinamento afeta as amostras posteriores? afinal, para que serve esse enredo?

Respostas:


13

Primeiro de tudo: se a memória e o tempo computacional para lidar com a saída do MCMC não forem limitantes, o desbaste nunca será "ideal". Em um número igual de iterações do MCMC, o afinamento da cadeia sempre leva (em média) a uma precisão de perda da aproximação do MCMC.

Rotinamente o desbaste com base na autocorrelação ou em qualquer outro diagnóstico não é, portanto, recomendável . Veja Link, WA & Eaton, MJ (2012) Sobre afinamento de correntes no MCMC. Methods in Ecology and Evolution, 3, 112-115.

Na prática diária, no entanto, existe o caso comum de você trabalhar com um modelo para o qual o amostrador não se mistura muito bem (alta autocorrelação). Nesse caso

1) Os elementos de cadeia estreita são muito semelhantes, o que significa que jogar fora não perde muita informação (é o que mostra o gráfico de autocorrelação)

2) Você precisa de muitas repetições para obter convergência, o que significa que você obtém cadeias muito grandes se não afinar. Por isso, trabalhar com toda a cadeia pode ser muito lento, custar muito armazenamento ou até causar problemas de memória ao monitorar muitas variáveis.

3) Além disso, tenho a sensação (mas nunca testei sistematicamente) de que o desbaste torna o JAGS um pouco mais rápido também; portanto, é possível obter mais algumas iterações ao mesmo tempo.

Portanto, o que quero dizer é: o gráfico de autocorrelação fornece uma estimativa aproximada sobre a quantidade de informações que você está perdendo com o desbaste (observe que essa é uma média de todo o posterior, a perda pode ser maior em determinadas regiões).

Se esse preço vale a pena pagar depende do que você ganha, diminuindo em termos de economia de recursos de computação e tempo mais tarde. Se as iterações do MCMC forem baratas, você sempre poderá compensar a perda de afinamento executando mais algumas iterações.


Obrigado Florian pela sua resposta. Foi muito útil para mim.
Adham
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.