bilby.core.prior.slabspike.SlabSpikePrior
- class bilby.core.prior.slabspike.SlabSpikePrior(slab, spike_location=None, spike_height=0)[source]
Bases:
Prior- __init__(slab, spike_location=None, spike_height=0)[source]
‘Slab-and-spike’ prior, see e.g. https://arxiv.org/abs/1812.07259 This prior is composed of a slab, i.e. any common prior distribution, and a Dirac spike at a fixed location. This can effectively be used to emulate sampling in the number of dimensions (similar to reversible- jump MCMC).
SymmetricLogUniform and FermiDirac are currently not supported.
- Parameters:
- slab: Prior
Any instance of a bilby prior class. All general prior attributes from the slab are copied into the SlabSpikePrior. Note that this hasn’t been tested for conditional priors.
- spike_location: float, optional
Location of the Dirac spike. Must be between minimum and maximum of the slab. Defaults to the minimum of the slab
- spike_height: float, optional
Relative weight of the spike compared to the slab. Must be between 0 and 1. Defaults to 0, i.e. the prior is just the slab.
- __call__()[source]
Overrides the __call__ special method. Calls the sample method.
- Returns:
- float: The return value of the sample method.
Methods
__init__(slab[, spike_location, spike_height])'Slab-and-spike' prior, see e.g. https://arxiv.org/abs/1812.07259 This prior is composed of a slab, i.e. any common prior distribution, and a Dirac spike at a fixed location.
cdf(*args[, xp])from_json(dct)from_repr(string)Generate the prior from its __repr__
get_instantiation_dict()is_in_prior_range(val)Returns True if val is in the prior boundaries, zero otherwise
ln_prob(*args[, xp])prob(*args[, xp])Return the prior probability of val, this should be overwritten
rescale(*args[, xp])'Rescale' a sample from the unit line element to the prior.
sample([size, random_state])Draw a sample from the prior
to_json()Attributes
boundaryReturns True if the prior is fixed and should not be used in the sampler.
Latex label that can be used for plots.
If a unit is specified, returns a string of the latex label and unit
maximumminimumRelative prior weight of the slab.
spike_heightspike_locationunitwidth- property is_fixed
Returns True if the prior is fixed and should not be used in the sampler. Does this by checking if this instance is an instance of DeltaFunction.
- Returns:
- bool: Whether it’s fixed or not!
- is_in_prior_range(val)[source]
Returns True if val is in the prior boundaries, zero otherwise
- Parameters:
- val: Union[float, int, array_like]
- Returns:
- np.nan
- property latex_label
Latex label that can be used for plots.
Draws from a set of default labels if no label is given
- Returns:
- str: A latex representation for this prior
- property latex_label_with_unit
If a unit is specified, returns a string of the latex label and unit
- prob(*args, xp=None, **kwargs)[source]
Return the prior probability of val, this should be overwritten
- Parameters:
- val: Union[float, int, array_like]
- Returns:
- np.nan
- rescale(*args, xp=None, **kwargs)[source]
‘Rescale’ a sample from the unit line element to the prior.
This should be overwritten by each subclass.
- Parameters:
- val: Union[float, int, array_like]
A random number between 0 and 1
- Returns:
- None
- sample(size=None, *, random_state=None)[source]
Draw a sample from the prior
- Parameters:
- size: int or tuple of ints, optional
See numpy.random.uniform docs
- Returns:
- float: A random number between 0 and 1, rescaled to match the distribution of this Prior
- property slab_fraction
Relative prior weight of the slab.