# gluonts.distribution.piecewise_linear module¶

class gluonts.distribution.piecewise_linear.PiecewiseLinear(gamma: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], slopes: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], knot_spacings: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], F=None)[source]

Piecewise linear distribution.

This class represents the quantile function (i.e., the inverse CDF) associated with the a distribution, as a continuous, non-decreasing, piecewise linear function defined in the [0, 1] interval:

$q(x; \gamma, b, d) = \gamma + \sum_{l=0}^L b_l (x_l - d_l)_+$

where the input $$x \in [0,1]$$ and the parameters are

• $$\gamma$$: intercept at 0
• $$b$$: differences of the slopes in consecutive pieces
• $$d$$: knot positions
Parameters: gamma – Tensor containing the intercepts at zero slopes – Tensor containing the slopes of each linear piece. All coefficients must be positive. Shape: (*gamma.shape, num_pieces) knot_spacings – Tensor containing the spacings between knots in the splines. All coefficients must be positive and sum to one on the last axis. Shape: (*gamma.shape, num_pieces) F –
batch_shape

Layout of the set of events contemplated by the distribution.

Invoking sample() from a distribution yields a tensor of shape batch_shape + event_shape, and computing log_prob (or loss more in general) on such sample will yield a tensor of shape batch_shape.

This property is available in general only in mx.ndarray mode, when the shape of the distribution arguments can be accessed.

cdf(x: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]) → Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol][source]

Computes the quantile level $$\alpha$$ such that $$q(\alpha) = x$$.

Parameters: x – Tensor of shape gamma.shape Tensor of shape gamma.shape Tensor
crps(x: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]) → Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol][source]

Compute CRPS in analytical form.

Parameters: x – Observation to evaluate. Shape equals to gamma.shape. Tensor containing the CRPS. Tensor
event_dim

Number of event dimensions, i.e., length of the event_shape tuple.

This is 0 for distributions over scalars, 1 over vectors, 2 over matrices, and so on.

event_shape

Shape of each individual event contemplated by the distribution.

For example, distributions over scalars have event_shape = (), over vectors have event_shape = (d, ) where d is the length of the vectors, over matrices have event_shape = (d1, d2), and so on.

Invoking sample() from a distribution yields a tensor of shape batch_shape + event_shape.

This property is available in general only in mx.ndarray mode, when the shape of the distribution arguments can be accessed.

is_reparameterizable = False
loss(x: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]) → Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol][source]

Compute the loss at x according to the distribution.

By default, this method returns the negative of log_prob. For some distributions, however, the log-density is not easily computable and therefore other loss functions are computed.

Parameters: x – Tensor of shape (*batch_shape, *event_shape). Tensor of shape batch_shape containing the value of the loss for each event in x. Tensor
quantile(level: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]) → Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol][source]

Calculates quantiles for the given levels.

Parameters: level – Level values to use for computing the quantiles. level should be a 1d tensor of level values between 0 and 1. Quantile values corresponding to the levels passed. The return shape is (num_levels, …DISTRIBUTION_SHAPE…), where DISTRIBUTION_SHAPE is the shape of the underlying distribution. quantiles
quantile_internal(x: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], axis: Optional[int] = None) → Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol][source]

Evaluates the quantile function at the quantile levels contained in x.

Parameters: x – Tensor of shape *gamma.shape if axis=None, or containing an additional axis on the specified position, otherwise. axis – Index of the axis containing the different quantile levels which are to be computed. Quantiles tensor, of the same shape as x. Tensor
sample(num_samples: Optional[int] = None) → Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol][source]

Draw samples from the distribution.

If num_samples is given the first dimension of the output will be num_samples.

Returns: A tensor containing samples. This has shape (*batch_shape, *eval_shape) if num_samples = None and (num_samples, *batch_shape, *eval_shape) otherwise. Tensor
class gluonts.distribution.piecewise_linear.PiecewiseLinearOutput(num_pieces: int)[source]
distr_cls

alias of PiecewiseLinear

distribution(distr_args, scale: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol, None] = None, **kwargs) → gluonts.distribution.piecewise_linear.PiecewiseLinear[source]

Construct the associated distribution, given the collection of constructor arguments and, optionally, a scale tensor.

Parameters: distr_args – Constructor arguments for the underlying Distribution type. scale – Optional tensor, of the same shape as the batch_shape+event_shape of the resulting distribution.
classmethod domain_map(F, gamma, slopes, knot_spacings)[source]

Converts arguments to the right shape and domain. The domain depends on the type of distribution, while the correct shape is obtained by reshaping the trailing axis in such a way that the returned tensors define a distribution of the right event_shape.

event_shape

Shape of each individual event contemplated by the distributions that this object constructs.

class gluonts.distribution.piecewise_linear.TransformedPiecewiseLinear(base_distribution: gluonts.distribution.piecewise_linear.PiecewiseLinear, transforms: List[gluonts.distribution.bijection.Bijection])[source]
crps(y: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]) → Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol][source]

Compute the continuous rank probability score (CRPS) of x according to the distribution.

Parameters: x – Tensor of shape (*batch_shape, *event_shape). Tensor of shape batch_shape containing the CRPS score, according to the distribution, for each event in x. Tensor