Come interpretare il diagramma di autocorrelazione in MCMC


12

Mi sto familiarizzando con le statistiche bayesiane leggendo il libro Doing Bayesian Data Analysis , di John K. Kruschke noto anche come "libro dei cuccioli". Nel capitolo 9, i modelli gerarchici sono introdotti con questo semplice esempio: e le osservazioni di Bernoulli sono 3 monete, ciascuna da 10 lanci. Uno mostra 9 teste, l'altra 5 teste e l'altra 1 testa.

yjio~Bernoullio(θj)θj~Betun'(μκ,(1-μ)κ)μ~Betun'(UNμ,Bμ)κ~solun'mmun'(Sκ,Rκ)

Ho usato Pymc per inferire gli iperparamteri.

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

La mia domanda riguarda l'autocorrelazione. Come devo interpretare l'autocorrelazione? La prego di aiutarmi a interpretare il diagramma di autocorrelazione?

inserisci qui la descrizione dell'immagine

Dice che mentre i campioni si allontanano l'uno dall'altro, la correlazione tra loro si riduce. giusto? Possiamo usare questo per tracciare per trovare l'assottigliamento ottimale? Il diradamento influenza i campioni posteriori? dopo tutto, a che serve questa trama?

Risposte:


13

Prima di tutto: se la memoria e il tempo di calcolo per la gestione dell'output MCMC non stanno limitando, il diradamento non è mai "ottimale". Allo stesso numero di iterazioni MCMC, l'assottigliamento della catena porta sempre (in media) a una precisione di perdita dell'approssimazione MCMC.

Pertanto, non è consigliabile un assottigliamento di routine basato sull'autocorrelazione o su qualsiasi altra diagnostica . Vedi Link, WA & Eaton, MJ (2012) sul diradamento delle catene in MCMC. Metodi in ecologia ed evoluzione, 3, 112-115.

Nella pratica quotidiana, tuttavia, c'è il caso comune in cui devi lavorare con un modello per il quale il campionatore non si mescola molto bene (alta autocorrelazione). In questo caso

1) Gli elementi a catena stretta sono molto simili, il che significa che gettarne uno non perde molte informazioni (questo è ciò che mostra il diagramma di autocorrelazione)

2) Hai bisogno di molte ripetizioni per ottenere la convergenza, nel senso che ottieni catene molto grandi se non assottigli. Per questo motivo, lavorare con l'intera catena può essere molto lento, costa molto spazio di archiviazione o persino portare a problemi di memoria quando si monitorano molte variabili.

3) Inoltre, ho la sensazione (ma quella che non ho mai testato sistematicamente) che l'assottigliamento rende anche JAGS un po 'più veloce, quindi potrei essere in grado di ottenere più iterazioni nello stesso tempo.

Quindi, il mio punto è: il diagramma di autocorrelazione ti dà una stima approssimativa di quante informazioni stai perdendo attraverso il diradamento (nota però che questa è una media su tutto il posteriore, la perdita può essere maggiore in determinate regioni).

Se vale la pena pagare questo prezzo dipende da ciò che guadagni diluendo in termini di risparmio di risorse di elaborazione e tempo in seguito. Se le iterazioni MCMC sono economiche, puoi sempre compensare la perdita di diradamento eseguendo anche alcune iterazioni in più.


Grazie Florian per la tua risposta. Mi è stato molto utile.
Adham,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.