distributions.CombinationDistribution
Combination distribution implementation.
Usage
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
__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 withdists. 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
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