NIMBLE version 1.2.0 released

6 views
Skip to first unread message

Chris Paciorek

unread,
Jun 14, 2024, 11:35:20 AM6/14/24
to nimble-users, nimble-...@googlegroups.com
We're pleased to announce the release of version 1.2.0. This release provides provides extensive new functionality, including:

  • A Pólya-gamma sampler, `sampler_polyagamma`, for conjugate sampling of linear predictor parameters in logistic regression model specifications, including handling zero inflation and stochastic design matrices. This sampler must be added to an MCMC configuration manually.
  • A new sampler, `sampler_noncentered`, which samples the mean or standard deviation of a set of random effect values in a transformed space such that the random effects are deterministically shifted or scaled given new values of their hyperparameters. For random effects written in a centered parameterization, sampling is performed as if they had been written in a noncentered parameterization, thereby enabling a variant on the Yu and Meng (2011) interweaving sampling strategy of sampling in both parameterizations.This sampler must be added to an MCMC configuration manually.
  • Adaptive Gauss-Hermite quadrature (AGHQ) for integrating over continuous latent effects, as an extension of NIMBLE's Laplace approximation functionality. We also add user-friendly R functions, `runLaplace` and `runAGHQ`, for using Laplace and AGHQ approximation for maximum likelihood estimation.
  • A more flexible optimization system via `nimOptim`, with support for `nlminb` built in as well as the capability for users to provide potentially arbitrary optimization functions in R.
  • Allowing the use of nimbleFunctions with setup code in models, either for user-defined functions via `<-` or for user-defined distributions via `~`. This supports holding large objects outside of model nodes for use in models.
  • A completely revamped MCEM algorithm, using automatic derivatives in the maximization when possible, fixing a bug so that any parts of the model not connected to the latent states are included in MLE calculations, giving greater control and adding minor extensions to the ascent-based MCEM approach, and converting buildMCEM to be a nimbleFunction rather than an R function.

In addition to the new functionality above, other enhancements and bug fixes include:

  • Improving the speed of MCMC and MCMC building in certain cases.
  • Adding an argument to `buildMCMC` controlling whether to initialize values in the model.
  • Providing the ability to control the number of digits printed in C++ output.
  • Allowing use of a categorical MCMC sampler with user-specified `dcat`-like distributions.
  • Warning of use of backward indexing in models.
  • Improve documentation of the LKJ distribution and of advanced aspects of writing code for derivative tracking using the AD system.
  • Fixing an insufficient check for conjugacy in stick-breaking specifications of Bayesian nonparametric distributions.
  • Fixing compilation failures occurring on Red Hat Linux.
  • Reenabling functionality for user-provided Eigen library and related updates to the autoconf configuration used in package building.
  • Enhancing functionality to support model macros, which will be fully released and documented in the future.
  • Removing deprecated `is.na.vec` and `is.nan.vec`.
  • Improving some warnings and error messages.
Please see the NEWS file in the installed package for more details.

- Chris Paciorek for the NIMBLE Development Team
Reply all
Reply to author
Forward
0 new messages