gluonts.model.tpp.distribution.base module

class gluonts.model.tpp.distribution.base.TPPDistribution[source]

Bases: gluonts.mx.distribution.distribution.Distribution

Distribution used in temporal point processes.

This class must implement new methods log_intensity, log_survival that are necessary for computing log-likelihood of TPP realizations. Also, sample_conditional is necessary for sampling TPPs.

arg_names = None
cdf(y: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]) → Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol][source]

Returns the value of the cumulative distribution function evaluated at x

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

Logarithm of the intensity (a.k.a. hazard) function.

The intensity is defined as \(\lambda(x) = p(x) / S(x)\).

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

Compute the log-density of the distribution at x.

Parameters

x – Tensor of shape (*batch_shape, *event_shape).

Returns

Tensor of shape batch_shape containing the log-density of the distribution for each event in x.

Return type

Tensor

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

Logarithm of the survival function log S(x) = log(1 - CDF(x)).

sample(num_samples=None, dtype=<class 'numpy.float32'>, lower_bound: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol, None] = 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.

Parameters
  • num_samples – Number of samples to to be drawn.

  • dtype – Data-type of the 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.

Return type

Tensor

class gluonts.model.tpp.distribution.base.TPPDistributionOutput[source]

Bases: gluonts.mx.distribution.distribution_output.DistributionOutput

Class to construct a distribution given the output of a network.

Two differences compared to the base class DistributionOutput: 1. Location param cannot be specified (all distributions must start at 0). 2. The return type is either TPPDistribution or TPPTransformedDistribution.

distr_cls: type = None
distribution(distr_args, loc=None, scale: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol, None] = None) → Union[gluonts.model.tpp.distribution.base.TPPDistribution, gluonts.model.tpp.distribution.base.TPPTransformedDistribution][source]

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

Parameters
  • distr_args – Constructor arguments for the underlying TPPDistribution type.

  • loc – Location parameter, specified here for compatibility with the superclass. Should never be specified.

  • scale – Optional tensor, of the same shape as the batch_shape+event_shape of the resulting distribution.

class gluonts.model.tpp.distribution.base.TPPTransformedDistribution(base_distribution: gluonts.model.tpp.distribution.base.TPPDistribution, transforms: List[gluonts.mx.distribution.bijection.Bijection])[source]

Bases: gluonts.mx.distribution.transformed_distribution.TransformedDistribution

TransformedDistribution used in temporal point processes.

This class must implement new methods log_intensity, log_survival that are necessary for computing log-likelihood of TPP realizations. Also, sample_conditional is necessary for sampling TPPs.

Additionally, the sequence of transformations passed to the constructor must be increasing.

base_distribution: TPPDistribution = None
cdf(y: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]) → Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol][source]

Returns the value of the cumulative distribution function evaluated at x

log_intensity(y: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]) → Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol][source]

Logarithm of the intensity (a.k.a. hazard) function.

The intensity is defined as \(\lambda(y) = p(y) / S(y)\).

log_survival(y: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]) → Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol][source]

Logarithm of the survival function \(\log S(y) = \log(1 - CDF(y))\).

sample(num_samples=None, dtype=<class 'numpy.float32'>, lower_bound: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol, None] = None) → Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol][source]

Draw samples from the distribution.

Parameters
  • num_samples – Number of samples to generate.

  • dtype – Data type of the generated samples.

  • lower_bound – If None, generate samples as usual. If lower_bound is provided, all generated samples will be larger than the specified values. That is, we sample from p(x | x > lower_bound). Shape: (*batch_size)

Returns

Transformed samples drawn from the base distribution. Shape: (num_samples, *batch_size)

Return type

x