Session timetable

The course runs from Monday 7 to Thursday 10 September 2026 at the London School of Hygiene & Tropical Medicine. Each day runs 09:30–12:30 and 13:30–17:00, with a half-hour break in each block. Thursday is a half day.

The afternoon break is a chance to get outside — Russell Square and the surrounding gardens are a few minutes’ walk away, and there is no shortage of coffee on the way. Sitting in front of a screen debugging a sampler for seven hours is not good for anyone.

Day 1: Inference and fitting deterministic models

Monday 7 September

Monday 7 September: 08.30-09.30

  • Registration at the Hub, LSHTM main building, Keppel Street

Monday 7 September: 09.30-09.45

Getting set up

Monday 7 September: 09.45-10.30

Warning

If you can, install everything before you arrive. The packages come to around 1 GB and Julia precompiles them on first use, which takes 15–30 minutes on a good connection. If you have not managed it, come anyway and we will get you running in this slot.

Session 1: Bayesian inference with mathematical models

Monday 7 September: 10.30-11.00, 11.30-12.30 and 13.30-14.00

  • Slides: what model fitting and inference mean, likelihoods, and Bayes’ rule (25 mins)
  • Practice:
    • simulating an SIR model and exploring what the priors imply (35 mins)
    • evaluating a Poisson likelihood against observed data (30 mins)
    • combining them into a posterior and exploring it by grid search (20 mins)
  • Wrap up (10 mins)

Session 2: Markov chain Monte Carlo

Monday 7 September: 14.00-15.15 and 15.45-17.00

  • Introduction: why we sample, rejection sampling, Metropolis-Hastings and gradient-based methods (25 mins)
  • Practice:
    • implementing Metropolis-Hastings for a one-dimensional target (40 mins)
    • tuning a proposal distribution by hand, and finding out how hard that is (35 mins)
    • handing the same job to Turing.jl, and comparing MH, RAM and NUTS (40 mins)
  • Wrap up (10 mins)

Day 2: Diagnostics, model checking and stochastic models

Tuesday 8 September

Tuesday 8 September: 09.30-09.45

Session 3: MCMC diagnostics

Tuesday 8 September: 09.45-11.00 and 11.30-12.00

  • Introduction: trace plots, R̂, effective sample size and common failure modes (20 mins)
  • Practice:
    • generating good and bad chains and comparing their trace plots (40 mins)
    • computing R̂, ESS and MCSE, and diagnosing a badly specified model (35 mins)
  • Wrap up (10 mins)

Session 4: Model checking and validation

Tuesday 8 September: 12.00-12.30 and 13.30-14.30

  • Introduction: the Bayesian workflow, prior and posterior predictive checks (25 mins)
  • Practice:
    • meeting the Tristan da Cunha outbreak, and what the attack totals already say (10 mins)
    • prior predictive checks, and what vague priors actually imply (20 mins)
    • posterior predictive distributions, predictive p-values and residuals (25 mins)
  • Wrap up (10 mins)

Session 5: Modelling interlude — structure and stochasticity

Tuesday 8 September: 14.30-15.15 and 15.45-17.00

  • Introduction: the state-space view, and why stochastic models need different machinery (20 mins)
  • Practice:
    • building the SEITL model the failed checks call for (45 mins)
    • simulating it deterministically and stochastically, and comparing (45 mins)
  • Wrap up (10 mins)

Tuesday 8 September: 19.00

Day 3: Particle-based methods and observation models

Wednesday 9 September

Wednesday 9 September: 09.30-09.45

Session 6: Particle filters

Wednesday 9 September: 09.45-11.00 and 11.30-12.30

  • Introduction: the marginal likelihood, and sequential Monte Carlo (20 mins)
  • Practice:
    • seeing why a deterministic likelihood fails for a stochastic model (30 mins)
    • watching particles propagate, get weighted and be resampled (40 mins)
    • calibrating the number of particles (35 mins)
  • Wrap up (10 mins)

Session 7: Particle MCMC and model comparison

Wednesday 9 September: 13.30-15.15

  • Introduction: why a noisy likelihood estimate still targets the right posterior (20 mins)
  • Practice:
    • assembling the particle filter and Metropolis-Hastings into PMMH (35 mins)
    • running a short chain and seeing the mixing problem first hand (25 mins)
    • working with a pre-computed long chain, and comparing against the deterministic fit (15 mins)
  • Wrap up (10 mins)

Session 8: Observation models

Wednesday 9 September: 15.45-17.00

  • Introduction: what a Poisson likelihood assumes, overdispersion, and likelihood as a distance (15 mins)
  • Practice:
    • fitting with Poisson, and checking whether its variance assumption holds for the data (30 mins)
    • the negative binomial, and seeing a likelihood as a distance function (25 mins)
  • Wrap up (5 mins)

Day 4: Likelihood-free inference and closing

Thursday 10 September

Thursday 10 September: 09.30-09.45

  • Day 3 review: where the week has got to, from deterministic fitting to particle MCMC (15 mins)

Session 9: Approximate Bayesian computation

Thursday 10 September: 09.45-11.00

  • Introduction: likelihood-free inference, and choosing a distance instead (10 mins)
  • Practice:
    • ABC rejection sampling, and finding a workable acceptance threshold (20 mins)
    • what a summary statistic and a distance give up (20 mins)
    • ABC-SMC, and comparing it against rejection ABC and particle MCMC (20 mins)
  • Wrap up (5 mins)

Session 10: Synthesis and next steps

Thursday 10 September: 11.30-12.15

Bring a model you actually want to fit. The discussion works best when people argue about real problems rather than the worked examples.

Close

Thursday 10 September: 12.15-12.30

  • Wrap-up and feedback (15 mins)

Further topics

Four sessions are provided for self-study rather than taught in the room. They build on the taught sessions and can be worked through afterwards at your own pace.