mcmc

Sample from a posterior using Markov chain Monte Carlo

https://github.com/dschrempf/mcmc#readme

Version on this page:0.3.0
LTS Haskell 22.17:0.8.2.0
Stackage Nightly 2024-04-17:0.8.2.0
Latest on Hackage:0.8.2.0

See all snapshots mcmc appears in

GPL-3.0-or-later licensed by Dominik Schrempf
Maintained by [email protected]
This version can be pinned in stack with:mcmc-0.3.0@sha256:1dbf56024e5d8c084a57a00449abc834cf8d67e12f7980a7c0ab47f83563b042,2447

Markov chain Monte Carlo

Sample from a posterior using Markov chain Monte Carlo methods.

At the moment, the library is tailored to the Metropolis-Hastings algorithm since it covers most use cases. More algorithms will be implemented soon.

Documentation

The source code contains detailed documentation about general concepts as well as specific functions.

Examples

Have a look at the example MCMC analyses. They can be built with Stack and are attached to this repository.

git clone https://github.com/dschrempf/mcmc.git
cd mcmc
stack build

For example, estimate the accuracy of an archer with

stack exec archery

Changes

Markov chain Monte Carlo sampling - ChangeLog

Unreleased changes

0.3.0

  • New shorter example/test for dating trees.
  • noData allows running a chain without likelihood function.
  • Give proposal parameters PName, PDescription, and PWeight newtype wrappers.
  • Give Tune a data type.
  • Allow periodical cleansing of state (Cleaner).
  • Add description string to proposals, so that they can be identified in an easier way.
  • Add simplices and proposals on simplices.
  • slideUniform renamed to slideUniformSymmetric.
  • Merge tools into internal.
  • Do not export internal modules.

0.2.4

  • Change order of arguments for proposals.
  • ‘slideStem’ was renamed to ‘slideBranch’.
  • Change ProposalSimple from newtype to type.
  • Contravariant instances of parameter and batch monitors. Use (>$<) instead of (@.) and (@#).
  • Add gammaDirichlet prior for partitioned dating analyses.

0.2.3

  • Contrary proposals.
  • Change how monitors are lifted (use normal function, not a lens).
  • Priors.
  • Remove concurrent monitors (was slow).
  • Improve MCMC sampler output.

0.2.2

  • Move away from hpack.

0.2.1

  • Consistently use ByteString instead of Text.
  • Verbosity levels.
  • Improved handling of proposals, moves, and monitors.
  • Bactrian moves.
  • Many small changes.

0.1.3

Many changes; notably it is now possible to continue a Markov chain run.