MyNixOS website logo
Description

An Implementation of Sensitivity Analysis in Bayesian Networks.

An implementation of sensitivity and robustness methods in Bayesian networks in R. It includes methods to perform parameter variations via a variety of co-variation schemes, to compute sensitivity functions and to quantify the dissimilarity of two Bayesian networks via distances and divergences. It further includes diagnostic methods to assess the goodness of fit of a Bayesian networks to data, including global, node and parent-child monitors. Reference: M. Leonelli, R. Ramanathan, R.L. Wilkerson (2022) <doi:10.1016/j.knosys.2023.110882>.

bnmonitor

CRANstatus Last-commit Lifecycle:stable downloads total

bnmonitor is a package for sensitivity analysis and robustness in Bayesian networks (BNs). If you use the package in your work please consider citing it as

citation("bnmonitor")
#> To cite package 'bnmonitor' in publications use:
#> 
#>   Leonelli M, Ramanathan R, Wilkerson RL (2023). "Sensitivity and
#>   robustness analysis in Bayesian networks with the bnmonitor R
#>   package." _Knowledge-Based Systems_, *278*, 110882.
#>   doi:10.1016/j.knosys.2023.110882
#>   <https://doi.org/10.1016/j.knosys.2023.110882>.
#> 
#> A BibTeX entry for LaTeX users is
#> 
#>   @Article{,
#>     title = {Sensitivity and robustness analysis in {Bayesian} networks with the bnmonitor R package},
#>     author = {Manuele Leonelli and Ramsiya Ramanathan and Rachel L. Wilkerson},
#>     journal = {Knowledge-Based Systems},
#>     year = {2023},
#>     volume = {278},
#>     pages = {110882},
#>     doi = {10.1016/j.knosys.2023.110882},
#>   }

Installation

The package bnmonitor can be installed from CRAN using the command

install.packages("bnmonitor")

and loaded in R with

library(bnmonitor)
#> Warning: package 'bnmonitor' was built under R version 4.3.3

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 the following main areas:

  • Parametric sensitivity analysis: Investigate the effect of changes in some of the parameter values in a Bayesian network and quantify the difference between the original and perturbed Bayesian networks using dissimilarity measures (both for discrete and Gaussian BNs).

  • Robustness to data: Verify how well a Bayesian network fits a specific dataset that was used either for learning or for testing (only for discrete BNs).

  • Node influence: Quantify how much the nodes of a Bayesian network influence an output node of interest (only for discrete BNs).

  • Edge strength: Assess the strength of the edges of a Bayesian network (only for discrete BNs).

  • Other investigations: Including the diameter of the conditional probability tables, measures of asymmetric independence, and level amalgamation.

Refer to the articles section for case studies showcasing the use of the bnmonitor functions.

Papers where bnmonitor is used

  • Görgen, C., & Leonelli, M. (2020). Model-preserving sensitivity analysis for families of Gaussian distributions. Journal of Machine Learning Research, 21(84), 1-32.

  • Leonelli, M., & Riccomagno, E. (2022). A geometric characterization of sensitivity analysis in monomial models. International Journal of Approximate Reasoning, 151, 64-84.

  • Leonelli, M., Ramanathan, R., & Wilkerson, R. L. (2023). Sensitivity and robustness analysis in Bayesian networks with the bnmonitor R package. Knowledge-Based Systems, 278, 110882.

  • Leonelli, M., Smith, J. Q., & Wright, S. K. (2024). The diameter of a stochastic matrix: A new measure for sensitivity analysis in Bayesian networks. arXiv preprint arXiv:2407.04667.

Metadata

Version

0.2.2

License

Unknown

Platforms (77)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-freebsd
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64-windows
  • aarch64_be-none
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-darwin
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-darwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-windows