## Creating and manipulating objects

- Creating Bayesian network structures
- Creating an empty 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

## 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

## Parameter learning

- Fitting Bayesian network's parameters
- 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

## 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

## Interfacing with other R Packages

- Interfacing with the
**deal**R package- Exporting a network structure to
**deal** - Importing a network structure from
**deal**

- Exporting a network structure to
- Interfacing with the
**pcalg**R package- Exporting a network structure to
**pcalg** - Importing a network structure from
**pcalg**

- Exporting a network structure to
- 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**

- Exporting a network structure to
- Interfacing with the
**igraph**R package- Exporting a network structure to
**igraph** - Importing a network structure from
**igraph**

- Exporting a network structure to
- Interfacing with the
**gRain**R package- Exporting a fitted Bayesian network to
**gRain** - Importing a fitted Bayesian network from
**gRain**

- Exporting a fitted Bayesian network to

## 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