Transformations of a random variable from one space to another.¶
Note that for convenience these entities can be addressed as
pm.transforms.
X for any name X, although they are actually
implemented as pm.distributions.transforms.
*X*.
Contents
Transform Instances¶
Transform instances are the entities that should be used in the
transform
parameter to a random variable constructor. These are
initialized instances of the Transform Classes, which are described
below.
stick_breaking
Instantiation of
StickBreaking
Transform
class for use in thetransform
argument of a random variable.logodds
Instantiation of
LogOdds
Transform
class for use in thetransform
argument of a random variable.interval
Alias of
Interval
Transform
class for use in thetransform
argument of a random variable.log_exp_m1
Instantiation of
LogExpM1
Transform
class for use in thetransform
argument of a random variable.lowerbound
Alias of
LowerBound
Transform
class for use in thetransform
argument of a random variable.upperbound
Alias of
UpperBound
Transform
class for use in thetransform
argument of a random variable.ordered
Instantiation of
Ordered
Transform
class for use in thetransform
argument of a random variable.log
Instantiation of
Log
Transform
class for use in thetransform
argument of a random variable.sum_to_1
Instantiation of
SumTo1
Transform
class for use in thetransform
argument of a random variable.circular
Instantiation of
Circular
Transform
class for use in thetransform
argument of a random variable.
Transform Base Classes¶
Typically the programmer will not use these directly.
- class pymc3.distributions.transforms.Transform¶
A transformation of a random variable from one space into another.
- Attributes
- name: str
- backward(z)¶
Applies inverse of transformation to input variable z. When transform is used on some distribution p, which has observed values z, it is used to transform the values of z correctly to the support of p.
- Parameters
- z: tensor
Input tensor to be inverse transformed.
- Returns
- tensor
Inverse transformed tensor.
- forward(x)¶
Applies transformation forward to input variable x. When transform is used on some distribution p, it will transform the random variable x after sampling from p.
- Parameters
- x: tensor
Input tensor to be transformed.
- Returns
- tensor
Transformed tensor.
- forward_val(x, point)¶
Applies transformation forward to input array x. Similar to forward but for constant data.
- Parameters
- x: array_like
Input array to be transformed.
- point: array_like, optional
Test value used to draw (fix) bounds-like transformations
- Returns
- array_like
Transformed array.
- jacobian_det(x)¶
Calculates logarithm of the absolute value of the Jacobian determinant of the backward transformation for input x.
- Parameters
- x: tensor
Input to calculate Jacobian determinant of.
- Returns
- tensor
The log abs Jacobian determinant of x w.r.t. this transform.
- pymc3.distributions.transforms.transform¶
- class pymc3.distributions.transforms.TransformedDistribution(name, *args, **kwargs)¶
A distribution that has been transformed from one space into another.
- Parameters
- dist: Distribution
- transform: Transform
- args, kwargs
arguments to Distribution
- logp(x)¶
Calculate log-probability of Transformed distribution at specified value.
- Parameters
- x: numeric
Value for which log-probability is calculated.
- Returns
- TensorVariable
- logp_nojac(x)¶
Calculate log-probability of Transformed distribution at specified value without jacobian term for transforms.
- Parameters
- x: numeric
Value for which log-probability is calculated.
- Returns
- TensorVariable
Transform Composition Classes¶
- class pymc3.distributions.transforms.Chain(transform_list)¶
- backward(y)¶
Applies inverse of transformation to input variable z. When transform is used on some distribution p, which has observed values z, it is used to transform the values of z correctly to the support of p.
- Parameters
- z: tensor
Input tensor to be inverse transformed.
- Returns
- tensor
Inverse transformed tensor.
- forward(x)¶
Applies transformation forward to input variable x. When transform is used on some distribution p, it will transform the random variable x after sampling from p.
- Parameters
- x: tensor
Input tensor to be transformed.
- Returns
- tensor
Transformed tensor.
- forward_val(x, point=None)¶
Applies transformation forward to input array x. Similar to forward but for constant data.
- Parameters
- x: array_like
Input array to be transformed.
- point: array_like, optional
Test value used to draw (fix) bounds-like transformations
- Returns
- array_like
Transformed array.
- jacobian_det(y)¶
Calculates logarithm of the absolute value of the Jacobian determinant of the backward transformation for input x.
- Parameters
- x: tensor
Input to calculate Jacobian determinant of.
- Returns
- tensor
The log abs Jacobian determinant of x w.r.t. this transform.
- class pymc3.distributions.transforms.CholeskyCovPacked(n)¶
- backward(x)¶
Applies inverse of transformation to input variable z. When transform is used on some distribution p, which has observed values z, it is used to transform the values of z correctly to the support of p.
- Parameters
- z: tensor
Input tensor to be inverse transformed.
- Returns
- tensor
Inverse transformed tensor.
- forward(y)¶
Applies transformation forward to input variable x. When transform is used on some distribution p, it will transform the random variable x after sampling from p.
- Parameters
- x: tensor
Input tensor to be transformed.
- Returns
- tensor
Transformed tensor.
- forward_val(y, point=None)¶
Applies transformation forward to input array x. Similar to forward but for constant data.
- Parameters
- x: array_like
Input array to be transformed.
- point: array_like, optional
Test value used to draw (fix) bounds-like transformations
- Returns
- array_like
Transformed array.
- jacobian_det(y)¶
Calculates logarithm of the absolute value of the Jacobian determinant of the backward transformation for input x.
- Parameters
- x: tensor
Input to calculate Jacobian determinant of.
- Returns
- tensor
The log abs Jacobian determinant of x w.r.t. this transform.
Specific Transform Classes¶
- class pymc3.distributions.transforms.Log¶
- backward(x)¶
Applies inverse of transformation to input variable z. When transform is used on some distribution p, which has observed values z, it is used to transform the values of z correctly to the support of p.
- Parameters
- z: tensor
Input tensor to be inverse transformed.
- Returns
- tensor
Inverse transformed tensor.
- forward(x)¶
Applies transformation forward to input variable x. When transform is used on some distribution p, it will transform the random variable x after sampling from p.
- Parameters
- x: tensor
Input tensor to be transformed.
- Returns
- tensor
Transformed tensor.
- forward_val(x, point=None)¶
Applies transformation forward to input array x. Similar to forward but for constant data.
- Parameters
- x: array_like
Input array to be transformed.
- point: array_like, optional
Test value used to draw (fix) bounds-like transformations
- Returns
- array_like
Transformed array.
- jacobian_det(x)¶
Calculates logarithm of the absolute value of the Jacobian determinant of the backward transformation for input x.
- Parameters
- x: tensor
Input to calculate Jacobian determinant of.
- Returns
- tensor
The log abs Jacobian determinant of x w.r.t. this transform.
- class pymc3.distributions.transforms.LogExpM1¶
- backward(x)¶
Applies inverse of transformation to input variable z. When transform is used on some distribution p, which has observed values z, it is used to transform the values of z correctly to the support of p.
- Parameters
- z: tensor
Input tensor to be inverse transformed.
- Returns
- tensor
Inverse transformed tensor.
- forward(x)¶
Inverse operation of softplus.
- y = Log(Exp(x) - 1)
= Log(1 - Exp(-x)) + x
- forward_val(x, point=None)¶
Applies transformation forward to input array x. Similar to forward but for constant data.
- Parameters
- x: array_like
Input array to be transformed.
- point: array_like, optional
Test value used to draw (fix) bounds-like transformations
- Returns
- array_like
Transformed array.
- jacobian_det(x)¶
Calculates logarithm of the absolute value of the Jacobian determinant of the backward transformation for input x.
- Parameters
- x: tensor
Input to calculate Jacobian determinant of.
- Returns
- tensor
The log abs Jacobian determinant of x w.r.t. this transform.
- class pymc3.distributions.transforms.LogOdds¶
- backward(x)¶
Applies inverse of transformation to input variable z. When transform is used on some distribution p, which has observed values z, it is used to transform the values of z correctly to the support of p.
- Parameters
- z: tensor
Input tensor to be inverse transformed.
- Returns
- tensor
Inverse transformed tensor.
- forward(x)¶
Applies transformation forward to input variable x. When transform is used on some distribution p, it will transform the random variable x after sampling from p.
- Parameters
- x: tensor
Input tensor to be transformed.
- Returns
- tensor
Transformed tensor.
- forward_val(x, point=None)¶
Applies transformation forward to input array x. Similar to forward but for constant data.
- Parameters
- x: array_like
Input array to be transformed.
- point: array_like, optional
Test value used to draw (fix) bounds-like transformations
- Returns
- array_like
Transformed array.
- class pymc3.distributions.transforms.Interval(a, b)¶
Transform from real line interval [a,b] to whole real line.
- backward(x)¶
Applies inverse of transformation to input variable z. When transform is used on some distribution p, which has observed values z, it is used to transform the values of z correctly to the support of p.
- Parameters
- z: tensor
Input tensor to be inverse transformed.
- Returns
- tensor
Inverse transformed tensor.
- forward(x)¶
Applies transformation forward to input variable x. When transform is used on some distribution p, it will transform the random variable x after sampling from p.
- Parameters
- x: tensor
Input tensor to be transformed.
- Returns
- tensor
Transformed tensor.
- forward_val(x, point=None)¶
Applies transformation forward to input array x. Similar to forward but for constant data.
- Parameters
- x: array_like
Input array to be transformed.
- point: array_like, optional
Test value used to draw (fix) bounds-like transformations
- Returns
- array_like
Transformed array.
- jacobian_det(x)¶
Calculates logarithm of the absolute value of the Jacobian determinant of the backward transformation for input x.
- Parameters
- x: tensor
Input to calculate Jacobian determinant of.
- Returns
- tensor
The log abs Jacobian determinant of x w.r.t. this transform.
- class pymc3.distributions.transforms.LowerBound(a)¶
Transform from real line interval [a,inf] to whole real line.
- backward(x)¶
Applies inverse of transformation to input variable z. When transform is used on some distribution p, which has observed values z, it is used to transform the values of z correctly to the support of p.
- Parameters
- z: tensor
Input tensor to be inverse transformed.
- Returns
- tensor
Inverse transformed tensor.
- forward(x)¶
Applies transformation forward to input variable x. When transform is used on some distribution p, it will transform the random variable x after sampling from p.
- Parameters
- x: tensor
Input tensor to be transformed.
- Returns
- tensor
Transformed tensor.
- forward_val(x, point=None)¶
Applies transformation forward to input array x. Similar to forward but for constant data.
- Parameters
- x: array_like
Input array to be transformed.
- point: array_like, optional
Test value used to draw (fix) bounds-like transformations
- Returns
- array_like
Transformed array.
- jacobian_det(x)¶
Calculates logarithm of the absolute value of the Jacobian determinant of the backward transformation for input x.
- Parameters
- x: tensor
Input to calculate Jacobian determinant of.
- Returns
- tensor
The log abs Jacobian determinant of x w.r.t. this transform.
- class pymc3.distributions.transforms.UpperBound(b)¶
Transform from real line interval [-inf,b] to whole real line.
- backward(x)¶
Applies inverse of transformation to input variable z. When transform is used on some distribution p, which has observed values z, it is used to transform the values of z correctly to the support of p.
- Parameters
- z: tensor
Input tensor to be inverse transformed.
- Returns
- tensor
Inverse transformed tensor.
- forward(x)¶
Applies transformation forward to input variable x. When transform is used on some distribution p, it will transform the random variable x after sampling from p.
- Parameters
- x: tensor
Input tensor to be transformed.
- Returns
- tensor
Transformed tensor.
- forward_val(x, point=None)¶
Applies transformation forward to input array x. Similar to forward but for constant data.
- Parameters
- x: array_like
Input array to be transformed.
- point: array_like, optional
Test value used to draw (fix) bounds-like transformations
- Returns
- array_like
Transformed array.
- jacobian_det(x)¶
Calculates logarithm of the absolute value of the Jacobian determinant of the backward transformation for input x.
- Parameters
- x: tensor
Input to calculate Jacobian determinant of.
- Returns
- tensor
The log abs Jacobian determinant of x w.r.t. this transform.
- class pymc3.distributions.transforms.Ordered¶
- backward(y)¶
Applies inverse of transformation to input variable z. When transform is used on some distribution p, which has observed values z, it is used to transform the values of z correctly to the support of p.
- Parameters
- z: tensor
Input tensor to be inverse transformed.
- Returns
- tensor
Inverse transformed tensor.
- forward(x)¶
Applies transformation forward to input variable x. When transform is used on some distribution p, it will transform the random variable x after sampling from p.
- Parameters
- x: tensor
Input tensor to be transformed.
- Returns
- tensor
Transformed tensor.
- forward_val(x, point=None)¶
Applies transformation forward to input array x. Similar to forward but for constant data.
- Parameters
- x: array_like
Input array to be transformed.
- point: array_like, optional
Test value used to draw (fix) bounds-like transformations
- Returns
- array_like
Transformed array.
- jacobian_det(y)¶
Calculates logarithm of the absolute value of the Jacobian determinant of the backward transformation for input x.
- Parameters
- x: tensor
Input to calculate Jacobian determinant of.
- Returns
- tensor
The log abs Jacobian determinant of x w.r.t. this transform.
- class pymc3.distributions.transforms.SumTo1¶
Transforms K - 1 dimensional simplex space (k values in [0,1] and that sum to 1) to a K - 1 vector of values in [0,1] This Transformation operates on the last dimension of the input tensor.
- backward(y)¶
Applies inverse of transformation to input variable z. When transform is used on some distribution p, which has observed values z, it is used to transform the values of z correctly to the support of p.
- Parameters
- z: tensor
Input tensor to be inverse transformed.
- Returns
- tensor
Inverse transformed tensor.
- forward(x)¶
Applies transformation forward to input variable x. When transform is used on some distribution p, it will transform the random variable x after sampling from p.
- Parameters
- x: tensor
Input tensor to be transformed.
- Returns
- tensor
Transformed tensor.
- forward_val(x, point=None)¶
Applies transformation forward to input array x. Similar to forward but for constant data.
- Parameters
- x: array_like
Input array to be transformed.
- point: array_like, optional
Test value used to draw (fix) bounds-like transformations
- Returns
- array_like
Transformed array.
- jacobian_det(x)¶
Calculates logarithm of the absolute value of the Jacobian determinant of the backward transformation for input x.
- Parameters
- x: tensor
Input to calculate Jacobian determinant of.
- Returns
- tensor
The log abs Jacobian determinant of x w.r.t. this transform.
- class pymc3.distributions.transforms.StickBreaking(eps=None)¶
Transforms K - 1 dimensional simplex space (k values in [0,1] and that sum to 1) to a K - 1 vector of real values. This is a variant of the isometric logration transformation
Egozcue, J.J., Pawlowsky-Glahn, V., Mateu-Figueras, G. et al. Isometric Logratio Transformations for Compositional Data Analysis. Mathematical Geology 35, 279–300 (2003). https://doi.org/10.1023/A:1023818214614
- backward(y_)¶
Applies inverse of transformation to input variable z. When transform is used on some distribution p, which has observed values z, it is used to transform the values of z correctly to the support of p.
- Parameters
- z: tensor
Input tensor to be inverse transformed.
- Returns
- tensor
Inverse transformed tensor.
- forward(x_)¶
Applies transformation forward to input variable x. When transform is used on some distribution p, it will transform the random variable x after sampling from p.
- Parameters
- x: tensor
Input tensor to be transformed.
- Returns
- tensor
Transformed tensor.
- forward_val(x_, point=None)¶
Applies transformation forward to input array x. Similar to forward but for constant data.
- Parameters
- x: array_like
Input array to be transformed.
- point: array_like, optional
Test value used to draw (fix) bounds-like transformations
- Returns
- array_like
Transformed array.
- jacobian_det(y_)¶
Calculates logarithm of the absolute value of the Jacobian determinant of the backward transformation for input x.
- Parameters
- x: tensor
Input to calculate Jacobian determinant of.
- Returns
- tensor
The log abs Jacobian determinant of x w.r.t. this transform.
- class pymc3.distributions.transforms.Circular¶
Transforms a linear space into a circular one.
- backward(y)¶
Applies inverse of transformation to input variable z. When transform is used on some distribution p, which has observed values z, it is used to transform the values of z correctly to the support of p.
- Parameters
- z: tensor
Input tensor to be inverse transformed.
- Returns
- tensor
Inverse transformed tensor.
- forward(x)¶
Applies transformation forward to input variable x. When transform is used on some distribution p, it will transform the random variable x after sampling from p.
- Parameters
- x: tensor
Input tensor to be transformed.
- Returns
- tensor
Transformed tensor.
- forward_val(x, point=None)¶
Applies transformation forward to input array x. Similar to forward but for constant data.
- Parameters
- x: array_like
Input array to be transformed.
- point: array_like, optional
Test value used to draw (fix) bounds-like transformations
- Returns
- array_like
Transformed array.
- jacobian_det(x)¶
Calculates logarithm of the absolute value of the Jacobian determinant of the backward transformation for input x.
- Parameters
- x: tensor
Input to calculate Jacobian determinant of.
- Returns
- tensor
The log abs Jacobian determinant of x w.r.t. this transform.