Published by the Foundation for Open Access Statistics Editors-in-chief: Bettina Grün, Torsten Hothorn, Edzer Pebesma, Achim Zeileis    ISSN 1548-7660; CODEN JSSOBK
Authors: Garrick Wallstrom, Jeffrey Liebner, Robert E. Kass
Title: An Implementation of Bayesian Adaptive Regression Splines (BARS) in C with S and R Wrappers
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.

Page views:: 4508. Submitted: 2004-06-25. Published: 2008-06-25.
Paper: An Implementation of Bayesian Adaptive Regression Splines (BARS) in C with S and R Wrappers     Download PDF (Downloads: 4287)
barsN.tar.gz: barsN source code Download (Downloads: 1168; 80KB)
barsP.tar.gz: barsP source code Download (Downloads: 1125; 76KB)

DOI: 10.18637/jss.v026.i01

This work is licensed under the licenses
Paper: Creative Commons Attribution 3.0 Unported License
Code: GNU General Public License (at least one of version 2 or version 3) or a GPL-compatible license.