bnmonitor is a package for sensitivity analysis and robustness in Bayesian networks (BNs).

Installation

The package bnmonitor can be installed from CRAN using the command

install.packages("bnmonitor")

and loaded in R with

library(bnmonitor)

Note that bnmonitor requires the package gRain which, while on CRAN, depends on packages that are on Bioconductor both directly and through the gRbase package, which depends on RBGL:

install.packages("BiocManager")
BiocManager::install(c("graph", "Rgraphviz", "RBGL"))
install.packages("gRain")

Overview

bnmonitor provides a suite of function to investigate either a data-learnt or an expert elicited BN. Its functions can be classified into three main areas:

• Robustness in discrete BNs: checking how well a BN represents a dataset;
• Sensitivity in discrete BNs: assessing the effect of changes in the discrete BN’s probabilities;
• Sensitivity in continuous BNs: assessing the effect of changes in the continuous BN’s probabilities, either in the standard or model-preserving framework

Refer to the articles section for guidance on each of these areas.

Papers where bnmonitor is used

• Görgen, Christiane, and Manuele Leonelli. “Model-Preserving Sensitivity Analysis for Families of Gaussian Distributions.” J. Mach. Learn. Res. 21 (2020): 84-1.

• Leonelli, Manuele, and Eva Riccomagno. “A geometric characterisation of sensitivity analysis in monomial models.” arXiv preprint arXiv:1901.02058 (2018).

• Leonelli, Manuele, Ramsiya Ramanathan, and Rachel L. Wilkerson. “Sensitivity and robustness analysis in Bayesian networks with the bnmonitor R package.” arXiv preprint arXiv:2107.11785 (2021).