pymc.distributions.transforms.Interval#
- class pymc.distributions.transforms.Interval(lower=None, upper=None, *, bounds_fn=None)[source]#
Wrapper around
pymc.logprob.transforms.IntervalTransform
for use in thetransform
argument of a random variable.- Parameters:
- lower
int
orfloat
, optional Lower bound of the interval transform. Must be a constant finite value. By default (
lower=None
), the interval is not bounded below.- upper
int
orfloat
, optional Upper bound of the interval transform. Must be a constant finite value. By default (
upper=None
), the interval is not bounded above.- bounds_fn
callable()
, optional Alternative to lower and upper. Must return a tuple of lower and upper bounds as a symbolic function of the respective distribution inputs. If one of lower or upper is
None
, the interval is unbounded on that edge.Warning
Expressions returned by bounds_fn should depend only on the distribution inputs or other constants. Expressions that depend on nonlocal variables, such as other distributions defined in the model context will likely break sampling.
- lower
Examples
Create an interval transform between -1 and +1
with pm.Model(): interval = pm.distributions.transforms.Interval(lower=-1, upper=1) x = pm.Normal("x", transform=interval)
Create a lower-bounded interval transform at 0, using a callable
def get_bounds(rng, size, dtype, mu, sigma): return 0, None with pm.Model(): interval = pm.distributions.transforms.Interval(bounds_fn=get_bounds) x = pm.Normal("x", transform=interval)
Create a lower-bounded interval transform that depends on a distribution parameter
def get_bounds(rng, size, dtype, mu, sigma): return mu - 1, None interval = pm.distributions.transforms.Interval(bounds_fn=get_bounds) with pm.Model(): mu = pm.Normal("mu") x = pm.Normal("x", mu=mu, sigma=2, transform=interval)
Methods
Interval.__init__
([lower, upper, bounds_fn])- Parameters:
Interval.backward
(value, *inputs)Invert the transformation.
Interval.forward
(value, *inputs)Apply the transformation.
Interval.get_a_and_b
(inputs)Return interval bound values.
Interval.log_jac_det
(value, *inputs)Construct the log of the absolute value of the Jacobian determinant.
Attributes
name
ndim_supp