Bayesian hierarchical synthesis of incubation period distributions from individual-level data and published summary statistics.
The incubation period -- the interval between pathogen exposure and symptom onset -- is a critical parameter for quarantine policy and outbreak response, yet individual-level exposure data remain scarce in the published literature. For most pathogens, only summary statistics are available, and restricting inference to individual-level data alone would leave too few datasets for reliable between-study heterogeneity estimation.
ddsynth introduces a Bayesian hierarchical framework that jointly models individual-level observations and published summary statistics under a unified federated analysis approach. Key features:
- Accurately recovers incubation period distributions across a range of data availability scenarios
- Outperforms approaches that use summary data alone
- Quantifies between-study heterogeneity, including by outbreak country, pathogen variant, and exposure pathway
- Covers 18 pathogens with outbreak potential, spanning six pathogen groups
The package includes a curated dataset of incubation period studies spanning outbreaks worldwide:
Datasets cover six pathogen groups:
R (≥ 4.0.0) is required. Download it from CRAN.
Several functions in this package use Stan via the rstan package. Stan requires a working C++ toolchain:
- Windows: Install Rtools and follow the RStan Getting Started guide.
- macOS: Install the Xcode Command Line Tools (
xcode-select --install) and follow the RStan Getting Started guide. - Linux: Ensure
g++andmakeare available (e.g.sudo apt install build-essentialon Debian/Ubuntu), then install rstan normally.
Install rstan from CRAN once the toolchain is ready:
install.packages("rstan")Verify the installation works by running the built-in example:
example(stan_model, package = "rstan", run.dontrun = TRUE)Install the development version of ddsynth directly from GitHub using either remotes or pak:
# Using remotes (install remotes first if needed)
install.packages("remotes")
remotes::install_github("cm401/ddsynth")
# Alternatively, using pak
install.packages("pak")
pak::pkg_install("cm401/ddsynth")library(ddsynth)See the package vignettes for detailed usage examples:
browseVignettes("ddsynth")
