Capire MCMC: quale sarebbe l'alternativa?


13

Imparare le statistiche bayesiane per la prima volta; come punto di vista verso la comprensione della MCMC, mi chiedevo: sta facendo qualcosa che fondamentalmente non può essere fatto in un altro modo o sta semplicemente facendo qualcosa di molto più efficiente delle alternative?

A titolo di illustrazione, supponiamo di provare a calcolare la probabilità dei nostri parametri dati i dati dato un modello che calcola il contrario, . Per calcolare questo direttamente con il teorema di Bayes abbiamo bisogno del denominatore come indicato qui . Ma potremmo calcolare questo per integrazione, dire come segue:P ( D | x , y , z ) P ( D )P(x,y,z|D)P(D|x,y,z)P(D)

p_d = 0.
for x in range(xmin,xmax,dx):
    for y in range(ymin,ymax,dy):
        for z in range(zmin,zmax,dz):
            p_d_given_x_y_z = cdf(model(x,y,z),d)
            p_d += p_d_given_x_y_z * dx * dy * dz

Funzionerebbe (anche se in modo molto inefficiente con un numero maggiore di variabili) o c'è qualcos'altro che potrebbe far fallire questo approccio?


4
L'integrazione funzionerebbe in molti casi, ma richiederebbe troppo tempo (cioè è inefficiente). MCMC è un modo per stimare il posteriore in modo efficiente.
Mark White,

3
Non pertinente per la domanda, ma penso che manchi il precedente over x, y, z nel tuo integrale (appare nel numeratore della formula di Bayes)
alberto

Risposte:


17

Stai descrivendo un'approssimazione della griglia al posteriore, e questo è un approccio valido, anche se non il più popolare. Ci sono alcuni casi in cui la distribuzione posteriore può essere calcolata analiticamente. Le catene di Monte Carlo Markov, o altri metodi approssimativi, sono metodi per ottenere campioni della distribuzione posteriore, che a volte funzionano quando non è possibile trovare la soluzione analitica.

Le soluzioni analitiche che si possono trovare sono in genere casi di famiglie "coniugate" e puoi trovare ulteriori informazioni su questo tramite google, vedi ad esempio https://en.wikipedia.org/wiki/Conjugate_prior .

Come primo esempio, se il tuo precedente pè uniforme [0, 1], dove pè un parametro di successo in un semplice esperimento binomiale, il posteriore è uguale a una distribuzione Beta. In questo caso l'integrazione può essere fatta esplicitamente.

Se hai molte opzioni di parametri o usi un'approssimazione della griglia come nel tuo esempio, una semplice somma può essere tutto ciò di cui hai bisogno. Il numero di calcoli può esplodere rapidamente, tuttavia, se si dispone di un paio di variabili e si desidera utilizzare una griglia densa.

Esistono diversi algoritmi per il campionamento dal posteriore. Hamiltoniano Monte Carlo, in particolare il campionatore NUTS, è ora popolare e utilizzato in stane PyMC3, Metropolis Hastings è il classico. Inference Variaference è un nuovo arrivato relativo, non un metodo di campionamento in realtà, ma un modo diverso di ottenere un'approssimazione. Al momento, nessuno dei metodi, comprese le soluzioni analitiche, è il migliore, tutti funzionano bene in casi specifici.


Buona risposta, ma il tuo ultimo paragrafo sembra implicare che l'inferenza variazionale è un metodo di campionamento, che non lo è. Potresti considerare di correggerlo.
Ruben van Bergen,

7

Il calcolo del denominatore non aiuta a comprendere la natura della distribuzione posteriore (o di qualsiasi distribuzione). Come discusso in una domanda recente , sapere che la densità di un vettore d-dimensionale è non mi dice dove sono le regioni di interesse per questa distribuzione posteriore.θ

π(θ|x)exp{||θx||2||θ+x||4||θ2x||6},x,θd,

6

I metodi Monte Carlo sono tecniche che utilizzano numeri casuali. L'obiettivo è trovare campioni distribuiti secondo e si presume che sia complesso. Ciò significa che non possiamo valutarlo direttamente. In caso contrario, puoi semplicemente calcolarlo analiticamente. Come nel tuo esempio questo sarebbe .P ( x ) P ( x ) P ( D )xP(x)P(x)P(D)

Quello che vi proponiamo è essenzialmente una ricerca a griglia attraverso lo spazio di e . Questo può essere molto esaustivo se ed sono alti dimensionale e fattibile se sono continue. Un altro problema è che devi calcolare il cdf in ogni passaggio.y x yxyxy

I metodi MCMC cercano di risolvere questo problema proponendo campioni candidati e accettandoli o rifiutandoli a seconda di una misura. Questo può in teoria essere più veloce di tutte le possibili combinazioni. quindi fondamentalmente trovi dei campioni tratti dalla precedente . Un problema teorico qui è che questo è solo il caso nel numero limite di campioni prelevati, cioè dopo campioni . Quindi non sai quando fermare la catena di Markov. P ( D ) ciP(D)

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.