mwc-probability: Sampling function-based probability distributions.

[ library, math, mit ] [ Propose Tags ]

A simple probability distribution type, where distributions are characterized by sampling functions.

This implementation is a thin layer over mwc-random, which handles RNG state-passing automatically by using a PrimMonad like IO or ST s under the hood.

Examples

Transform a distribution's support while leaving its density structure invariant:

-- uniform over [0, 1] to uniform over [1, 2]
fmap succ uniform

Sequence distributions together using bind:

-- a beta-binomial compound distribution
beta 1 10 >>= binomial 10

Use do-notation to build complex joint distributions from composable, local conditionals:

hierarchicalModel = do
[c, d, e, f] <- replicateM 4 $uniformR (1, 10) a <- gamma c d b <- gamma e f p <- beta a b n <- uniformR (5, 10) binomial n p [Skip to Readme] Modules [Index] [Quick Jump] Downloads Maintainer's Corner Package maintainers For package maintainers and hackage trustees Candidates • No Candidates Versions [RSS] 1.0.0, 1.0.1, 1.0.2, 1.0.3, 1.1.3, 1.2.0, 1.2.1, 1.2.2, 1.3.0, 2.0.0, 2.0.1, 2.0.2, 2.0.3, 2.0.4, 2.1.0, 2.2.0, 2.3.0, 2.3.1 CHANGELOG base (>=4.8 && <6), containers (>=0.6), mwc-random (>0.13 && <0.16), primitive (>=0.6 && <1.0), transformers (>=0.5 && <1.0) [details] MIT Jared Tobin, Marco Zocca jared@jtobin.ca, zocca.marco gmail Math http://github.com/jtobin/mwc-probability head: git clone http://github.com/jtobin/mwc-probability.git by JaredTobin at 2020-07-31T20:18:50Z LTSHaskell:2.3.1, NixOS:2.3.1, Stackage:2.3.1 14 direct, 3 indirect [details] 11938 total (36 in the last 30 days) (no votes yet) [estimated by Bayesian average] λ λ λ Docs available Last success reported on 2020-07-31 Readme for mwc-probability-2.3.1 [back to package description] mwc-probability Sampling function-based probability distributions. A simple probability distribution type, where distributions are characterized by sampling functions. This implementation is a thin layer over mwc-random, which handles RNG state-passing automatically by using a PrimMonad like IO or ST s under the hood. Examples • Transform a distribution's support while leaving its density structure invariant: -- uniform over [0, 1] transformed to uniform over [1, 2] succ <$> uniform

• Sequence distributions together using bind:

-- a beta-binomial composite distribution
beta 1 10 >>= binomial 10

• Use do-notation to build complex joint distributions from composable, local conditionals:

hierarchicalModel = do
[c, d, e, f] <- replicateM 4 (uniformR (1, 10))
a <- gamma c d
b <- gamma e f
p <- beta a b
n <- uniformR (5, 10)
binomial n p


Check out the haddock-generated docs on Hackage for other examples.

Etc.

PRs and issues welcome.