Title: Introduction to WinBUGS
1Introduction to WinBUGS
Windows Bayesian inference Using Gibbs
Sampling Software for the Bayesian analysis of
complex statistical models using Markov chain
Monte Carlo (MCMC) methods
2A brief history
- 1989 project began with a Unix version called
BUGS - 1998 first Windows version, WinBUGS was born
- Initially developed by the MRC Biostatistics Unit
in Cambridge and now joint work with Imperial
College School of Medicine at St Mary's, London.
3Who?
Nicky Best Imperial College Faculty of Medicine,
London (UK)
Thomas Andrew University of Helsinki, Helsinki
(Finland)
Wally Gilks MRC Biostatistics Unit Institute of
Public Health Cambridge (UK)
David Spiegelhalter MRC Biostatistics Unit
Institute of Public Health Cambridge (UK)
4How to obtain and install WinBUGS
- 1. downloadable from
- http//www.mrc-bsu.cam.ac.uk/bugs/winbugs/content
s.shtml - (... see section Obtaining the File to download
WinBUGS14.exe) - 2. to install WinBUGS
- Exit all other programs currently running
(particularly if using Windows XP) - Copy WinBUGS14.exe to your computer
- Double click on WinBUGS14.exe and follow the
instructions in the dialog box - You should have a new directory called WinBUGS14
within Program Files - Inside the WinBUGS14 directory is a program
called WinBUGS14.exe - Right-click on the pretty WinBUGS icon, select
create shortcut', then drag this shortcut to the
desktop - Double click on WinBUGS14.exe to run WinBUGS14.
5How to obtain and install WinBUGS
- To obtain the key for unrestricted use
- Fill in the registration form
- 1h later, you will receive an email from Bugs
with subject - WinBUGS registration - AUTOMATIC RESPONSE!
- Follow the instructions...
- Congratulations, you're ready to use WinBUGS
6Principle
- You specify the prior and build up the likelihood
- WinBUGS computes the posterior by running a Gibbs
sampling algorithm, based on - ?(?D) / L(D?) ?(?)
- WinBUGS computes some convergence diagnostics
that you have to check
7A biological example throughout White stork
(Ciconia ciconia) in Alsace 1948-1970
Demographic components (fecundity, breeding
success, survival, etc)
Climate (Temperature, rainfall, etc)
8WinBUGS Linear Regression
15.1 67 13.3 52 15.3 88 13.3 61 14.6 32
15.6 36 13.1 72 13.1 43 15.0 92 11.7 32
15.3 86 14.4 28 14.4 57 12.7 55 11.7 66
11.9 26 15.9 28 13.4 96 14.0 48 13.9 90
12.9 86 15.1 78 13.0 87
2.55 1.85 2.05 2.88 3.13 2.21 2.43 2.69 2.55 2.84
2.47 2.69 2.52 2.31 2.07 2.35 2.98 1.98 2.53 2.21
2.62 1.78 2.30
Y Number of chicks per pairs
T Temp. May (C) R Rainf. May (mm)
9WinBUGS Linear Regression
1. Do temperature and rainfall affect the number
of chicks?
2. Regression model
Yi ? ?r Ri ?t Ti ?i , i1,...,23 ?i
i.i.d. N(0,?2)
Yi i.i.d. N(?i,?2), i1,...,23 ?i ? ?r Ri
?t Ti
3. Estimation of parameters ?, ?r, ?t, ?
4. Frequentist inference uses t-tests
10Linear Regression using Frequentist approach
15.1 67 13.3 52 15.3 88 13.3 61 14.6 32
15.6 36 ... ... 13.0 87
2.55 1.85 2.05 2.88 3.13 2.21 ... 2.30
Y Number of chicks per pairs
T Temp. May (C) R Rainf. May (mm)
Y 2.451 0.031 T - 0.007 R
Estimate Std. Error t value Pr(gtt)
temperature 0.031069 0.054690 0.568
0.57629 rainfall -0.007316 0.002897
-2.525 0.02011
11Linear Regression using Frequentist approach
15.1 67 13.3 52 15.3 88 13.3 61 14.6 32
15.6 36 ... ... 13.0 87
2.55 1.85 2.05 2.88 3.13 2.21 ... 2.30
Y Number of chicks per pairs
T Temp. May (C) R Rainf. May (mm)
Y 2.451 0.031 T - 0.007 R
Estimate Std. Error t value Pr(gtt)
temperature 0.031069 0.054690 0.568
0.57629 rainfall -0.007316 0.002897
-2.525 0.02011
? Influence of Rainfall only
12Running WinBUGS What do you need?
13Running WinBUGS The model
14Running WinBUGS Data and initial values
15Running WinBUGS Overall
16Running WinBUGS At last!!
1- check model 2- load data 3- compile model 4-
load initial values 5- generate burn-in values 6-
parameters to be monitored 7- perform the
sampling to generate posteriors 8- check
convergence and display results
17Running WinBUGS 1. Check model
18Running WinBUGS 1. Check model highlight 'model'
19Running WinBUGS 1. Check model open the Model
Specification Tool
20Running WinBUGS 1. Check model Now click 'check
model'
21Running WinBUGS 1. Check model Watch out for the
confirmation at the foot of the screen
22Running WinBUGS 2. Load data Now highlight the
'list' in the data window
23Running WinBUGS 2. Load data then click 'load
data'
24Running WinBUGS 2. Load data watch out for the
confirmation at the foot of the screen
25Running WinBUGS 3. Compile model Next, click
'compile'
26Running WinBUGS 3. Compile model watch out for
the confirmation at the foot of the screen
27Running WinBUGS 4. Load initial values highlight
the 'list' in the data window
28Running WinBUGS 4. Load initial values click
'load inits'
29Running WinBUGS 4. Load initial values watch out
for the confirmation at the foot of the screen
30Running WinBUGS 5. Generate Burn-in values Open
the Model Update Tool
31Running WinBUGS 5. Generate Burn-in values Give
the number of burn-in iterations (1000)
32Running WinBUGS 5. Generate Burn-in values click
'update' to do the sampling
33Running WinBUGS 6. Monitor parameters open the
Inference Samples Tool
34Running WinBUGS 6. Monitor parameters Enter
'intercept' in the node box and click 'set'
35Running WinBUGS 6. Monitor parameters Enter
'slope_temperature' in the node box and click
'set'
36Running WinBUGS 6. Monitor parameters Enter
'slope_rainfall' in the node box and click 'set'
37Running WinBUGS 7. Generate posterior values
enter the number of samples you want to take
(10000)
38Running WinBUGS 7. Generate posterior values
click 'update' to do the sampling
39Running WinBUGS 8. Summarize posteriors Enter
'' in the node box and click 'stats'
40Running WinBUGS 8. Summarize posteriors mean,
median and credible intervals
41Running WinBUGS 8. Summarize posteriors 95
Credible intervals
tell us the same story
Estimate Std. Error t value Pr(gtt)
temperature 0.031069 0.054690 0.568
0.57629 rainfall -0.007316 0.002897
-2.525 0.02011
42Running WinBUGS 8. Summarize posteriors 95
Credible intervals
tell us the same story
Estimate Std. Error t value Pr(gtt)
temperature 0.031069 0.054690 0.568
0.57629 rainfall -0.007316 0.002897
-2.525 0.02011
43Running WinBUGS 8. Summarize posteriors click
'history'
44Running WinBUGS 8. Summarize posteriors click
'auto cor'
? Problem of autocorrelation
45Coping with autocorrelation use standardized
covariates
46Coping with autocorrelation use standardized
covariates
47Re-running WinBUGS 1,2,...7, and 8. Summarize
posteriors click 'auto cor'
? autocorrelation OK
48Re-running WinBUGS 1,2,...7, and 8. Summarize
posteriors click 'density'
49Re-running WinBUGS 1,2,...7, and 8. Summarize
posteriors click 'quantiles'
50Running WinBUGS 8. Checking for convergence using
the Brooks-Gelman-Rubin criterion
- A way to identify non-convergence is to simulate
multiple sequences for over-dispersed starting
points - Intuitively, the behaviour of all of the chains
should be basically the same. - In other words, the variance within the chains
should be the same as the variance across the
chains. - In WinBUGS, stipulate the number of chains after
'load data' and before 'compile' (obviously, as
many sets of initial values as chains have to be
loaded, or generated)
51Running WinBUGS 8. Checking for convergence using
the Brooks-Gelman-Rubin criterion
The normalized width of the central 80 interval
of the pooled runs is green The normalized
average width of the 80 intervals within the
individual runs is blue
52Re-running WinBUGS 1,2,...7, and 8. Summarize
posteriors others...
- Click 'coda' to produce lists of data suitable
for external treatment via the Coda R package - Click 'trace' to produce dynamic history
changing in real time
53Another example logistic regression
15.1 67 13.3 52 15.3 88 13.3 61 14.6 32
15.6 36 13.1 72 13.1 43 15.0 92 11.7 32
15.3 86 14.4 28 14.4 57 12.7 55 11.7 66
11.9 26 15.9 28 13.4 96 14.0 48 13.9 90
12.9 86 15.1 78 13.0 87
151 / 173 105 / 164 73 / 103 107 / 113 113
/ 122 87 / 112 77 / 98 108 / 121 118 /
132 122 / 136 112 / 133 120 / 137 122 / 145
89 / 117 69 / 90 71 / 80 53 / 67
41 / 54 53 / 58 31 / 39 35 /
42 14 / 23 18 / 23
Y Proportion of nests with success (gt0 youngs)
T Temp. May (C) R Rainf. May (mm)
54Performing a logistic regression with WinBUGS
55Performing a logistic regression with WinBUGS
56Performing a logistic regression with WinBUGS
noninformative priors
57Performing a logistic regression with WinBUGS
data initial values
58Performing a logistic regression with WinBUGS the
results
lower
upper
- influence of rainfall, but not temperature (see
credible intervals)
59Performing a logistic regression with WinBUGS the
results
- additional parameters as a by-product of the
MCMC samples just add them in the model as
parameters to be monitored - - geometric mean
- geom lt- pow(prod(p),1/N)
- - odds-ratio
- odds.rainfall lt- exp(slope.rainfall)
- odds.temperature lt- exp(slope.temperature)
60Performing a logistic regression with WinBUGS the
results
- additional parameters as a by-product of the
MCMC samples - - geom. mean probability of success around 82
8184 - - odds-ratio -16 for an increase of rainfall of
1 unit
61Climatic conditions affect survival in the
wild a) European dippers in Eastern France
(1981-1987) Practical session 1
- Estimating survival using capture-recapture
models - CJS model time-dependent survival and detection
rates - Case study a) A flood occured in the 1983
breeding season so that survival rates are
expected to differ between flood (?f) and
non-flood (?n) years - ? use constraints to estimate parameters ?f and ?n
62Climatic conditions affect survival in the
wild b) White storks in Badden-Württemberg
(1956-1971) Practical session 2
- Estimating survival using capture-recapture
models - CJS model time-dependent survival and detection
rates - Case study b) Amount of rainfall in Sahel is
expected to affect White stork survival - ? use precipitations as a covariate
- Strong assumption variation in survival is
totally explained by the covariate alone - ? incorporate random effects