Description
#3 proposes that we have some type to specify the base measure of a distribution. The goal of this issue is to reach a consensus on the following questions:
Should measures be explicitly or implicitly defined?
Explicit definitions increase flexibility at the cost of greater code complexity, while implicit definitions are simpler but less customizable.
Which measures will we define, and how will we define them?
Here are some popular measures:
- Hausdorff
- Invariant measure/Haar
- Lebesgue
- Volume measure
Any one of these can be normalized. In some cases these are equivalent. They also have different definitions. We should agree on a set of definitions for these and which should be included.
How will measure definitions relate to point representation?
e.g. the usual von Mises-Fisher density on the N
-sphere is written wrt the unnormalized Hausdorff measure, and the usual representation is a vector with N+1
Cartesian coordinates. But what if a user wants to provide a vector of N
spherical coordinates and compute the density wrt the Lebesgue measure on those coordinates? Other coordinates could in principle be used; how should the user specify which Lebesgue measure is being used?
Should we provide any functionality for changing measures?
This is related to the previous question.
For example, suppose a user is doing Monte Carlo sampling for a parameter on the positive N
-hemisphere and wants to specify a prior. They then have 2 samplers. Sampler 1 proposes a move in the N
-ball from an isotropic Gaussian in the first N
coordinates, fills the N+1
entry by completing the norm, and then evaluates the density to accept or reject. Sampler 2 proposes a move on the geodesic of the N
-sphere and then evaluates the density. Sampler 1 implicitly wants densities to be defined wrt the Lebesgue measure on the N
-ball, while Sampler 2 implicitly wants densities to be defined wrt the Hausdorff measure on the N
-sphere/positive N
-hemisphere. Without a mechanism for changing measures, we would require the user manually compute the density correction if their sampler expects a different base measure than the one we implement.