commit 4252def31d7e35fd56c588e3bbf008aff5edaf96
parent 83e8dfa11786e7b8bcdc458509e0de719da74604
Author: Jared Tobin <jared@jtobin.ca>
Date: Tue, 6 Oct 2015 20:49:58 +1300
1.0.0 Update.
Diffstat:
3 files changed, 59 insertions(+), 6 deletions(-)
diff --git a/README.md b/README.md
@@ -0,0 +1,39 @@
+# mcmc-types [![Build Status](https://secure.travis-ci.org/jtobin/mcmc-types.png)](http://travis-ci.org/jtobin/mcmc-types)
+
+Markov Chain Monte Carlo (MCMC) algorithms are useful for approximating
+integrals in Bayesian statistics.
+
+Typically one wants to integrate (something proportional to) a probability
+density over some state space corresponding to a model's parameters. Coming up
+with a suitable grid of points when approximating an integral can be hard, but
+using a Markov chain to do the dirty work offloads the problem to probability
+theory.
+
+The idea is that the Markov chain wanders around the state space such that, in
+the limit, it visits regions of the space in proportion to their probability.
+The points that it visits can then be used to approximate integrals. This is
+usually preferable to stateless Monte Carlo methods like rejection or
+importance sampling when the number of dimensions is high.
+
+An instance of an MCMC problem can be characterized by the following types:
+
+* A *target distribution* over some parameter space
+* A *parameter space* for the chain to wander over
+* A *transition operator* to drive the Markov chain
+
+The *mcmc-types* library provides generic definitions for each of these.
+
+`Target` is a product type intended to hold a log-target density function and
+potentially its gradient.
+
+The `Chain` type represents a kind of 'annotated' parameter space. Technically
+all that's required is the type of the parameter space itself (held here in
+`chainPosition`) but in practice some additional information is typically
+useful.
+
+The `Transition` type permits probabilistic transitions over some state space
+by way of the underlying `Prob` monad.
+
+See e.g. the [mighty-metropolis](http://github.com/jtobin/mighty-metropolis)
+library for example use.
+
diff --git a/mcmc-types.cabal b/mcmc-types.cabal
@@ -1,7 +1,6 @@
name: mcmc-types
-version: 0.2.0.0
+version: 1.0.0
synopsis: Common types for sampling.
-description: Common types for sampling.
homepage: http://github.com/jtobin/mcmc-types
license: MIT
license-file: LICENSE
@@ -9,13 +8,28 @@ author: Jared Tobin
maintainer: jared@jtobin.ca
build-type: Simple
cabal-version: >= 1.18
+description:
+ Common types for implementing Markov Chain Monte Carlo (MCMC) algorithms.
+
+ An instance of an MCMC problem can be characterized by the following:
+
+ * A /target distribution/ over some parameter space
+ * A /parameter space/ for a Markov chain to wander over
+ * A /transition operator/ to drive the Markov chain
+
+ /mcmc-types/ provides the suitably-general 'Target', 'Chain', and
+ 'Transition' types for representing these things respectively.
+
+Source-repository head
+ Type: git
+ Location: http://github.com/jtobin/mcmc-types.git
library
exposed-modules: Data.Sampling.Types
default-language: Haskell2010
build-depends:
- base
+ base < 5
, containers
- , mwc-probability
+ , mwc-probability >= 1.0.0
, transformers
diff --git a/stack.yaml b/stack.yaml
@@ -1,6 +1,6 @@
flags: {}
packages:
- '.'
- - ../mwc-probability
-extra-deps: []
+extra-deps:
+ - mwc-probability-1.0.0
resolver: lts-3.3