EqualitySampler
EqualitySampler defines four distributions over partitions of a set:
UniformPartitionDistribution
BetaBinomialPartitionDistribution
CustomInclusionPartitionDistribution
RandomProcessPartitionDistribution
These distributions can be as prior distributions over equality constraints among a set of variables.
Type Hierarchy
Each of the four distributions is a subtype of AbstractPartitionDistribution
which is a subtype of Distributions.DiscreteMultivariateDistribution
.
Thus, each of these types can be called with e.g., rand
and logpdf
.
Representation of Partitions
While a partition is usually defined without duplicates, the methods here do assume duplicates are present. For example, given 3 parameters $(\theta_1, \theta_2, \theta_3)$ there exist 5 unique partitions:
partition | constraints | representation in Julia |
---|---|---|
$\{\{\theta_1, \theta_2, \theta_3\}\}$ | $\theta_1 = \theta_2 = \theta_3$ | [1, 1, 1] |
$\{\{\theta_1, \theta_2\}, \{\theta_3\}\}$ | $\theta_1 = \theta_2 \neq \theta_3$ | [1, 1, 2] |
$\{\{\theta_1, \theta_3\}, \{\theta_2\}\}$ | $\theta_1 = \theta_3 \neq \theta_3$ | [1, 2, 1] |
$\{\{\theta_1\}, \{\theta_2, \theta_3\}\}$ | $\theta_1 \neq \theta_2 = \theta_3$ | [1, 2, 2] |
$\{\{\theta_1\}, \{\theta_2\}, \{\theta_3\}\}$ | $\theta_1 \neq \theta_2 \neq \theta_3$ | [1, 2, 3] |
However, we also consider [2, 2, 2]
and [3, 3, 3]
to be valid and identical to [1, 1, 1]
. The main reason for this is that it has pragmatic benefits when doing Gibbs sampling. For example, consider that the current partition is [1, 2, 2]
and the sampler proposes an update for the first element. A natural proposal would be [1, 1, 1]
, however, without duplicated partitions this would be impossible (as [2, 2, 2]
would not exist). The default logpdf
accounts for duplicated partitions, use logpdf_model_distinct
to evaluate the logpdf without duplicated partitions.