Welcome to the pints documentation

Pints is hosted on GitHub, where you can find downloads and installation instructions.

Detailed examples can also be found there.

This page provides the API, or developer documentation for pints.

Defining inference problems in PINTS

PINTS provides methods to sample distributions, implemented as a LogPDF, and to optimise functions, implemented as an ErrorMeasure or a LogPDF.

Users can define LogPDF or ErrorMeasure implementations directly, or they can use PINTS’ ForwardModel and problem classes to set up their problems, and then choose one of many predefined pdfs or errors.

PINTS defines single and multi-output problem classes that wrap around a model and data, and over which error measures or log-likelihoods can be defined.

To find the appropriate type of Problem to use, see the overview below:

  1. Systems with a single observable output

  2. Systems with multiple observable outputs

    • Single data set: Use a MultiOutputProblem and any of the appropriate error measures or log-likelihoods

Provided methods

PINTS contains different types of methods, that can be roughly arranged into the classification shown below.

Sampling

  1. MCMC without gradients, work on any LogPDF.

  2. First order sensitivity MCMC samplers, require a LogPDF that provides first order sensitivities.

  3. Nested sampling, require a LogLikelihood and a LogPrior that can be sampled from.

  4. ABC sampling, require a LogPrior that can be sampled from from and an ErrorMeasure.

Optimisation

  1. Particle, or population-based methods, work on any ErrorMeasure or LogPDF.

  2. General derivative-free methods

  3. Gradient-descent methods, require first order sensitivities

  4. General derivative-using methods

Contents