Version 1.3.0 of NIMBLE released

We’ve released the newest version of NIMBLE on CRAN and on our website. NIMBLE is a system for building and sharing analysis methods for statistical models, especially for hierarchical models and computationally-intensive methods (such as MCMC, Laplace approximation, and SMC).

Version 1.3.0 provides some new and improved functionality, plus some bug fixes and improved error trapping.

The new and improved functionality includes:

  • A new multivariate sampler, the Barker proposal sampler (sampler_barker). We encourage users to try this sampler in place of the block Metropolis RW_block sampler and let us know how well it works. The Barker sampler uses gradient information and may improve adaptation behavior, including
    better mixing when parameters are on different scales or the initialproposal scale is too large.
  • An improved Laplace/AGHQ implementation that includes use of the nlminb optimizer for both inner and outer optimization (for better optimization performance), improved messaging and output naming, returning the log-likelihood and degrees of freedom for model selection calculations, and unified control of optimization method and other controls at either the build stage or through the updateSettings method.
  • The addition of the BOBYQA optimization method through nimOptim, registered via nimOptimMethod.

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

  • Preventing the use of nimbleFunction method names and nimbleFunction names that conflict with names in the nimble language (DSL).
  • More carefully checking for and warning of cases of NaN and non-finite log probability values in various samplers that in some cases may indicate invalid MCMC sampling.
  • More carefully handling of NaN and non-finite log probability values in the CRP sampler.
  • Error trapping cases of dynamic indices producing a non-scalar result in AD-enabled models and provide a suggested work-around.
  • Error trapping use of a non-existent nimbleList.
  • Preventing use of a single seed when running multiple chains via runMCMC.
  • Improving messaging related to lack of derivative support for functions.
  • Adding information about model macros to the manual.
  • Fixing bug in caching values in the CRP sampler when maximum number of clusters is exceeded, which would have caused incorrect sampling (albeit with the user having been warned that they should increase the maximum number of clusters).
  • Fixing an issue preventing use of nimbleList elements in nimCat.
  • Preventing an adaptation interval of one for various block samplers for which an interval of one leads to an error.
  • Allowing runLaplace to use an uncompiled Laplace object.

Please see the release notes on our website for more details.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.