Skip to content
Daniel Turek edited this page May 23, 2017 · 25 revisions

Here's the geoBUGS manual. Core features include:

  • manipulation of adjacency matrices/data structures for CAR style models
  • import of shapefiles/polygons
  • CAR models:
    • car.normal (ICAR)
    • car.proper (CAR) models
  • Gaussian process (GP) spatial models
  • specialized models: multivariate CAR and Poisson-based model

I propose that we focus, at least initially, on handling basic CAR/ICAR and Gaussian process models with, as needed, basic handling of adjacency information.

CAR models are tricky because they involve cycles in the graph. Some things we probably want to do

  • allow a user to specify a full (improper) precision and handle that (with our new pivoted (sparse) Cholesky) with multivariate MCMC samplers
    • we probably want to provide wrapping so a user can provide adjacency info and we generate the (sparse) precision
    • even without sparse matrices, if we allow a scaled precision where the matrix is fixed, we should only need to do the Cholesky once
  • special vectorized scalar samplers on the elements of the spatial field
    • for the latter, we'll need to generate both conjugate and nonconjugate versions that use the adjacency info to figure out dependencies - I think this will simply involve new samplers that are designed for our new dcar.normal and dcar.proper (or whatever we name them). We also need to use getDependencies in such a way that we can get individual dependencies of individual elements of the spatial field - getDependencies in this context is subject of a Github issue.
    • another possibility is that we explicitly create a vector of scalar calculate nodeFunctions for the elements in the spatial field; not sure if this would be useful to have rather than embedding everything in the sampler functions. This would allow us to use all of our current scalar and blocked samplers, but not clear how this would be implemented.

GP models shouldn't take much work - just some additional wrapping of functionality we already have.

Questions for Andrew Thomas / MRC BUGS Team

  • Density evaluation for (improper) car.normal distribution?
  • What features from geoBUGS were the most widely used?
  • More detail about sampler assignments:
    • Truly just RWMH for continuous nodes, slice for discrete nodes?
  • Implementation for conjugate samplers:
    • Using "two-point method"?
    • Efficient handling of dmnorm-dmnorm conjugacy?
  • Said they have AD capability, but aren't using it extensively. What usages have they implemented?

Clone this wiki locally