Hi NIMBLE users,
I want to advertise the latest update to the nimbleEcology package. nimbleEcology is an auxiliary NIMBLE package that provides custom distribution functions for models that come up often in ecology: occupancy and dynamic occupancy (dOcc and dDynOcc), hidden Markov and dynamic hidden Markov models (dHMM and dDHMM), Cormack-Jolly-Seber capture-recapture models (dCJS), and N-mixture abundance models (dNmixture). In all cases, custom distributions marginalize over the model's latent states, which sometimes leads to big efficiency improvements in MCMC and also enables maximum likelihood estimation with nimbleModels.
In nimbleEcology 0.4.0, we add three variations of the N-mixture model. The standard version of the N-mixture model is a two-level hierarchical model where a latent state N, representing the true abundance at a site, is a Poisson random variable, and the observed count y is a binomial random variable with size N and probability p. We provide distributions for the cases where the Poisson is substituted for a negative binomial (dNmixture_BNB), the binomial is substituted for a beta binomial (dNmixture_BBP), or both (dNmixture_BBNB). These are sometimes used to represent overdispersion in the abundance or detection processes.
We implement the N-mixture variations with an algorithm that's considerably faster than the standard truncated summation method, which we hope will make it feasible to use beta binomial and negative binomial N-mixtures in large data contexts.
The 0.4.0 update also addresses an issue where rounding errors in C++ compiled code caused the hidden Markov models to fail the condition that the sum of the initial state probabilities was one.