Learning Sparse Bayesian Networks from High-Dimensional Data

Fast methods for learning sparse Bayesian networks from high-dimensional data using sparse regularization. Designed to incorporate mixed experimental and observational data with thousands of variables with either continuous or discrete observations.

Methods for learning sparse Bayesian networks and other graphical models from high-dimensional data via sparse regularization. Designed to handle:

  • Experimental data with interventions
  • Mixed observational / experimental data
  • High-dimensional data with p >> n
  • Datasets with thousands of variables (tested up to p=8000)
  • Continuous and discrete data

The workhorse behind sparsebn is the sparsebnUtils package, which provides various S3 classes and methods for representing and manipulating graphs. The basic algorithms are implemented in ccdrAlgorithm and discretecdAlgorithm.

The main methods for learning graphical models are:

  • estimate.dag for directed acyclic graphs (Bayesian networks).
  • estimate.precision for undirected graphs (Markov random fields).
  • estimate.covariance for covariance matrices.

Currently, estimation of precision and covariances matrices is limited to Gaussian data.

You can install:

  • the latest CRAN version with

  • the latest development version from GitHub with

    devtools::install_github(c("itsrainingdata/sparsebn/", "itsrainingdata/sparsebnUtils/dev", "itsrainingdata/ccdrAlgorithm/dev", "gujyjean/discretecdAlgorithm"))

[1] Aragam, B. and Zhou, Q. (2015). Concave penalized estimation of sparse Gaussian Bayesian networks. The Journal of Machine Learning Research. 16(Nov):2273−2328.

[2] Fu, F., Gu, J., and Zhou, Q. (2014). Adaptive penalized estimation of directed acyclic graphs from categorical data. arXiv: 1403.2310.

[3] Aragam, B., Amini, A. A., and Zhou, Q. (2015). Learning directed acyclic graphs with penalized neighbourhood regression. arXiv: 1511.08963.

[4] Fu, F. and Zhou, Q. (2013). Learning sparse causal Gaussian networks with experimental intervention: Regularization and coordinate descent. Journal of the American Statistical Association, 108: 288-300.


sparsebn 0.0.2

  • Added a NEWS.md file to track changes to the package
  • Added plotDAG to provide convenient default for plotting large graphs
  • estimate.dag now takes an optional logical argument adaptive: If TRUE, then an adaptive version of the CD algorithm will be run for discrete data. This argument is ignored for continuous data.
  • Vignette updated and re-written
  • Cytometry data has been fixed to correct some errors in the network structure; now correctly reflects the network learned in Sachs et al. (2005)

sparsebn 0.0.1

  • Initial stable release

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.


0.0.2 by Bryon Aragam, 3 months ago


Report a bug at https://github.com/itsrainingdata/sparsebn/issues

Browse source code at https://github.com/cran/sparsebn

Authors: Bryon Aragam [aut, cre]

Documentation:   PDF Manual  

GPL (>= 2) license

Depends on sparsebnUtils, ccdrAlgorithm, discretecdAlgorithm

Suggests knitr, rmarkdown, mvtnorm, igraph, graph, testthat

See at CRAN