MCMC su uno spazio di parametri limitato?


18

Sto cercando di applicare MCMC su un problema, ma i miei priori (nel mio caso sono α[0,1],β[0,1] )) sono limitati a un'area? Posso usare MCMC normale e ignorare i campioni che non rientrano nella zona soggetta a restrizioni (che nel mio caso è [0,1] ^ 2), ovvero riutilizzare la funzione di transizione quando la nuova transizione cade fuori dall'area riservata (vincolata)?



@Zen, non sono del tutto sicuro, ma la risposta suggerita da Xian è quella di sottocampionare, ma invece di usare MH, usare il campionatore di Gibbs e ribadire se uno dei valori di una dimensione supera il limite, giusto?
Cupitor,

1
Se MH propone qualcosa al di fuori dello spazio dei parametri, la probabilità di accettazione è appena impostata su 0 e tutto funziona bene. Penso MH solo interpreta 0/0 come 0 (una manifestazione di 0=0 nella teoria della misura).
ragazzo,

@guy, ma secondo la discussione sulla pagina di xian (sopra il link di Zen), sembra che Gibbs abbia una superiorità senza menzionare alcun motivo!
Cupitor,

1
@Cupitor Non lo vedo dirlo. Penso che l'implicazione sia che Gabriel stesse facendo Metropolis all'interno di Gibbs.
ragazzo

Risposte:


27

Hai diverse opzioni carine, più o meno semplici. Il tuo precedente uniforme aiuta a renderli più semplici.

Opzione 1: campionatore di indipendenza. Puoi semplicemente impostare la distribuzione della tua proposta uguale a una distribuzione uniforme sul quadrato dell'unità, il che garantisce che i campioni non cadano al di fuori della zona soggetta a restrizioni, come la chiami tu. Potenziale svantaggio: se il posteriore è concentrato in una regione molto piccola del quadrato dell'unità, si potrebbe avere un tasso di accettazione molto basso. OTOH, è difficile generare numeri casuali più velocemente che da una distribuzione U (0,1). Potenziale vantaggio: meno lavoro per te.

Opzione 2: trasforma i tuoi parametri in qualcosa che non è limitato, fai proposte per i parametri trasformati, quindi trasforma i parametri nuovamente per usarli nelle funzioni di verosimiglianza. Nota che in questo caso il priore sarà sui parametri trasformati, perché è quello che stai facendo delle proposte, quindi dovrai fare confusione con il giacobino della trasformazione per ottenere il nuovo priore. Per la tua analisi, ovviamente, trasformerai i parametri casuali dei parametri generati da MCMC in parametri originali. Potenziale svantaggio: più lavoro iniziale per te. Pptential upside: miglior tasso di accettazione per le tue proposte.

Opzione 3: costruisci una distribuzione di proposta diversa da un campionatore di indipendenza che si trova sul quadrato dell'unità. Ciò consente di mantenere la divisa in anticipo, ma a costo di una maggiore complessità nel calcolo delle probabilità della proposta. Un esempio di questo, lasciando che sia il valore corrente di uno dei tuoi parametri, sarebbe una distribuzione Beta con parametri ( n x , n ( 1 - x ) ) . Più grande è n , più la tua proposta sarà concentrata attorno al valore corrente. Potenziale svantaggio: più lavoro iniziale per te. Pptential upside: miglior tasso di accettazione per le tue proposte - ma se fai nx(nx,n(1x))nn troppo grande e avvicinandoti ad un angolo, potresti finire facendo molte piccole mosse nell'angolo prima di uscire.

Opzione 4: respingi semplicemente tutte le proposte che cadono al di fuori del riquadro dell'unità (il suggerimento senza cuore di Xian). Nota che questo non equivale a generare un'altra proposta; in questo caso stai rifiutando la proposta, il che significa che il tuo prossimo valore per il parametro è lo stesso del valore corrente per il parametro. Ciò funziona perché è ciò che accadrebbe se si avesse una probabilità zero precedente per alcune aree del proprio spazio parametri e si generasse un numero casuale caduto in quella regione. Potenziale inconveniente: se ti avvicini a un angolo, potresti avere una bassa probabilità di accettazione e rimanere bloccato per un po '. Potenziale vantaggio: meno lavoro per te.

Opzione 5: creare un problema esteso sul piano che, sul quadrato dell'unità, è lo stesso del problema reale che si trova ad affrontare, fare tutto bene, quindi, quando post-elaborazione dei risultati del campionamento MCMC, buttare fuori tutti i campioni all'esterno dell'unità quadrata. Potenziale vantaggio: se è molto facile creare quel problema esteso, potrebbe essere meno lavoro per te. Potenziale svantaggio: se la catena di Markov si allontana da qualche parte al di fuori del quadrato dell'unità, potresti avere, in effetti, orribili probabilità di accettazione, poiché eliminerai la maggior parte dei campioni.

Senza dubbio ci sono altre opzioni, sarei interessato a vedere cosa suggeriscono le altre persone!

La differenza tra 2 e 3 è in una certa misura concettuale, sebbene con implicazioni reali per quello che fai realmente. Probabilmente andrei con 3, poiché lascerei che R mi dica quali sono le probabilità della proposta (se sto programmando in R) e la quantità di sforzo extra, a parte qualche sintonia del parametro di distribuzione della proposta , sembra piccolo per me. Se usassi JAGS o BUGS, ovviamente, sarebbe una questione completamente diversa, dal momento che quegli strumenti gestiscono le proprie proposte.n


Vota! Grazie mille per una risposta così approfondita, ma ci sono alcuni punti che sto faticando a seguire: 1) In realtà lo spazio dei parametri proviene da un segmento di linea in quadrato e quindi è davvero difficile ottenere un campionamento uniforme 2) Questa in realtà non sembra essere una buona idea. Per dare una semplice illustrazione, immagina di estendere il campione limitato semplicemente impostando la probabilità dell'area esterna su zero! Ciò renderebbe il processo di convergenza molto lento, immagino, e sarebbe probabilmente simile al sottocampionamento
Cupitor,

3) Il problema con questa idea è che la tua proposta non è invertibile e quindi potrebbe essere il caso che lo schema di campionamento risultante potrebbe non essere più ergodico!
Cupitor,

4) è il modo in cui ho provato e sembra ragionevole (IMH!) 5) Questi sembrano soffrire dell'esempio che ho citato in 2 e come hai detto tu stesso potresti dare terribili percentuali di accettazione!
Cupitor,

2
(0,inf)X(0,1)β
jbowman

α=2.5(0.5,1)α=3.2(0,0.8)α=0.2(0.2,0)
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.