# 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]
succ <$> uniform Sequence distributions together using bind: -- a beta-binomial conjugate 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

Versions [faq] 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 CHANGELOG base (>=4.8 && <6), mwc-random (>0.13 && <0.14), 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 ocramz at Thu May 10 06:30:29 UTC 2018 LTSHaskell:2.0.4, NixOS:2.0.4, Stackage:2.0.4 3797 total (53 in the last 30 days) (no votes yet) [estimated by rule of succession] λ λ λ Docs available Last success reported on 2018-05-10

## Modules

[Index]

#### Maintainer's Corner

For package maintainers and hackage trustees

[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


## Included probability distributions

• Continuous

• Uniform
• Normal
• Log-Normal
• Exponential
• Inverse Gaussian
• Laplace
• Gamma
• Inverse Gamma
• Weibull
• Chi-squared
• Beta
• Student t
• Pareto
• Dirichlet process
• Symmetric Dirichlet process
• Discrete

• Discrete uniform
• Zipf-Mandelbrot
• Categorical
• Bernoulli
• Binomial
• Negative Binomial
• Multinomial
• Poisson