Multivariate Birth-Death Processes

Computationally efficient functions to provide direct likelihood-based inference for partially-observed multivariate birth-death processes. Such processes range from a simple Yule model to the complex susceptible-infectious-removed model in disease dynamics. Efficient likelihood evaluation facilitates maximum likelihood estimation and Bayesian inference.

MultiBD is an R package for direct likelihood-based inference of multivariate birth-death processes.

  1. Install (if necessary) package dependencies and helpers:
install.packages(c("Rcpp", "RcppParallel", "BH", "devtools"))
  1. Install MultiBD from github (until package becomes available via CRAN):

Short example

loglik_sir <- function(param, data) {
  alpha <- exp(param[1]) # Rates must be non-negative
  beta  <- exp(param[2])
  # Set-up SIR model
  drates1 <- function(a, b) { 0 }
  brates2 <- function(a, b) { 0 }
  drates2 <- function(a, b) { alpha * b     }
  trans12 <- function(a, b) { beta  * a * b }
  sum(sapply(1:(nrow(data) - 1), # Sum across all time steps k
             function(k) {
                 dbd_prob(  # Compute the transition probability matrix
                   t  = data$time[k + 1] - data$time[k], # Time increment
                   a0 = data$S[k], b0 = data$I[k],       # From: S(t_k), I(t_k)                                      
                   drates1, brates2, drates2, trans12,
                   a = data$S[k + 1], B = data$S[k] + data$I[k] - data$S[k + 1],
                   computeMode = 4, nblocks = 80         # Compute using 4 threads
                 )[1, data$I[k + 1] + 1]                 # To: S(t_(k+1)), I(t_(k+1))
loglik_sir(log(c(3.204, 0.019)), Eyam) # Evaluate at mode


  1. Simple MCMC under SIR
  2. SIR model and proposed branching approximation


MultiBD is licensed under Apache License 2.0

Development status

Build Status



  • This project is supported in part through the National Science Foundation grant DMS 1264153 and National Institutes of Health grant R01 AI107034.


  1. Ho LST, Xu J, Crawford FW, Minin VN, Suchard MA. Birth(death)/birth-death processes and their computable transition probabilities with statistical applications. arXiv preprint arXiv:1603.03819, 2016.


MultiBD v0.2 (Release date: 2016-07-19)

Changes: initial submission to CRAN

Reference manual

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


0.2.0 by Marc A. Suchard, 5 years ago

Browse source code at

Authors: Lam S.T. Ho [aut, cre] , Marc A. Suchard [aut] , Forrest W. Crawford [aut] , Jason Xu [ctb] , Vladimir N. Minin [ctb]

Documentation:   PDF Manual  

Apache License 2.0 license

Imports Rcpp, RcppParallel

Suggests testthat, knitr, rmarkdown, MCMCpack, ggplot2, matrixStats, plotrix

Linking to Rcpp, BH, RcppParallel

See at CRAN