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(1−x))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