Introduction
EnhancedBayesianNetworks.jl is a Julia package for building, reducing, and querying enhanced Bayesian Networks (eBNs) [1]: Bayesian Networks (BNs) enhanced with Structural Reliability Methods for including discrete nodes, continuous nodes and functional nodes in the same framework.
On top of this the package allows for including imprecision [2] — interval and probability boxes (p-box) [3] — carried consistently from the inputs through to the inference result.
Why enhanced Bayesian Networks
A classical BN [4] is a directed acyclic graph of discrete random variables, each with a Conditional Probability Table (CPT) given its parents. That is expressive for categorical reasoning, but engineering models rarely stop there: quantities are continuous, uncertainties and imprecision are involved and the probabilities that matter, such as component's failure probability, are not tabulated in advance but computed from a physical models.
An eBN closes that gap by admitting three kinds of node side by side:
Continuous nodes, whose CPT is known a priori;
Continuous nodes, holding probability distributions;
Nodes with an a-priori-unknown CPT (functional nodes), whose conditional table is not given but derived from the parents through one or more UncertaintyQuantification.jl [5] models, evaluated as structural reliability problems.
See the Nodes chapter for the full taxonomy.
The system probability distribution
Notation
Throughout the manual,
A BN encodes a joint distribution that factorizes over the graph. By the local Markov property each variable is conditionally independent of its non-descendants given its parents, so the joint distribution of
where
An eBN keeps this factorized structure but admits both a set of discrete nodes
where the
Precision and imprecision
Every quantity in the model may be precise or imprecise. A discrete CPT entry can be a single probability or an interval; a continuous node can hold an ordinary univariate distribution or a probability box or an interval [3]. Imprecision expresses epistemic uncertainty, what is not known well enough to pin down a single number [2] or a single univariate distribution, and it decides the kind of network you end up with: any surviving imprecision turns a BN into a Credal Network (CN) [6], a whole convex family of BNs rather than a single one.
From model to answer
Because a functional or continuous node cannot be queried directly, an eBN is first reduced to a purely discrete nodes network: its continuous nodes are discretized and its functional nodes are evaluated as reliability problems, yielding a BN when everything stays precise or a CN when imprecision survives. This reduction is the core operation of the library (see Reduction & Structural Reliability Problem).
The reduced network is then ready for inference: exact posteriors by variable elimination for a BN, or lower/upper posterior bounds for a CN (seeInference).
The package also supports learning CPTs from data (Parameter Learning) and drawing the network structure (Plotting).
How this manual is organized
Getting Started: install the package and run a first model.
Nodes: the building blocks: discrete, continuous, and functional nodes.
Networks: Bayesian, credal, and enhanced Bayesian Networks.
Reduction & Structural Reliability Problem: reducing an eBN, and imprecise reliability.
Inference: variable elimination and credal inference.
Parameter Learning: learning CPTs from data.
Plotting: visualizing a network.
The package builds directly on UncertaintyQuantification.jl [5], whose UQModel, Parameter, RandomVariable, Interval, ProbabilityBox types (and its simulation methods), and simulation techniques (e.g. Monte Carlo, Advanced Monte Carlo, Double Loop, Random Slicing ...) are re-exported and used throughout.