Data una catena MCMC 10D, come posso determinare le sue modalità posteriori in R?


10

Domanda: con una catena MCMC a 10 dimensioni, diciamo che sono pronto a consegnarti una matrice dei disegni: 100.000 iterazioni (righe) per 10 parametri (colonne), come posso identificare al meglio le modalità posteriori? Mi occupo soprattutto di più modalità.

Sfondo:Mi considero uno statistico esperto di calcolo, ma quando un collega mi ha fatto questa domanda, mi vergognavo di non poter trovare una risposta ragionevole. La preoccupazione principale è che possano comparire più modalità, ma solo se si considerano almeno otto delle dieci dimensioni. Il mio primo pensiero sarebbe quello di utilizzare una stima della densità del kernel, ma una ricerca attraverso R non ha rivelato nulla di promettente per problemi di dimensioni superiori a tre dimensioni. Il collega ha proposto una strategia di binning ad hoc in dieci dimensioni e alla ricerca di un massimo, ma la mia preoccupazione è che la larghezza di banda potrebbe portare a significativi problemi di scarsità o alla mancanza di risoluzione per discernere più modalità. Detto questo, accetterei volentieri suggerimenti per suggerimenti di larghezza di banda automatizzata, collegamenti a uno stimatore della densità del kernel 10 o qualsiasi altra cosa tu sappia.

preoccupazioni:

  1. Riteniamo che la distribuzione possa essere piuttosto distorta; pertanto, desideriamo identificare le modalità posteriori e non i mezzi posteriori.

  2. Siamo preoccupati che possano esserci diverse modalità posteriori.

  3. Se possibile, preferiremmo un suggerimento basato su R. Ma qualsiasi algoritmo funzionerà finché non sarà incredibilmente difficile da implementare. Immagino che preferirei non implementare uno stimatore di densità del kernel Nd con selezione automatica della larghezza di banda da zero.


Si prega di consultare il tema sui metodi di stima della modalità veloce stats.stackexchange.com/questions/33625
Pavel Ruzankin

Risposte:


9

Hai preso in considerazione l'utilizzo dell'approccio del vicino più vicino?

ad es. costruire un elenco dei kvicini più vicini per ciascuno dei 100'000 punti e quindi considerare kthuna modalità il punto dati con la distanza minima del vicino. In altre parole: trova il punto con la 'bolla più piccola' contenente kaltri punti attorno a questo punto.

Non sono sicuro di quanto sia solido e la scelta di kinfluenzare ovviamente i risultati.


A volte voglio solo scuotermi di testa. Suggerimento eccellente.
M. Tibbits,

1
Ho anche pensato di usare la kmeansfunzione in R. Non avrei dovuto fare domande tra mezzanotte e le 4 del mattino.
M. Tibbits,

4

Questa è solo una risposta parziale.

Recentemente ho usato figtree per le stime della densità del kernel multidimensionale. È un pacchetto C e l'ho fatto funzionare abbastanza facilmente. Tuttavia, l'ho usato solo per stimare la densità in determinati punti, non per calcolare statistiche riassuntive.


3

Se si mantengono le probabilità del registro, è possibile selezionare solo quello con il valore più alto. Inoltre, se il tuo interesse è principalmente la modalità, basterebbe fare un'ottimizzazione per trovare il punto con la più alta probabilità di log.


Questa è la risposta più pertinente, almeno la prima parte! In molte simulazioni MCMC, le probabilità (log-) sono calcolate per tutte le proposte e possono quindi essere archiviate. O il valore più alto finora e il suo argomento può essere memorizzato. A condizione che l'algoritmo MCMC sia convergente sul numero di simulazioni eseguite, si tratta di un approccio valido.
Xi'an,

2

Hai considerato "PRIM / caccia agli urti"? (vedi ad es. la Sezione 9.3 di "Gli elementi dell'apprendimento statistico" di Tibshirani et al. o chiedi al tuo motore di ricerca preferito). Non sono sicuro che sia implementato in R però.

[Per quanto ho capito, stai cercando di trovare la modalità della densità di probabilità da cui vengono disegnate le tue 100.000 righe. Quindi il tuo problema verrebbe parzialmente risolto trovando un density estimationmetodo appropriato ].


Sì, c'è un pacchetto prim , con una vignetta R: usare prim per la caccia agli urti . Però non è ovvio come funzionerà in questo caso.
chl
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.