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).
This release provides new functionality as well as various bug fixes and improved error trapping, including:
- Improving our automatic differentiation (AD) system so it can be used in a wider range of models, including models with stochastic indexing, discrete latent states, and CAR distributions. Support for AD for these models means that HMC sampling and Laplace approximation can be used.
- Allowing distributions and functions (whether user-defined or built-in) that lack AD support (such as
dinterval
,dconstraint
, and truncated distributions) to be used and compiled in AD-enabled models. The added flexibility increases the range of models in which one can use AD methods (HMC or Laplace) on some parts of a model and other samplers or methods on other parts. - Adding
nimIntegrate
to the NIMBLE language, providing one-dimensional numerical integration via adaptive quadrature, equivalent to R’sintegrate
. This can, for example, be used in a user-defined function or distribution for use in model code, such as to implement certain point process or survival models that involve a one-dimensional integral. - Adding a “prior samples” MCMC sampler, which uses an existing set of numerical samples to define the prior distribution of model node(s).
- Better support of the dCRP distribution in non-standard model structures.
- Adding error trapping to prevent accidental use of C++ keywords as model variable names.
- Removing the
RW_multinomial
MCMC sampler, which was found to generate incorrect posterior results (in cases when a latent state followed a multinomial distribution) - Fixing a bug in conjugacy checking in a case of subsets of multivariate nodes.
- Fixing
is.na
andis.nan
to operate in the expected vectorized fashion. - Improving documentation of AD, nimbleHMC, and nimbleSMC in the manual.
- Updating Eigen (the C++ linear algebra library used by nimble) to version 3.4.0.
Please see the release notes on our website for more details.