mwc-probability

Sampling function-based probability distributions. http://github.com/jtobin/mwc-probability

Version on this page:1.3.0
LTS Haskell 11.10:2.0.3
Stackage Nightly 2018-05-23:2.0.3
Latest on Hackage:2.0.3

See all snapshots mwc-probability appears in

MIT licensed by Jared Tobin, Marco Zocca
Maintained by jared@jtobin.ca, zocca.marco gmail

Module documentation for 1.3.0

mwc-probability

Build Status Hackage Version MIT License

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

Changes

# Changelog

- 2.0.3 (2018-05-09)
* Add inverse Gaussian (Wald) distribution

- 2.0.2 (2018-01-30)
* Add negative binomial distribution

- 2.0.1 (2018-01-30)
* Add Normal-Gamma and Pareto distributions

- 2.0.0 (2018-01-29)
* Add Laplace and Zipf-Mandelbrot distribution
* Rename `isoGauss` to `isoNormal` and `standard` to `standardNormal` to uniform naming scheme
* Divide Haddock in sections

- 1.3.0 (2016-12-04)
* Generalize a couple of samplers to use Traversable rather than lists.


comments powered byDisqus