Legend:
Library
Module
Module type
Parameter
Class
Class type

The `prbnmcn-stats` statistical library.

## Introduction

`prbnmcn-stats` (`stats` for short) was designed to construct simple probabilistic models and compute basic statistics over empirical data obtained from various experiments.

The core data type is that of a probability distribution. Distributions come under various guises.

• Empirical distributions are the typical outcome of performing a bunch of measurements or experiments, concretely they are nothing more than a collection of data. The empirical mean, empirical variance and quantiles are typical statistics that can be computed on empirical distributions.
• Generative distributions a.k.a. samplers are used when constructing probabilistic models, they are typically used to generate synthetic data.
• Measures are the mathematical representation of a distribution, associating weights to (sets of) data. This is the form we use to compute statistics such as the mean, the variance, etc of a distribution. Typically, we manipulate only finitely supported measures.

`stats` provides modules dedicated for each case, and maps between the various forms under which probability distributions appear.

`module Stats_intf : sig ... end`

Type signatures.

`module Fin : sig ... end`

Finite measures implemented as finitely supported functions.

`module Emp : sig ... end`

Empirical distributions.

`module Gen : sig ... end`

Generative distributions.

`module Pdfs : sig ... end`

Probability density functions.

`module Combi : sig ... end`

Simple combinatorics.

`module Mh : sig ... end`

Metropolis-Hastings MCMC

`module Finbij : sig ... end`

Bijections between finite sets and `{0; ...; n-1}`.

`module Graph : sig ... end`

Basic statistics on graphs (experimental)

`module Log_space : sig ... end`

Log-space computation

`module Binning : sig ... end`

Binning finitely supported distributions

`module Specfun : sig ... end`
`module Int_table : sig ... end`
`module String_table : sig ... end`
`module Float_table : sig ... end`
`val int_table : (module Hashtbl.S with type key = int)`
`val string_table : (module Hashtbl.S with type key = string)`
`val float_table : (module Hashtbl.S with type key = float)`