Learn R Programming

bdlim

Overview

bdlim is an R package that implements Bayesian distributed lag interaction models (BDLIMs). This is a developmental package to replace code in regimes. I am currently testing the package and building additional functionality. Background on the model can be found in:

  • Wilson A, Chiu YM, Hsu HL, Wright RO, Wright RJ, Coull BA (2017). “Bayesian distributed lag interaction models to identify perinatal windows of vulnerability in children's health.” Biostatistics, 18(3), 537–552. (DOI: 10.1093/biostatistics/kxx002,

arXiv preprint)

In short, BDLIM estimated a distributed lag model (DLM) with modification by a single categorical variable. The categorical variable can be binary or more than two levels, but BDLIM is not advised when there are a large number of categories. If you are instead interested in a DLM with modification by a single continuous variable see the dlim package (see website here). If you are interested in distributed lag models with heterogeneity by with multiple modifiers see the heterogeneous distributed lag model in the dlmtree package.

This package includes several improvements over the previous software. Many of these improvements come from user feedback and more experiance applying the BDLIM to multiple datasets. These include:

  • Simpler syntax
  • Updated options with some no longer recommended hyperparameter settings no longer available
  • Faster with options for parallel implementation
  • Summary and plot functions that provide more intuitive results.

Installation

The package can be installed from CRAN with the following code.

install.packages("bdlim")

Alternatively, it can be installed from GitHub using the code below.

remotes::install_github("anderwilson/bdlim")

Use

A vignette can be accessed at anderwilson.github.io/bdlim/articles/bdlim.html.

The main function is bdlim4. See the help file for that function for a simple example. The summary and plot functions can be used to make inference on the results. Specifically:

  • The model probabilities from the summary or indicate which pattern of heterogeneity is best supported by the data.
  • Cumulative effect estimates are provided in the summary function output.
  • The plot function show estimated distributed lag functions for each group. This returns a ggplot object that can be modified. See the help file example for plot.summary.bdlim4 for an example that modifies the plot.
  • Estimates of the distributed lag functions are available in the summary object but are not printed in the console. See the help file for summary.bdlim4 for an example.

The example in the package do not use parallel implementation. If you have 4 cores available, try using the parallel=TRUE option.

Copy Link

Version

Install

install.packages('bdlim')

Monthly Downloads

172

Version

0.5.0

License

GPL (>= 3)

Issues

Pull Requests

Stars

Forks

Maintainer

Ander Wilson

Last Published

June 11th, 2025

Functions in bdlim (0.5.0)

summary.bdlim4

Summary for bdlim4
summary.bdlim1

Summary for bdlim1
sbd_bdlim

Simulated Birth Data
print.summary.bdlim4

Print Summary of bdlim4
bdlim1

Fit the BDLIM model with 1 pattern of modification
getw

Get weight function
bdlim4

Fit the BDLIM model with all 4 patterns of modification
modelcompare

Model comparison for bdlim objects
print.bdlim1

Print Results
makebasis

Make orthonomal basis for weight functions
plot.summary.bdlim1

Plot for Summary of BDLIM (summary.bdlim1 version)
bdlim1_logistic

Fit the BDLIM model with 1 pattern of modification with logistic regression
plot.summary.bdlim4

Plot for Summary of BDLIM
bdlim-package

bdlim: Bayesian Distributed Lag Interaction Models
print.bdlim4

Print Results