An implementation of Bayesian Adaptive Regression Splines (BARS) in C with S and R wrappers

Garrick Wallstrom, Jeffrey Liebner, Robert E. Kass

Research output: Contribution to journalArticle

24 Scopus citations

Abstract

BARS (DiMatteo, Genovese, and Kass 2001) uses the powerful reversible-jump MCMC engine to perform spline-based generalized nonparametric regression. It has been shown to work well in terms of having small mean-squared error in many examples (smaller than known competitors), as well as producing visually-appealing fits that are smooth (filtering out high-frequency noise) while adapting to sudden changes (retaining high-frequency signal). However, BARS is computationally intensive. The original implementation in S was too slow to be practical in certain situations, and was found to handle some data sets incorrectly. We have implemented BARS in C for the normal and Poisson cases, the latter being important in neurophysiological and other point-process applications. The C implementation includes all needed subroutines for fitting Poisson regression, manipulating B-splines (using code created by Bates and Venables), and finding starting values for Poisson regression (using code for density estimation created by Kooperberg). The code utilizes only freely-available external libraries (LAPACK and BLAS) and is otherwise self-contained. We have also provided wrappers so that BARS can be used easily within S or R.

Original languageEnglish (US)
Pages (from-to)1-21
Number of pages21
JournalJournal of Statistical Software
Volume26
Issue number1
DOIs
StatePublished - Jun 2008

Keywords

  • Curve-fitting
  • Free-knot splines
  • Nonparametric regression
  • Peri-stimulus time histogram
  • Poisson process

ASJC Scopus subject areas

  • Software
  • Statistics and Probability
  • Statistics, Probability and Uncertainty

Fingerprint Dive into the research topics of 'An implementation of Bayesian Adaptive Regression Splines (BARS) in C with S and R wrappers'. Together they form a unique fingerprint.

  • Cite this