statistics-0.10.0.0: A library of statistical types, data, and functions

Portability portable experimental bos@serpentine.com

Statistics.Distribution

Description

Types classes for probability distrubutions

Synopsis

# Type classes

class Distribution d whereSource

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

Methods

cumulative :: d -> Double -> DoubleSource

Cumulative distribution function. The probability that a random variable X is less or equal than x, i.e. P(Xx).

complCumulative :: d -> Double -> DoubleSource

One's complement of cumulative distibution:

``` complCumulative d x = 1 - cumulative d x
```

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

class Distribution d => DiscreteDistr d whereSource

Discrete probability distribution.

Methods

probability :: d -> Int -> DoubleSource

Probability of n-th outcome.

class Distribution d => ContDistr d whereSource

Continuous probability distributuion

Methods

density :: d -> Double -> DoubleSource

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

quantile :: d -> Double -> DoubleSource

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`

## Distribution statistics

class Distribution d => MaybeMean d whereSource

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

class MaybeMean d => Mean d whereSource

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

Methods

mean :: d -> DoubleSource

class MaybeMean d => MaybeVariance d whereSource

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`

class (Mean d, MaybeVariance d) => Variance d whereSource

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

Minimal complete definition is `variance` or `stdDev`

# Helper functions

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 -> DoubleSource

Sum probabilities in inclusive interval.