distributions.CombinationDistribution

Combination distribution implementation.

Usage

Source

distributions.CombinationDistribution()

A distribution that combines (sums) samples from multiple underlying distributions. Useful for modeling compound effects or building complex distributions from simpler ones.

This class conforms to the Distribution protocol and provides methods to sample a combination of values from multiple distributions.

Methods

Name Description
__init__() Initialise a combination distribution.
sample() Generate random samples from the combination distribution.

__init__()

Initialise a combination distribution.

Usage

Source

__init__(*args, dists=None)

Distributions can be passed either as positional arguments or via the dists keyword argument, but not both. The keyword form is required when creating instances through the DistributionRegistry class, which passes parameters by name.

Parameters
*args: Distribution

Distribution objects to combine, passed as positional arguments. E.g. CombinationDistribution(d1, d2). Cannot be used together with dists.

dists: Sequence[Distribution] = None
Distribution objects to combine, passed as a keyword argument. E.g. CombinationDistribution(dists=[d1, d2]). Cannot be used together with *args.

sample()

Generate random samples from the combination distribution.

Usage

Source

sample(size=None)

For each sample drawn, the result is the sum of samples from each of the underlying distributions.

Parameters
size: Optional[Union[int, Tuple[int, …]]] = None
The number/shape of samples to generate:
  • If None: returns a single combined sample as a float
  • If int: returns a 1-D array with that many combined samples
  • If tuple of ints: returns an array with that shape of combined samples
Returns
Union[float, NDArray[np.float64]]
Random samples from the combination distribution:
  • A single float (sum of component samples) when size is None
  • A numpy array of combined samples with shape determined by size parameter