Discrete Gibbs Sampler (DGS)

Implementation of a sampler for the simulation of discrete or discretized model parameters with finite support. Draws are simulated directly from a probability mass function that can be specified up to a constant of proportionality. Note that versions of this sampler evaluate the probability function over all points in the parameter space; and, as a result, may be very computationally intensive for large spaces.

Model-Based Constructor

DGS(params::ElementOrVector{Symbol})

Construct a Sampler object for which DGS sampling is to be applied separately to each of the supplied parameters. Parameters are assumed to have discrete univariate distributions with finite supports.

Arguments

  • params : stochastic node(s) to be updated with the sampler.

Value

Returns a Sampler{DGSTune} type object.

Example

See the Eyes, Pollution, and other Examples.

Stand-Alone Functions

dgs!(v::DGSVariate, support::Matrix{T<:Real}, logf::Function)
dgs!(v::DGSVariate, support::Matrix{T<:Real}, probs::Vector{Float64})

Simulate one draw directly from a target probability mass function. Parameters are assumed to have discrete and finite support.

Arguments

  • v : current state of parameters to be simulated.
  • support : matrix whose columns contain the vector coordinates in the parameter space from which to simulate values.
  • logf : function that takes a single DenseVector argument of parameter values at which to compute the log-transformed density (up to a normalizing constant).
  • probs : sampling probabilities for the columns of support.

Value

Returns v updated with simulated values and associated tuning parameters.

DGSVariate Type

Declaration

typealias DGSVariate SamplerVariate{DGSTune}

Fields

  • value::Vector{Float64} : simulated values.
  • tune::DGSTune : tuning parameters for the sampling algorithm.

Constructors

DGSVariate(x::AbstractVector{T<:Real})
DGSVariate(x::AbstractVector{T<:Real}, tune::DGSTune)

Construct a DGSVariate object that stores simulated values and tuning parameters for DGS sampling.

Arguments

  • x : simulated values.
  • tune : tuning parameters for the sampling algorithm. If not supplied, parameters are set to their defaults.

Value

Returns a DGSVariate type object with fields set to the values supplied to arguments x and tune.

DGSTune Type

Declaration

type DGSTune <: SamplerTune

Fields

  • support::Matrix{Real} : matrix whose columns contain the vector coordinates in the parameter space from which to simulate values.
  • probs::Vector{Float64} : sampling probabilities for the columns of support.