Creating and manipulating objects
- Creating Bayesian network structures
- Creating an empty network
- Creating a saturated network
- Creating a network structure
- With a specific arc set
- With a specific adjacency matrix
- With a specific model formula
- Creating one or more random network structures
- With a specified node ordering
- Sampling from the space of connected directed acyclic graphs with uniform probability
- Sampling from the space of the directed acyclic graphs with uniform probability
- Creating custom fitted Bayesian networks
- Creating custom fitted Bayesian networks using expert knowledge
- Discrete networks
- Continuous networks
- Hybrid networks (mixed continuous and discrete nodes)
- Creating custom fitted Bayesian networks using both data and expert knowledge
- Creating custom fitted Bayesian networks using expert knowledge
- Manipulating the nodes of a network structure
- Adding and removing nodes
- Renaming nodes
Structure learning
- Score functions: computing & comparing
- Loading the reference data sets
- Computing a network score
- Testing score equivalence
- Conditional independence tests
- Parametric tests
- Semiparametric Monte Carlo tests
- Monte Carlo permutation tests
- Whitelists and blacklists in structure learning
- Constraint-based structure learning algorithms
- Score-based structure learning algorithms
- Local search learning algorithms
- Hybrid structure learning algorithms
- Utilities to construct blacklists
- Constructing a blacklist from a topological ordering
- Constructing a blacklist from a partial ordering
- Constructing a blacklist to ensure a subset of nodes are disconnected from each other
- Using custom scores in structure learning
- Replicating an existing score
- Instrumenting network scores to debug them
- Extending existing network scores
- Implementing new network scores
- Mixed-Effects models as local distributions
- Additive Bayesian networks
- The oracle score
- Using custom tests in structure learning
- Replicating an existing test
- Instrumenting tests to debug them
- Extending existing conditional independence tests
- Implementing new conditional independence tests
- Ordinal logistic regressions as local distributions
- The oracle test
Parameter learning
- Fitting the parameters of a Bayesian network
- Learning the network structure
- Setting the direction of undirected arcs
- Fitting the parameters (Maximum Likelihood estimates)
- Discrete data
- Continuous data
- Hybrid data (mixed discrete and continuous)
- Fitting the parameters (Bayesian Posterior estimates)
- Discrete data
- Fitting the parameters (Expectation-Maximization estimates)
Model validation
- Comparing Bayesian network structures
- Summaries
- Structural distances
- Visual comparisons
- Bootstrap-based inference
- The general case
- Measuring arc strength
- Bayesian networks and cross-validation
- Choosing a Bayesian network learning strategy
- k-fold cross-validation
- Custom folds in cross-validation
- Hold-out cross-validation
- Comparing different network structures
- Cross-validation and predictive error
- Cross-validation and predictive correlation
- Choosing a Bayesian network learning strategy
- Entropy and Kullback-Leibler divergence
Inference
- Computing the log-likelihood of data for a Bayesian network
- Predicting new observations from a Bayesian network
- Predicting from the parents
- Predicting with Monte Carlo posterior inference
- Predicting with exact inference
- Predictions in Bayesian network classifiers
- Approximate Monte Carlo inference
- Evaluating conditional probability queries
- Sampling from conditional probability distributions
- Likelihood weighting
- Bayesian network classifiers
- Structure learning
- Parameter learning
- Prediction
Plotting
- Plotting networks with the Rgraphviz package
- Options directly exposed from Rgraphviz
- Highlighting nodes and arcs
- Refining a plot using Rgraphviz functions
- Plotting networks left-to-right instead of top-to-bottom
- Plotting arc strengths with Rgraphviz and lattice
- Plotting the distribution of arc strengths
- Plotting the network structure together with the arc strengths
- Plotting networks and marginal distributions with the Rgraphviz package
- Discrete networks
- Continuous networks
- Hybrid networks
Handling of missing data
- Preprocessing data with missing values
- Discretizing data
- Removing highly-correlated variables
- Imputing missing values from a Bayesian network
- Imputing from the parents
- Imputing with Monte Carlo posterior inference
- Imputing with exact inference
- Local discovery algorithms for structure learning from data with missing values
- Constraint-based structure learning from data with missing values
- Score-based structure learning from data with missing values
- The Structural Expectation-Maximization (Structural EM) algorithm
- With partially observed variables
- With completely unobserved (latent) variables
- The Node-Average Likelihood
- The Structural Expectation-Maximization (Structural EM) algorithm
- Parameter learning from data with missing values
- Parameter estimators for complete data
- The Expectation-Maximization (EM) algorithm
- Bootstrap and cross-validation from data with missing values
- Log-likelihood of data with missing values
- Predicting from incomplete data
Interfacing with other R packages
- Interfacing with the deal R package
- Exporting a network structure to deal
- Importing a network structure from deal
- Interfacing with the pcalg R package
- Exporting a network structure to pcalg
- Importing a network structure from pcalg
- Interfacing with the parallel R package
- Parallel structure learning
- Parallel parameter learning
- Parallel cross-validation
- Parallel bootstrap
- Parallel approximate inference
- Interfacing with the graph R package
- Exporting a network structure to graph
- Importing a network structure from graph
- Interfacing with the igraph R package
- Exporting a network structure to igraph
- Importing a network structure from igraph
- Interfacing with the gRain R package
- Exporting a fitted Bayesian network to gRain
- Importing a fitted Bayesian network from gRain
Interfacing with other software packages
Extended examples
- bnlearn: Practical Bayesian Networks in R (Tutorial at the useR! conference in Toulouse, 2019)
- A Quick introduction
- Bayesian networks
- Definitions
- Learning
- Inference
- The bnlearn package
- Bayesian networks
- A Bayesian network analysis of malocclusion data
- The data
- Preprocessing and exploratory data analysis
- Model #1: a static Bayesian network as a difference model
- Learning the Bayesian network
- Learning the structure
- Learning the parameters
- Model validation
- Predictive accuracy
- Confirming with expert knowledge
- Learning the Bayesian network
- Model #2: a dynamic Bayesian network
- Learning the structure
- Model averaging in structure learning
- Learning the parameters
- Model validation and inference
- A Quick introduction
- bnlearn: Learning Bayesian Networks from Incomplete Data (Advanced Data Science I course, Osaka University, 2023)
- A Quick introduction
- Bayesian networks
- Definitions
- Learning
- Inference
- Equivalence classes
- Causal interpretation of BNs
- Missing data
- Bayesian networks
- Bayesian networks for missing data
- Parameter learning
- Using locally-complete data
- The Expectation-Maximisation algorithm
- Structure learning
- Using locally-complete data
- The Expectation-Maximisation algorithm
- The PC algorithm
- Inference
- Imputation
- Prediction
- Parameter learning
- A Quick introduction