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

[Skip to Readme]
Versions 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
Change log CHANGELOG
Dependencies base (>=4.8 && <6), mwc-random (>0.13 && <0.14), primitive (>=0.6 && <1.0), transformers (>=0.5 && <1.0) [details]
License MIT
Author Jared Tobin, Marco Zocca
Maintainer jared@jtobin.ca, zocca.marco gmail
Category Math
Home page http://github.com/jtobin/mwc-probability
Source repo head: git clone http://github.com/jtobin/mwc-probability.git
Uploaded by ocramz at Thu May 10 06:30:29 UTC 2018
Distributions LTSHaskell:2.0.3, NixOS:2.0.3, Stackage:2.0.3, openSUSE:2.0.2
Downloads 2429 total (45 in the last 30 days)
Rating (no votes yet) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2018-05-10 [all 1 reports]
Hackage Matrix CI

Modules

[Index]

Downloads

Maintainer's Corner

For package maintainers and hackage trustees


Readme for mwc-probability-2.0.3

[back to package description]

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