A functional BasicGibbsJob has been implemented here. An example of how this Gibbs job can be utilized to sample from a bivariate normal distribution with two correlated random variables is available here.
Although the existing Gibbs job is operational, more work is required before it can be used for sampling from hierarchical models similarly to OpenBUGS. The main goal is to be able to take as input a set of cliques (into which the graphical probabilistic model can be decomposed) and the factors associated with these cliques, and then derive the parameter associated with each node in the graph. The target of each parameter can then be fed into the existing Gibbs job or to variations of it.
Here is an incremental task list required to reach the point of being able to sample from hierarchical models:
[x] Define a Gibbs factor, i.e. a factor product over disjoint cliques (not normalized by the associated partition function).
[x] Construct one variable per node in the graphical model by taking the Gibbs factor as input.
[ ] Make sure that data and transformation variables are also incorporated in the Gibbs factor.
[x] Add an option for determining the support of the involved parameters, which will be implemented using a truncated normal proposal or a Jacobian correction.
[ ] Add the tuner for adaptive Metropolis-within-Gibbs introduced by Roberts and Rosenthal.
[ ] Make the BasicGibbsJob work by taking a GibbsFactor as input.
These tasks are carried out in the gibbs branch before the issue has been resolved and merged into master.
A functional
BasicGibbsJob
has been implemented here. An example of how this Gibbs job can be utilized to sample from a bivariate normal distribution with two correlated random variables is available here.Although the existing Gibbs job is operational, more work is required before it can be used for sampling from hierarchical models similarly to OpenBUGS. The main goal is to be able to take as input a set of cliques (into which the graphical probabilistic model can be decomposed) and the factors associated with these cliques, and then derive the parameter associated with each node in the graph. The target of each parameter can then be fed into the existing Gibbs job or to variations of it.
Here is an incremental task list required to reach the point of being able to sample from hierarchical models:
BasicGibbsJob
work by taking aGibbsFactor
as input.These tasks are carried out in the gibbs branch before the issue has been resolved and merged into master.