2014-04-21 12 views
5

Sono un mondo di analisi statistica molto nuovo e ho preso un recente interesse nel linguaggio di modellazione BUGS/JAGS/STAN. Qualcosa che mi sorprende davvero è che non ho visto alcun esempio di nuove funzioni o distribuzioni in fase di definizione per evitare la duplicazione del codice. Ad esempio, supponiamo che io usi frequentemente il quadrato della distribuzione di Poisson, è comunque necessario fare quanto segue?Definizione di nuove funzioni e distribuzioni nella lingua BUGS/JAGS/STAN

dsqpo <- function(lambda) { 
    tmp ~ dpois(lambda) 
    tmp2 <- tmp * tmp 
    return(tmp2) 
} 

e poi successivamente

model{ 
    ... 
    x ~ dsqpo(alpha) 
    y ~ dsqpo(beta) 
} 

senza definire una nuova variabile temporanea ogni volta.

risposta

2

In WinBUGS, OpenBUGS e JAGS, non è possibile definire nuove funzioni come parte del linguaggio di modellazione. Tuttavia puoi farlo con la programmazione di basso livello in Component Pascal (per Win/OpenBUGS) o C++ (per JAGS).

Per WinBUGS, vedere WBDev (http://www.winbugs-development.org.uk/wbdev.html). Per OpenBUGS vedere la sottodirectory UDev del programma installato, che contiene un manuale PDF, in pratica funziona allo stesso modo di WinBUGS.

Per JAGS non è correttamente documentato - esiste un tutorial scritto dall'utente per l'aggiunta di nuove distribuzioni allo http://www.ncbi.nlm.nih.gov/pubmed/23959766, anche se nulla sulle funzioni che conosco.

1

Il recente documento "inferenza bayesiana con Stan: un tutorial sull'aggiunta di distribuzioni personalizzate" descrive come farlo in dettaglio. Includo il doi per un collegamento persistente.

Riferimento

Annis, J., Miller, J. B., & Palmeri, T. J. (2016). Inferenza bayesiana con Stan: un tutorial sull'aggiunta di distribuzioni personalizzate. Metodi di ricerca comportamentale, 1-24. http://doi.org/10.3758/s13428-016-0746-9

+0

Ho paura che tu debba "acquistare" questo tutorial per i non accademici. –

+0

Puoi mandare una email agli autori, oppure puoi cercare su scihub. –

Problemi correlati