  Time series models are ubiquitous in science, arising in any situation where
researchers seek to understand how a system's behaviour changes over time. A
key problem in time series modelling is \emph{inference}; determining
properties of the underlying system based on observed time series. For both
statistical and mechanistic models, inference involves finding parameter
values, or distributions of parameters values, for which model outputs are
consistent with observations. A wide variety of inference techniques are
available and different approaches are suitable for different classes of
problems. This variety presents a challenge for researchers, who may not have
the resources or expertise to implement and experiment with these methods.
PINTS (Probabilistic Inference on Noisy Time Series -
https://github.com/pints-team/pints is an open-source (BSD 3-clause license)
Python library that provides researchers with a broad suite of non-linear
optimisation and sampling methods. It allows users to wrap a model and data in
a transparent and straightforward interface, which can then be used with custom
or pre-defined error measures for optimisation, or with likelihood functions
for Bayesian inference or maximum-likelihood estimation. Derivative-free
optimisation algorithms - which work without harder-to-obtain gradient
information - are included, as well as inference algorithms such as adaptive
Markov chain Monte Carlo and nested sampling which estimate distributions over
parameter values. By making these statistical techniques available in an open
and easy-to-use framework, PINTS brings the power of modern statistical
techniques to a wider scientific audience.
