A Distribution is a data representation of a random variable's probability
structure. For example, in Data.Random.Distribution.Normal, the Normal
distribution is defined as:
data Normal a
= StdNormal
| Normal a aWhere the two parameters of the Normal data constructor are the mean and
standard deviation of the random variable, respectively. To make use of
the Normal type, one can convert it to an rvar and manipulate it or
sample it directly:
x <- sample (rvar (Normal 10 2))
x <- sample (Normal 10 2)A Distribution is typically more transparent than an RVar but less composable (precisely because of that transparency). There are several practical uses for types implementing Distribution:
Typically, a Distribution will expose several parameters of a standard mathematical model of a probability distribution, such as mean and std deviation for the normal distribution. Thus, they can be manipulated analytically using mathematical insights about the distributions they represent. For example, a collection of bernoulli variables could be simplified into a (hopefully) smaller collection of binomial variables.
Because they are generally just containers for parameters, they can be easily serialized to persistent storage or read from user-supplied configurations (eg, initialization data for a simulation).
If a type additionally implements the CDF subclass, which extends Distribution with a cumulative density function, an arbitrary random variable
xcan be tested against the distribution by testingfmap (cdf dist) xfor uniformity.
On the other hand, most Distributions will not be closed under all the same operations as RVar (which, being a monad, has a fully turing-complete internal computational model). The sum of two uniformly-distributed variables, for example, is not uniformly distributed. To support general composition, the Distribution class defines a function rvar to construct the more-abstract and more-composable RVar representation of a random variable.
Instances96Distribution, …
Distribution Beta DoubleDefined in random-fu-0.3.0.1 · Data.Random.Distribution.BetaDistribution Beta FloatDefined in random-fu-0.3.0.1 · Data.Random.Distribution.BetaDistribution Normal DoubleDefined in random-fu-0.3.0.1 · Data.Random.Distribution.NormalDistribution Normal FloatDefined in random-fu-0.3.0.1 · Data.Random.Distribution.NormalDistribution StdUniform Int16Defined in random-fu-0.3.0.1 · Data.Random.Distribution.UniformDistribution StdUniform Int32Defined in random-fu-0.3.0.1 · Data.Random.Distribution.UniformDistribution StdUniform Int64Defined in random-fu-0.3.0.1 · Data.Random.Distribution.UniformDistribution StdUniform Int8Defined in random-fu-0.3.0.1 · Data.Random.Distribution.UniformDistribution StdUniform Word16Defined in random-fu-0.3.0.1 · Data.Random.Distribution.UniformDistribution StdUniform Word32Defined in random-fu-0.3.0.1 · Data.Random.Distribution.UniformDistribution StdUniform Word64Defined in random-fu-0.3.0.1 · Data.Random.Distribution.UniformDistribution StdUniform Word8Defined in random-fu-0.3.0.1 · Data.Random.Distribution.UniformDistribution StdUniform BoolDefined in random-fu-0.3.0.1 · Data.Random.Distribution.UniformDistribution StdUniform CharDefined in random-fu-0.3.0.1 · Data.Random.Distribution.UniformDistribution StdUniform DoubleDefined in random-fu-0.3.0.1 · Data.Random.Distribution.UniformDistribution StdUniform FloatDefined in random-fu-0.3.0.1 · Data.Random.Distribution.UniformDistribution StdUniform IntDefined in random-fu-0.3.0.1 · Data.Random.Distribution.UniformDistribution StdUniform OrderingDefined in random-fu-0.3.0.1 · Data.Random.Distribution.UniformDistribution StdUniform WordDefined in random-fu-0.3.0.1 · Data.Random.Distribution.UniformDistribution StdUniform ()Defined in random-fu-0.3.0.1 · Data.Random.Distribution.UniformDistribution Uniform IntegerDefined in random-fu-0.3.0.1 · Data.Random.Distribution.UniformDistribution Uniform Int16Defined in random-fu-0.3.0.1 · Data.Random.Distribution.UniformDistribution Uniform Int32Defined in random-fu-0.3.0.1 · Data.Random.Distribution.UniformDistribution Uniform Int64Defined in random-fu-0.3.0.1 · Data.Random.Distribution.UniformDistribution Uniform Int8Defined in random-fu-0.3.0.1 · Data.Random.Distribution.UniformDistribution Uniform Word16Defined in random-fu-0.3.0.1 · Data.Random.Distribution.UniformDistribution Uniform Word32Defined in random-fu-0.3.0.1 · Data.Random.Distribution.UniformDistribution Uniform Word64Defined in random-fu-0.3.0.1 · Data.Random.Distribution.UniformDistribution Uniform Word8Defined in random-fu-0.3.0.1 · Data.Random.Distribution.UniformDistribution Uniform BoolDefined in random-fu-0.3.0.1 · Data.Random.Distribution.UniformDistribution Uniform CharDefined in random-fu-0.3.0.1 · Data.Random.Distribution.UniformDistribution Uniform DoubleDefined in random-fu-0.3.0.1 · Data.Random.Distribution.UniformDistribution Uniform FloatDefined in random-fu-0.3.0.1 · Data.Random.Distribution.UniformDistribution Uniform IntDefined in random-fu-0.3.0.1 · Data.Random.Distribution.UniformDistribution Uniform OrderingDefined in random-fu-0.3.0.1 · Data.Random.Distribution.UniformDistribution Uniform WordDefined in random-fu-0.3.0.1 · Data.Random.Distribution.UniformDistribution Uniform ()Defined in random-fu-0.3.0.1 · Data.Random.Distribution.Uniform(Floating a, Ord a, Distribution Normal a, Distribution StdUniform a) => Distribution Gamma aDefined in random-fu-0.3.0.1 · Data.Random.Distribution.Gamma(Floating a, Distribution Normal a, Distribution ChiSquare a) => Distribution T aDefined in random-fu-0.3.0.1 · Data.Random.Distribution.T(Floating a, Distribution StdUniform a) => Distribution Exponential aDefined in random-fu-0.3.0.1 · Data.Random.Distribution.Exponential(Floating a, Distribution StdUniform a) => Distribution Pareto aDefined in random-fu-0.3.0.1 · Data.Random.Distribution.Pareto(Floating a, Distribution StdUniform a) => Distribution StretchedExponential aDefined in random-fu-0.3.0.1 · Data.Random.Distribution.StretchedExponential(Floating a, Distribution StdUniform a) => Distribution Weibull aDefined in random-fu-0.3.0.1 · Data.Random.Distribution.Weibull(RealFloat a, Ord a, Distribution StdUniform a) => Distribution Triangular aDefined in random-fu-0.3.0.1 · Data.Random.Distribution.Triangular(RealFloat a, Distribution StdUniform a) => Distribution Rayleigh aDefined in random-fu-0.3.0.1 · Data.Random.Distribution.Rayleigh(Fractional t, Distribution Gamma t) => Distribution ChiSquare tDefined in random-fu-0.3.0.1 · Data.Random.Distribution.ChiSquare(Fractional a, Distribution Gamma a) => Distribution Dirichlet [a]Defined in random-fu-0.3.0.1 · Data.Random.Distribution.Dirichlet(Ord a, Fractional a, Distribution StdUniform a) => Distribution StdSimplex [a]Defined in random-fu-0.3.0.1 · Data.Random.Distribution.SimplexHasResolution r => Distribution StdUniform (Fixed r)Defined in random-fu-0.3.0.1 · Data.Random.Distribution.UniformHasResolution r => Distribution Uniform (Fixed r)Defined in random-fu-0.3.0.1 · Data.Random.Distribution.UniformDistribution (Bernoulli b) Bool => Distribution (Bernoulli b) IntegerDefined in random-fu-0.3.0.1 · Data.Random.Distribution.BernoulliDistribution (Bernoulli b) Bool => Distribution (Bernoulli b) Int16Defined in random-fu-0.3.0.1 · Data.Random.Distribution.BernoulliDistribution (Bernoulli b) Bool => Distribution (Bernoulli b) Int32Defined in random-fu-0.3.0.1 · Data.Random.Distribution.BernoulliDistribution (Bernoulli b) Bool => Distribution (Bernoulli b) Int64Defined in random-fu-0.3.0.1 · Data.Random.Distribution.BernoulliDistribution (Bernoulli b) Bool => Distribution (Bernoulli b) Int8Defined in random-fu-0.3.0.1 · Data.Random.Distribution.BernoulliDistribution (Bernoulli b) Bool => Distribution (Bernoulli b) Word16Defined in random-fu-0.3.0.1 · Data.Random.Distribution.BernoulliDistribution (Bernoulli b) Bool => Distribution (Bernoulli b) Word32Defined in random-fu-0.3.0.1 · Data.Random.Distribution.BernoulliDistribution (Bernoulli b) Bool => Distribution (Bernoulli b) Word64Defined in random-fu-0.3.0.1 · Data.Random.Distribution.BernoulliDistribution (Bernoulli b) Bool => Distribution (Bernoulli b) Word8Defined in random-fu-0.3.0.1 · Data.Random.Distribution.BernoulliDistribution (Bernoulli b) Bool => Distribution (Bernoulli b) DoubleDefined in random-fu-0.3.0.1 · Data.Random.Distribution.BernoulliDistribution (Bernoulli b) Bool => Distribution (Bernoulli b) FloatDefined in random-fu-0.3.0.1 · Data.Random.Distribution.BernoulliDistribution (Bernoulli b) Bool => Distribution (Bernoulli b) IntDefined in random-fu-0.3.0.1 · Data.Random.Distribution.BernoulliDistribution (Bernoulli b) Bool => Distribution (Bernoulli b) WordDefined in random-fu-0.3.0.1 · Data.Random.Distribution.BernoulliDistribution (Binomial b) Integer => Distribution (Binomial b) DoubleDefined in random-fu-0.3.0.1 · Data.Random.Distribution.BinomialDistribution (Binomial b) Integer => Distribution (Binomial b) FloatDefined in random-fu-0.3.0.1 · Data.Random.Distribution.BinomialDistribution (Poisson b) Integer => Distribution (Poisson b) DoubleDefined in random-fu-0.3.0.1 · Data.Random.Distribution.PoissonDistribution (Poisson b) Integer => Distribution (Poisson b) FloatDefined in random-fu-0.3.0.1 · Data.Random.Distribution.Poisson(Floating b, Ord b, Distribution Beta b, Distribution StdUniform b) => Distribution (Binomial b) IntegerDefined in random-fu-0.3.0.1 · Data.Random.Distribution.Binomial(Floating b, Ord b, Distribution Beta b, Distribution StdUniform b) => Distribution (Binomial b) Int16Defined in random-fu-0.3.0.1 · Data.Random.Distribution.Binomial(Floating b, Ord b, Distribution Beta b, Distribution StdUniform b) => Distribution (Binomial b) Int32Defined in random-fu-0.3.0.1 · Data.Random.Distribution.Binomial(Floating b, Ord b, Distribution Beta b, Distribution StdUniform b) => Distribution (Binomial b) Int64Defined in random-fu-0.3.0.1 · Data.Random.Distribution.Binomial(Floating b, Ord b, Distribution Beta b, Distribution StdUniform b) => Distribution (Binomial b) Int8Defined in random-fu-0.3.0.1 · Data.Random.Distribution.Binomial(Floating b, Ord b, Distribution Beta b, Distribution StdUniform b) => Distribution (Binomial b) Word16Defined in random-fu-0.3.0.1 · Data.Random.Distribution.Binomial(Floating b, Ord b, Distribution Beta b, Distribution StdUniform b) => Distribution (Binomial b) Word32Defined in random-fu-0.3.0.1 · Data.Random.Distribution.Binomial(Floating b, Ord b, Distribution Beta b, Distribution StdUniform b) => Distribution (Binomial b) Word64Defined in random-fu-0.3.0.1 · Data.Random.Distribution.Binomial(Floating b, Ord b, Distribution Beta b, Distribution StdUniform b) => Distribution (Binomial b) Word8Defined in random-fu-0.3.0.1 · Data.Random.Distribution.Binomial(Floating b, Ord b, Distribution Beta b, Distribution StdUniform b) => Distribution (Binomial b) IntDefined in random-fu-0.3.0.1 · Data.Random.Distribution.Binomial(Floating b, Ord b, Distribution Beta b, Distribution StdUniform b) => Distribution (Binomial b) WordDefined in random-fu-0.3.0.1 · Data.Random.Distribution.Binomial(RealFloat b, Distribution StdUniform b, Distribution (Erlang Integer) b, Distribution (Binomial b) Integer) => Distribution (Poisson b) IntegerDefined in random-fu-0.3.0.1 · Data.Random.Distribution.Poisson(RealFloat b, Distribution StdUniform b, Distribution (Erlang Int16) b, Distribution (Binomial b) Int16) => Distribution (Poisson b) Int16Defined in random-fu-0.3.0.1 · Data.Random.Distribution.Poisson(RealFloat b, Distribution StdUniform b, Distribution (Erlang Int32) b, Distribution (Binomial b) Int32) => Distribution (Poisson b) Int32Defined in random-fu-0.3.0.1 · Data.Random.Distribution.Poisson(RealFloat b, Distribution StdUniform b, Distribution (Erlang Int64) b, Distribution (Binomial b) Int64) => Distribution (Poisson b) Int64Defined in random-fu-0.3.0.1 · Data.Random.Distribution.Poisson(RealFloat b, Distribution StdUniform b, Distribution (Erlang Int8) b, Distribution (Binomial b) Int8) => Distribution (Poisson b) Int8Defined in random-fu-0.3.0.1 · Data.Random.Distribution.Poisson(RealFloat b, Distribution StdUniform b, Distribution (Erlang Word16) b, Distribution (Binomial b) Word16) => Distribution (Poisson b) Word16Defined in random-fu-0.3.0.1 · Data.Random.Distribution.Poisson(RealFloat b, Distribution StdUniform b, Distribution (Erlang Word32) b, Distribution (Binomial b) Word32) => Distribution (Poisson b) Word32Defined in random-fu-0.3.0.1 · Data.Random.Distribution.Poisson(RealFloat b, Distribution StdUniform b, Distribution (Erlang Word64) b, Distribution (Binomial b) Word64) => Distribution (Poisson b) Word64Defined in random-fu-0.3.0.1 · Data.Random.Distribution.Poisson(RealFloat b, Distribution StdUniform b, Distribution (Erlang Word8) b, Distribution (Binomial b) Word8) => Distribution (Poisson b) Word8Defined in random-fu-0.3.0.1 · Data.Random.Distribution.Poisson(RealFloat b, Distribution StdUniform b, Distribution (Erlang Int) b, Distribution (Binomial b) Int) => Distribution (Poisson b) IntDefined in random-fu-0.3.0.1 · Data.Random.Distribution.Poisson(RealFloat b, Distribution StdUniform b, Distribution (Erlang Word) b, Distribution (Binomial b) Word) => Distribution (Poisson b) WordDefined in random-fu-0.3.0.1 · Data.Random.Distribution.Poisson(Num t, Ord t, Vector v t) => Distribution (Ziggurat v) tDefined in random-fu-0.3.0.1 · Data.Random.Distribution.Ziggurat(Fractional b, Ord b, Distribution StdUniform b) => Distribution (Bernoulli b) BoolDefined in random-fu-0.3.0.1 · Data.Random.Distribution.Bernoulli(Fractional p, Ord p, Distribution Uniform p) => Distribution (Categorical p) aDefined in random-fu-0.3.0.1 · Data.Random.Distribution.Categorical(Integral a, Floating b, Ord b, Distribution Normal b, Distribution StdUniform b) => Distribution (Erlang a) bDefined in random-fu-0.3.0.1 · Data.Random.Distribution.Gamma(Num a, Eq a, Fractional p, Distribution (Binomial p) a) => Distribution (Multinomial p) [a]Defined in random-fu-0.3.0.1 · Data.Random.Distribution.Multinomial(Distribution (Bernoulli b) Bool, RealFloat a) => Distribution (Bernoulli b) (Complex a)Defined in random-fu-0.3.0.1 · Data.Random.Distribution.Bernoulli(Distribution (Bernoulli b) Bool, Integral a) => Distribution (Bernoulli b) (Ratio a)Defined in random-fu-0.3.0.1 · Data.Random.Distribution.Bernoulli