statistics-0.16.3.0: A library of statistical types, data, and functions
Copyright(c) 2009 Bryan O'Sullivan
LicenseBSD3
Maintainerbos@serpentine.com
Stabilityexperimental
Portabilityportable
Safe HaskellNone
LanguageHaskell2010

Statistics.Distribution

Description

Type classes for probability distributions

Synopsis

Type classes

class Distribution d where #

Type class common to all distributions. Only c.d.f. could be defined for both discrete and continuous distributions.

Minimal complete definition

(cumulative | complCumulative)

Methods

cumulative :: d -> Double -> Double #

Cumulative distribution function. The probability that a random variable X is less or equal than x, i.e. P(Xx). Cumulative should be defined for infinities as well:

cumulative d +∞ = 1
cumulative d -∞ = 0

complCumulative :: d -> Double -> Double #

One's complement of cumulative distribution:

complCumulative d x = 1 - cumulative d x

It's useful when one is interested in P(X>x) and expression on the right side begin to lose precision. This function have default implementation but implementors are encouraged to provide more precise implementation.

Instances

Instances details
Distribution BetaDistribution # 
Instance details

Defined in Statistics.Distribution.Beta

Distribution BinomialDistribution # 
Instance details

Defined in Statistics.Distribution.Binomial

Distribution CauchyDistribution # 
Instance details

Defined in Statistics.Distribution.CauchyLorentz

Distribution ChiSquared # 
Instance details

Defined in Statistics.Distribution.ChiSquared

Distribution DiscreteUniform # 
Instance details

Defined in Statistics.Distribution.DiscreteUniform

Distribution ExponentialDistribution # 
Instance details

Defined in Statistics.Distribution.Exponential

Distribution FDistribution # 
Instance details

Defined in Statistics.Distribution.FDistribution

Distribution GammaDistribution # 
Instance details

Defined in Statistics.Distribution.Gamma

Distribution GeometricDistribution # 
Instance details

Defined in Statistics.Distribution.Geometric

Distribution GeometricDistribution0 # 
Instance details

Defined in Statistics.Distribution.Geometric

Distribution HypergeometricDistribution # 
Instance details

Defined in Statistics.Distribution.Hypergeometric

Distribution LaplaceDistribution # 
Instance details

Defined in Statistics.Distribution.Laplace

Distribution LognormalDistribution # 
Instance details

Defined in Statistics.Distribution.Lognormal

Distribution NegativeBinomialDistribution # 
Instance details

Defined in Statistics.Distribution.NegativeBinomial

Distribution NormalDistribution # 
Instance details

Defined in Statistics.Distribution.Normal

Distribution PoissonDistribution # 
Instance details

Defined in Statistics.Distribution.Poisson

Distribution StudentT # 
Instance details

Defined in Statistics.Distribution.StudentT

Distribution UniformDistribution # 
Instance details

Defined in Statistics.Distribution.Uniform

Distribution WeibullDistribution # 
Instance details

Defined in Statistics.Distribution.Weibull

Distribution d => Distribution (LinearTransform d) # 
Instance details

Defined in Statistics.Distribution.Transform

class Distribution d => DiscreteDistr d where #

Discrete probability distribution.

Minimal complete definition

(probability | logProbability)

Methods

probability :: d -> Int -> Double #

Probability of n-th outcome.

logProbability :: d -> Int -> Double #

Logarithm of probability of n-th outcome

Instances

Instances details
DiscreteDistr BinomialDistribution # 
Instance details

Defined in Statistics.Distribution.Binomial

DiscreteDistr DiscreteUniform # 
Instance details

Defined in Statistics.Distribution.DiscreteUniform

DiscreteDistr GeometricDistribution # 
Instance details

Defined in Statistics.Distribution.Geometric

DiscreteDistr GeometricDistribution0 # 
Instance details

Defined in Statistics.Distribution.Geometric

DiscreteDistr HypergeometricDistribution # 
Instance details

Defined in Statistics.Distribution.Hypergeometric

DiscreteDistr NegativeBinomialDistribution # 
Instance details

Defined in Statistics.Distribution.NegativeBinomial

DiscreteDistr PoissonDistribution # 
Instance details

Defined in Statistics.Distribution.Poisson

class Distribution d => ContDistr d where #

Continuous probability distribution.

Minimal complete definition is quantile and either density or logDensity.

Minimal complete definition

(density | logDensity), (quantile | complQuantile)

Methods

density :: d -> Double -> Double #

Probability density function. Probability that random variable X lies in the infinitesimal interval [x,x+δx) equal to density(x)⋅δx

logDensity :: d -> Double -> Double #

Natural logarithm of density.

quantile :: d -> Double -> Double #

Inverse of the cumulative distribution function. The value x for which P(Xx) = p. If probability is outside of [0,1] range function should call error

complQuantile :: d -> Double -> Double #

1-complement of quantile:

complQuantile x ≡ quantile (1 - x)

Instances

Instances details
ContDistr BetaDistribution # 
Instance details

Defined in Statistics.Distribution.Beta

ContDistr CauchyDistribution # 
Instance details

Defined in Statistics.Distribution.CauchyLorentz

ContDistr ChiSquared # 
Instance details

Defined in Statistics.Distribution.ChiSquared

ContDistr ExponentialDistribution # 
Instance details

Defined in Statistics.Distribution.Exponential

ContDistr FDistribution # 
Instance details

Defined in Statistics.Distribution.FDistribution

ContDistr GammaDistribution # 
Instance details

Defined in Statistics.Distribution.Gamma

ContDistr LaplaceDistribution # 
Instance details

Defined in Statistics.Distribution.Laplace

ContDistr LognormalDistribution # 
Instance details

Defined in Statistics.Distribution.Lognormal

ContDistr NormalDistribution # 
Instance details

Defined in Statistics.Distribution.Normal

ContDistr StudentT # 
Instance details

Defined in Statistics.Distribution.StudentT

ContDistr UniformDistribution # 
Instance details

Defined in Statistics.Distribution.Uniform

ContDistr WeibullDistribution # 
Instance details

Defined in Statistics.Distribution.Weibull

ContDistr d => ContDistr (LinearTransform d) # 
Instance details

Defined in Statistics.Distribution.Transform

Distribution statistics

class Distribution d => MaybeMean d where #

Type class for distributions with mean. maybeMean should return Nothing if it's undefined for current value of data

Methods

maybeMean :: d -> Maybe Double #

Instances

Instances details
MaybeMean BetaDistribution # 
Instance details

Defined in Statistics.Distribution.Beta

MaybeMean BinomialDistribution # 
Instance details

Defined in Statistics.Distribution.Binomial

MaybeMean ChiSquared # 
Instance details

Defined in Statistics.Distribution.ChiSquared

MaybeMean DiscreteUniform # 
Instance details

Defined in Statistics.Distribution.DiscreteUniform

MaybeMean ExponentialDistribution # 
Instance details

Defined in Statistics.Distribution.Exponential

MaybeMean FDistribution # 
Instance details

Defined in Statistics.Distribution.FDistribution

MaybeMean GammaDistribution # 
Instance details

Defined in Statistics.Distribution.Gamma

MaybeMean GeometricDistribution # 
Instance details

Defined in Statistics.Distribution.Geometric

MaybeMean GeometricDistribution0 # 
Instance details

Defined in Statistics.Distribution.Geometric

MaybeMean HypergeometricDistribution # 
Instance details

Defined in Statistics.Distribution.Hypergeometric

MaybeMean LaplaceDistribution # 
Instance details

Defined in Statistics.Distribution.Laplace

MaybeMean LognormalDistribution # 
Instance details

Defined in Statistics.Distribution.Lognormal

MaybeMean NegativeBinomialDistribution # 
Instance details

Defined in Statistics.Distribution.NegativeBinomial

MaybeMean NormalDistribution # 
Instance details

Defined in Statistics.Distribution.Normal

MaybeMean PoissonDistribution # 
Instance details

Defined in Statistics.Distribution.Poisson

MaybeMean StudentT # 
Instance details

Defined in Statistics.Distribution.StudentT

MaybeMean UniformDistribution # 
Instance details

Defined in Statistics.Distribution.Uniform

MaybeMean WeibullDistribution # 
Instance details

Defined in Statistics.Distribution.Weibull

MaybeMean d => MaybeMean (LinearTransform d) # 
Instance details

Defined in Statistics.Distribution.Transform

class MaybeMean d => Mean d where #

Type class for distributions with mean. If a distribution has finite mean for all valid values of parameters it should be instance of this type class.

Methods

mean :: d -> Double #

Instances

Instances details
Mean BetaDistribution # 
Instance details

Defined in Statistics.Distribution.Beta

Mean BinomialDistribution # 
Instance details

Defined in Statistics.Distribution.Binomial

Mean ChiSquared # 
Instance details

Defined in Statistics.Distribution.ChiSquared

Methods

mean :: ChiSquared -> Double #

Mean DiscreteUniform # 
Instance details

Defined in Statistics.Distribution.DiscreteUniform

Mean ExponentialDistribution # 
Instance details

Defined in Statistics.Distribution.Exponential

Mean GammaDistribution # 
Instance details

Defined in Statistics.Distribution.Gamma

Mean GeometricDistribution # 
Instance details

Defined in Statistics.Distribution.Geometric

Mean GeometricDistribution0 # 
Instance details

Defined in Statistics.Distribution.Geometric

Mean HypergeometricDistribution # 
Instance details

Defined in Statistics.Distribution.Hypergeometric

Mean LaplaceDistribution # 
Instance details

Defined in Statistics.Distribution.Laplace

Mean LognormalDistribution # 
Instance details

Defined in Statistics.Distribution.Lognormal

Mean NegativeBinomialDistribution # 
Instance details

Defined in Statistics.Distribution.NegativeBinomial

Mean NormalDistribution # 
Instance details

Defined in Statistics.Distribution.Normal

Mean PoissonDistribution # 
Instance details

Defined in Statistics.Distribution.Poisson

Mean UniformDistribution # 
Instance details

Defined in Statistics.Distribution.Uniform

Mean WeibullDistribution # 
Instance details

Defined in Statistics.Distribution.Weibull

Mean d => Mean (LinearTransform d) # 
Instance details

Defined in Statistics.Distribution.Transform

Methods

mean :: LinearTransform d -> Double #

class MaybeMean d => MaybeVariance d where #

Type class for distributions with variance. If variance is undefined for some parameter values both maybeVariance and maybeStdDev should return Nothing.

Minimal complete definition is maybeVariance or maybeStdDev

Minimal complete definition

(maybeVariance | maybeStdDev)

Instances

Instances details
MaybeVariance BetaDistribution # 
Instance details

Defined in Statistics.Distribution.Beta

MaybeVariance BinomialDistribution # 
Instance details

Defined in Statistics.Distribution.Binomial

MaybeVariance ChiSquared # 
Instance details

Defined in Statistics.Distribution.ChiSquared

MaybeVariance DiscreteUniform # 
Instance details

Defined in Statistics.Distribution.DiscreteUniform

MaybeVariance ExponentialDistribution # 
Instance details

Defined in Statistics.Distribution.Exponential

MaybeVariance FDistribution # 
Instance details

Defined in Statistics.Distribution.FDistribution

MaybeVariance GammaDistribution # 
Instance details

Defined in Statistics.Distribution.Gamma

MaybeVariance GeometricDistribution # 
Instance details

Defined in Statistics.Distribution.Geometric

MaybeVariance GeometricDistribution0 # 
Instance details

Defined in Statistics.Distribution.Geometric

MaybeVariance HypergeometricDistribution # 
Instance details

Defined in Statistics.Distribution.Hypergeometric

MaybeVariance LaplaceDistribution # 
Instance details

Defined in Statistics.Distribution.Laplace

MaybeVariance LognormalDistribution # 
Instance details

Defined in Statistics.Distribution.Lognormal

MaybeVariance NegativeBinomialDistribution # 
Instance details

Defined in Statistics.Distribution.NegativeBinomial

MaybeVariance NormalDistribution # 
Instance details

Defined in Statistics.Distribution.Normal

MaybeVariance PoissonDistribution # 
Instance details

Defined in Statistics.Distribution.Poisson

MaybeVariance StudentT # 
Instance details

Defined in Statistics.Distribution.StudentT

MaybeVariance UniformDistribution # 
Instance details

Defined in Statistics.Distribution.Uniform

MaybeVariance WeibullDistribution # 
Instance details

Defined in Statistics.Distribution.Weibull

MaybeVariance d => MaybeVariance (LinearTransform d) # 
Instance details

Defined in Statistics.Distribution.Transform

class (Mean d, MaybeVariance d) => Variance d where #

Type class for distributions with variance. If distribution have finite variance for all valid parameter values it should be instance of this type class.

Minimal complete definition is variance or stdDev

Minimal complete definition

(variance | stdDev)

Methods

variance :: d -> Double #

stdDev :: d -> Double #

Instances

Instances details
Variance BetaDistribution # 
Instance details

Defined in Statistics.Distribution.Beta

Variance BinomialDistribution # 
Instance details

Defined in Statistics.Distribution.Binomial

Variance ChiSquared # 
Instance details

Defined in Statistics.Distribution.ChiSquared

Variance DiscreteUniform # 
Instance details

Defined in Statistics.Distribution.DiscreteUniform

Variance ExponentialDistribution # 
Instance details

Defined in Statistics.Distribution.Exponential

Variance GammaDistribution # 
Instance details

Defined in Statistics.Distribution.Gamma

Variance GeometricDistribution # 
Instance details

Defined in Statistics.Distribution.Geometric

Variance GeometricDistribution0 # 
Instance details

Defined in Statistics.Distribution.Geometric

Variance HypergeometricDistribution # 
Instance details

Defined in Statistics.Distribution.Hypergeometric

Variance LaplaceDistribution # 
Instance details

Defined in Statistics.Distribution.Laplace

Variance LognormalDistribution # 
Instance details

Defined in Statistics.Distribution.Lognormal

Variance NegativeBinomialDistribution # 
Instance details

Defined in Statistics.Distribution.NegativeBinomial

Variance NormalDistribution # 
Instance details

Defined in Statistics.Distribution.Normal

Variance PoissonDistribution # 
Instance details

Defined in Statistics.Distribution.Poisson

Variance UniformDistribution # 
Instance details

Defined in Statistics.Distribution.Uniform

Variance WeibullDistribution # 
Instance details

Defined in Statistics.Distribution.Weibull

Variance d => Variance (LinearTransform d) # 
Instance details

Defined in Statistics.Distribution.Transform

class Distribution d => MaybeEntropy d where #

Type class for distributions with entropy, meaning Shannon entropy in the case of a discrete distribution, or differential entropy in the case of a continuous one. maybeEntropy should return Nothing if entropy is undefined for the chosen parameter values.

Methods

maybeEntropy :: d -> Maybe Double #

Returns the entropy of a distribution, in nats, if such is defined.

Instances

Instances details
MaybeEntropy BetaDistribution # 
Instance details

Defined in Statistics.Distribution.Beta

MaybeEntropy BinomialDistribution # 
Instance details

Defined in Statistics.Distribution.Binomial

MaybeEntropy CauchyDistribution # 
Instance details

Defined in Statistics.Distribution.CauchyLorentz

MaybeEntropy ChiSquared # 
Instance details

Defined in Statistics.Distribution.ChiSquared

MaybeEntropy DiscreteUniform # 
Instance details

Defined in Statistics.Distribution.DiscreteUniform

MaybeEntropy ExponentialDistribution # 
Instance details

Defined in Statistics.Distribution.Exponential

MaybeEntropy FDistribution # 
Instance details

Defined in Statistics.Distribution.FDistribution

MaybeEntropy GammaDistribution # 
Instance details

Defined in Statistics.Distribution.Gamma

MaybeEntropy GeometricDistribution # 
Instance details

Defined in Statistics.Distribution.Geometric

MaybeEntropy GeometricDistribution0 # 
Instance details

Defined in Statistics.Distribution.Geometric

MaybeEntropy HypergeometricDistribution # 
Instance details

Defined in Statistics.Distribution.Hypergeometric

MaybeEntropy LaplaceDistribution # 
Instance details

Defined in Statistics.Distribution.Laplace

MaybeEntropy LognormalDistribution # 
Instance details

Defined in Statistics.Distribution.Lognormal

MaybeEntropy NegativeBinomialDistribution # 
Instance details

Defined in Statistics.Distribution.NegativeBinomial

MaybeEntropy NormalDistribution # 
Instance details

Defined in Statistics.Distribution.Normal

MaybeEntropy PoissonDistribution # 
Instance details

Defined in Statistics.Distribution.Poisson

MaybeEntropy StudentT # 
Instance details

Defined in Statistics.Distribution.StudentT

MaybeEntropy UniformDistribution # 
Instance details

Defined in Statistics.Distribution.Uniform

MaybeEntropy WeibullDistribution # 
Instance details

Defined in Statistics.Distribution.Weibull

MaybeEntropy d => MaybeEntropy (LinearTransform d) # 
Instance details

Defined in Statistics.Distribution.Transform

class MaybeEntropy d => Entropy d where #

Type class for distributions with entropy, meaning Shannon entropy in the case of a discrete distribution, or differential entropy in the case of a continuous one. If the distribution has well-defined entropy for all valid parameter values then it should be an instance of this type class.

Methods

entropy :: d -> Double #

Returns the entropy of a distribution, in nats.

Instances

Instances details
Entropy BetaDistribution # 
Instance details

Defined in Statistics.Distribution.Beta

Entropy BinomialDistribution # 
Instance details

Defined in Statistics.Distribution.Binomial

Entropy CauchyDistribution # 
Instance details

Defined in Statistics.Distribution.CauchyLorentz

Entropy ChiSquared # 
Instance details

Defined in Statistics.Distribution.ChiSquared

Methods

entropy :: ChiSquared -> Double #

Entropy DiscreteUniform # 
Instance details

Defined in Statistics.Distribution.DiscreteUniform

Entropy ExponentialDistribution # 
Instance details

Defined in Statistics.Distribution.Exponential

Entropy FDistribution # 
Instance details

Defined in Statistics.Distribution.FDistribution

Entropy GeometricDistribution # 
Instance details

Defined in Statistics.Distribution.Geometric

Entropy GeometricDistribution0 # 
Instance details

Defined in Statistics.Distribution.Geometric

Entropy HypergeometricDistribution # 
Instance details

Defined in Statistics.Distribution.Hypergeometric

Entropy LaplaceDistribution # 
Instance details

Defined in Statistics.Distribution.Laplace

Entropy LognormalDistribution # 
Instance details

Defined in Statistics.Distribution.Lognormal

Entropy NegativeBinomialDistribution # 
Instance details

Defined in Statistics.Distribution.NegativeBinomial

Entropy NormalDistribution # 
Instance details

Defined in Statistics.Distribution.Normal

Entropy PoissonDistribution # 
Instance details

Defined in Statistics.Distribution.Poisson

Entropy StudentT # 
Instance details

Defined in Statistics.Distribution.StudentT

Methods

entropy :: StudentT -> Double #

Entropy UniformDistribution # 
Instance details

Defined in Statistics.Distribution.Uniform

Entropy WeibullDistribution # 
Instance details

Defined in Statistics.Distribution.Weibull

Entropy d => Entropy (LinearTransform d) # 
Instance details

Defined in Statistics.Distribution.Transform

class FromSample d a where #

Estimate distribution from sample. First parameter in sample is distribution type and second is element type.

Methods

fromSample :: Vector v a => v a -> Maybe d #

Estimate distribution from sample. Returns Nothing if there is not enough data, or if no usable fit results from the method used, e.g., the estimated distribution parameters would be invalid or inaccurate.

Instances

Instances details
FromSample ExponentialDistribution Double #

Create exponential distribution from sample. Estimates the rate with the maximum likelihood estimator, which is biased. Returns Nothing if the sample mean does not exist or is not positive.

Instance details

Defined in Statistics.Distribution.Exponential

FromSample LaplaceDistribution Double #

Create Laplace distribution from sample. The location is estimated as the median of the sample, and the scale as the mean absolute deviation of the median.

Instance details

Defined in Statistics.Distribution.Laplace

Methods

fromSample :: Vector v Double => v Double -> Maybe LaplaceDistribution #

FromSample LognormalDistribution Double #

Variance is estimated using maximum likelihood method (biased estimation) over the log of the data.

Returns Nothing if sample contains less than one element or variance is zero (all elements are equal)

Instance details

Defined in Statistics.Distribution.Lognormal

FromSample NormalDistribution Double #

Variance is estimated using maximum likelihood method (biased estimation).

Returns Nothing if sample contains less than one element or variance is zero (all elements are equal)

Instance details

Defined in Statistics.Distribution.Normal

Methods

fromSample :: Vector v Double => v Double -> Maybe NormalDistribution #

FromSample WeibullDistribution Double #

Uses an approximation based on the mean and standard deviation in weibullDistrEstMeanStddevErr, with standard deviation estimated using maximum likelihood method (unbiased estimation).

Returns Nothing if sample contains less than one element or variance is zero (all elements are equal), or if the estimated mean and standard-deviation lies outside the range for which the approximation is accurate.

Instance details

Defined in Statistics.Distribution.Weibull

Methods

fromSample :: Vector v Double => v Double -> Maybe WeibullDistribution #

Random number generation

class Distribution d => ContGen d where #

Generate discrete random variates which have given distribution.

Methods

genContVar :: StatefulGen g m => d -> g -> m Double #

Instances

Instances details
ContGen BetaDistribution # 
Instance details

Defined in Statistics.Distribution.Beta

Methods

genContVar :: StatefulGen g m => BetaDistribution -> g -> m Double #

ContGen CauchyDistribution # 
Instance details

Defined in Statistics.Distribution.CauchyLorentz

Methods

genContVar :: StatefulGen g m => CauchyDistribution -> g -> m Double #

ContGen ChiSquared # 
Instance details

Defined in Statistics.Distribution.ChiSquared

Methods

genContVar :: StatefulGen g m => ChiSquared -> g -> m Double #

ContGen DiscreteUniform # 
Instance details

Defined in Statistics.Distribution.DiscreteUniform

Methods

genContVar :: StatefulGen g m => DiscreteUniform -> g -> m Double #

ContGen ExponentialDistribution # 
Instance details

Defined in Statistics.Distribution.Exponential

ContGen FDistribution # 
Instance details

Defined in Statistics.Distribution.FDistribution

Methods

genContVar :: StatefulGen g m => FDistribution -> g -> m Double #

ContGen GammaDistribution # 
Instance details

Defined in Statistics.Distribution.Gamma

Methods

genContVar :: StatefulGen g m => GammaDistribution -> g -> m Double #

ContGen GeometricDistribution # 
Instance details

Defined in Statistics.Distribution.Geometric

ContGen GeometricDistribution0 # 
Instance details

Defined in Statistics.Distribution.Geometric

ContGen LaplaceDistribution # 
Instance details

Defined in Statistics.Distribution.Laplace

ContGen LognormalDistribution # 
Instance details

Defined in Statistics.Distribution.Lognormal

ContGen NormalDistribution # 
Instance details

Defined in Statistics.Distribution.Normal

Methods

genContVar :: StatefulGen g m => NormalDistribution -> g -> m Double #

ContGen StudentT # 
Instance details

Defined in Statistics.Distribution.StudentT

Methods

genContVar :: StatefulGen g m => StudentT -> g -> m Double #

ContGen UniformDistribution # 
Instance details

Defined in Statistics.Distribution.Uniform

ContGen WeibullDistribution # 
Instance details

Defined in Statistics.Distribution.Weibull

ContGen d => ContGen (LinearTransform d) # 
Instance details

Defined in Statistics.Distribution.Transform

Methods

genContVar :: StatefulGen g m => LinearTransform d -> g -> m Double #

class (DiscreteDistr d, ContGen d) => DiscreteGen d where #

Generate discrete random variates which have given distribution. ContGen is superclass because it's always possible to generate real-valued variates from integer values

Methods

genDiscreteVar :: StatefulGen g m => d -> g -> m Int #

genContinuous :: (ContDistr d, StatefulGen g m) => d -> g -> m Double #

Generate variates from continuous distribution using inverse transform rule.

Helper functions

findRoot #

Arguments

:: ContDistr d 
=> d

Distribution

-> Double

Probability p

-> Double

Initial guess

-> Double

Lower bound on interval

-> Double

Upper bound on interval

-> Double 

Approximate the value of X for which P(x>X)=p.

This method uses a combination of Newton-Raphson iteration and bisection with the given guess as a starting point. The upper and lower bounds specify the interval in which the probability distribution reaches the value p.

sumProbabilities :: DiscreteDistr d => d -> Int -> Int -> Double #

Sum probabilities in inclusive interval.