mbdlyb.distributions
Probability distribution classes for continuous and discrete variables.
Provides base classes and utilities for defining probability distributions used in MBD reasoning, with support for JSON serialization and formula parameters.
Classes
Bernoulli probability distribution. |
|
Beta probability distribution. |
|
Base class for continuous probability distributions. |
|
Base class for discrete probability distributions. |
|
Discrete uniform probability distribution. |
|
Abstract base class for probability distributions. |
|
Normal (Gaussian) probability distribution. |
|
Continuous uniform probability distribution. |
Module Contents
- class mbdlyb.distributions.BernoulliDistribution(p: mbdlyb.formulae.T_FORMULA = None)
Bases:
DiscreteDistributionBernoulli probability distribution.
Models discrete binary random variables taking values 0 or 1 with specified probability of success.
- Variables:
p (Formula) – Probability of success (must be between 0 and 1).
- FORMULA_ATTRS
- TYPE = 'Bernoulli'
- class mbdlyb.distributions.BetaDistribution(a: mbdlyb.formulae.T_FORMULA = None, b: mbdlyb.formulae.T_FORMULA = None, loc: mbdlyb.formulae.T_FORMULA = None, scale: mbdlyb.formulae.T_FORMULA = None)
Bases:
ContinuousDistributionBeta probability distribution.
Models continuous random variables constrained to [0,1] interval, useful for modeling probabilities and proportions. Parameterized by shape parameters a and b, with optional location and scale transformation.
- Variables:
- FORMULA_ATTRS
- TYPE = 'Beta'
- scale: mbdlyb.formulae.Formula
- class mbdlyb.distributions.ContinuousDistribution
Bases:
DistributionBase class for continuous probability distributions.
Extends Distribution for continuous-valued random variables, implementing probability density functions and continuous CDFs.
- TYPE = 'ContinuousDistribution'
- class mbdlyb.distributions.DiscreteDistribution
Bases:
DistributionBase class for discrete probability distributions.
Extends Distribution for discrete-valued random variables, implementing probability mass functions and discrete CDFs.
- TYPE = 'DiscreteDistribution'
- class mbdlyb.distributions.DiscreteUniformDistribution(low: mbdlyb.formulae.T_FORMULA = None, high: mbdlyb.formulae.T_FORMULA = None)
Bases:
DiscreteDistributionDiscrete uniform probability distribution.
Models discrete random variables uniformly distributed over a range of integers. All integer values within the range are equally likely.
- FORMULA_ATTRS
- TYPE = 'DiscreteUniform'
- high: mbdlyb.formulae.Formula
- class mbdlyb.distributions.Distribution
Abstract base class for probability distributions.
Provides interface and utilities for probability distributions used in diagnostic reasoning. Distributions can have parameters that may be formulas dependent on other nodes, and support JSON serialization for persistence.
- Variables:
TYPE (str) – Identifier for distribution type (used in serialization).
FORMULA_ATTRS (set[str]) – Names of attributes that are formulas.
_PDF_FN (Callable) – Probability density/mass function from scipy.
_CDF_FN (Callable) – Cumulative distribution function from scipy.
- build_mapping(nodes: list[mbdlyb.MBDNode], overwrite: bool = False) dict[str, str]
Build mapping of formula parameters to node references.
- Parameters:
nodes (list[MBDNode]) – The nodes in the model for resolving formulas.
overwrite (bool) – Whether to overwrite existing mappings.
- Returns:
Mapping of parameter names to node FQN strings.
- Return type:
dict[str, str]
- cdfs(values: numpy.ndarray, dependency_values: dict[str, float] = None) numpy.ndarray
Get cumulative probabilities for multiple values.
- Parameters:
values (np.ndarray) – Array of values to evaluate.
dependency_values (dict[str, float]) – Optional values for formula parameters.
- Returns:
Array of cumulative probability values.
- Return type:
np.ndarray
- classmethod from_json(s: str | dict | None) Distribution | None
Deserialize a distribution from JSON format.
- Parameters:
s (Optional[Union[str, dict]]) – JSON string or dict representation.
- Returns:
The deserialized distribution, or None if input is None.
- Return type:
Optional[Distribution]
- Raises:
KeyError – If ‘type’ field is missing or contains an invalid distribution type.
- prob(v: float, dependency_values: dict[str, float] = None) float
Get the probability density/mass at a specific value.
- Parameters:
v (float) – The value to evaluate.
dependency_values (dict[str, float]) – Optional values for formula parameters.
- Returns:
The probability density or mass.
- Return type:
float
- probs(values: list[float] | numpy.array, dependency_values: dict[str, float] = None) numpy.ndarray
Get probabilities for multiple values.
- Parameters:
values (Union[list[float], np.array]) – Array of values to evaluate.
dependency_values (dict[str, float]) – Optional values for formula parameters.
- Returns:
Array of probability values.
- Return type:
np.ndarray
- to_json() str
Serialize the distribution to JSON format.
- Returns:
JSON string representation of the distribution and its parameters.
- Return type:
str
- FORMULA_ATTRS: set[str]
- TYPE: str = 'Distribution'
- class mbdlyb.distributions.NormalDistribution(loc: mbdlyb.formulae.T_FORMULA = None, scale: mbdlyb.formulae.T_FORMULA = None)
Bases:
ContinuousDistributionNormal (Gaussian) probability distribution.
Models continuous random variables with the normal distribution specified by mean (loc) and standard deviation (scale) parameters. Both parameters can be formulas dependent on other model variables.
- Variables:
- FORMULA_ATTRS
- TYPE = 'Normal'
- scale: mbdlyb.formulae.Formula
- class mbdlyb.distributions.UniformDistribution(loc: mbdlyb.formulae.T_FORMULA = None, scale: mbdlyb.formulae.T_FORMULA = None)
Bases:
ContinuousDistributionContinuous uniform probability distribution.
Models continuous random variables uniformly distributed over an interval. All values within the interval are equally likely.
- FORMULA_ATTRS
- TYPE = 'Uniform'
- scale: mbdlyb.formulae.Formula