odin2 implements a high-level language for describing and implementing ordinary differential equations and difference equations in R. It provides a "domain specific language" (DSL) which looks like R but is compiled directly to C++, using dust2 to solve your system and to provide an interface to particle filters. You can then use monty to fit your models using MCMC.
The best place to start for most people is probably the odin & monty book which walks through odin and its context within a wider set of statistical packages.
The package also includes a number of vignettes and other documentation:
odin2
odin2 with dust2 and monty to fit models to dataodin version 1 before, see the migration guide to see what has changed.Because odin2 compiles to dust2, see its documentation and in particular the list of functions that you can use
Because odin2 is designed for use with monty, see its documentation, especially when fitting models to data or working with the random number generators for stochastic models.
The package is currently ready for use for adventurous users. It will eventually become odin and replace that version on CRAN (i.e., it will simply become version 2.0.0 of odin, and odin2 will cease to be a package name that you will see). It also replaces odin.dust. It exists separately for now to facilitate development and use alongside the original odin.
See this list of missing features from version 1 of odin before using.
Over the next few months we will be expanding the automatic differentiation support, generating code for other host languages and improving the ergonomics of the package.
Please install from our r-universe:
install.packages(
"odin2",
repos = c("https://mrc-ide.r-universe.dev", "https://cloud.r-project.org"))
If you prefer, you can install from GitHub with remotes:
remotes::install_github("mrc-ide/odin2", upgrade = FALSE)
MIT © Imperial College of Science, Technology and Medicine