R2WinBUGS: Using R for Bayesian Analysis

Download Report

Transcript R2WinBUGS: Using R for Bayesian Analysis

R2WinBUGS: Using R for Bayesian Analysis

Matthew Russell Rongxia Li 2 November 2010 2010 Northeastern Mensurationists Meeting

Bayesian ideologies

8

(aka what UMaine students needed to learn to pass Bill Halteman’s MAT500 course) • P(H|Y), not P(Y|H) • Probability is the likelihood of an event occurring • Prior knowledge can be incorporated • Model parameters are random variables

Benefits

• • • • Posterior distributions generated for model parameters • Statistics can be computed (e.g. mean, median, mode) A formal distribution does not need to be assumed Uncertainty of model parameters can be directly assessed Models easily updated with new data • Consider old model as a prior

bayes* AND [forestry OR silvic*]

Web of Science results: 10 9 8 2 1 4 3 7 6 5 0

Year

WinBUGS

• • • Software for Bayesian analysis using Markov chain Monte Carlo methods Standard GUI http://www.mrc-bsu.cam.ac.uk/bugs/ • OpenBUGS – Open source version of BUGS – Future development will be with OpenBUGS – www.openbugs.info

R packages

• • R2WinBUGS – Writes data and scripts in R and calls WinBUGS • Useful for: – – running multiple datasets changing model specifications – Results can be provided in R BRugs – Collection of functions that allow graphical analysis

Example: Penobscot Experimental Forest snag data n=1,009 Decay class 4 Decay class 3 Decay class 2 Decay class 1 1,2 1 0,8 0,6 0,4 0,2 0 0 2 4 6 8 10 12

Time since death (yrs)

14 16 18 20

Snag survival

• • Probability of snag survival a function of time since tree death (Garber et al. 2005) Seven species examined – BF, RS, EH, WS, WC, PB, RM

P

(

surv

)  1

b

1 

b

2 (

t

)

b

3

Specify priors Loop through trees

.bug file

model{ for(i in 1:3) {b[i]~dnorm(0,1.0E-6)} prec~dgamma(0.001,0.001) for(i in 1:numTrees) { preds[i]<-1/(b[1]+b[2]*pow((t[i]),b[3])) Psurv[i]~dnorm(preds[i],prec) } }

samplesHistory (‘*’)

samplesDensity(‘*’)

samplesStats (‘*’)

Assessing results from BUGS (from McCarthy 2007) • • • • samplesHistory – If it is not white noise, it might be autocorrelation Are samplesDensity truncated?

– Priors might be inadequate Bumpy samplesDensity?

– Consider more samples Specify different initial values… do you get the same results?

– Consider Gelman-Rubin statistic • Measures the influence of specifying initial values

Other OS and other programs

• • • WinBUGS can be run on Linux/Unix/Mac through Wine – But JAGS (Just Another Gibbs Sampler) might work better for Linux users • http://www-fis.airc.fr/~martyn/software/jags/ Macros available for SAS/Excel Matlab-WinBUGS GUI available

Sources

http://www.mrc-bsu.cam.ac.uk/bugs/ WinBUGS R2WinBUGS OpenBUGS BRugs JAGS McCarthy, M.A. 2007. Bayesian methods for ecology. Cambridge Univ. Press. 296 pp.

Gelman et al. 2004. Bayesian data analysis. Chapman Hall/CRC. 696 pp. Albert, J. 2009. Bayesian computation with R. Springer. 300 pp.

Summary

• • • • Plenty of tools available for Bayesian analysis with R – All are open source Coding is not terribly complex Lots of measures for assessing results – Graphical – Empirical R2WinBUGS as a learning tool for Bayesian methods