statistics-0.16.4.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 Source #

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 Source #

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 Source #

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

class Distribution d => DiscreteDistr d where Source #

Discrete probability distribution.

Minimal complete definition

(probability | logProbability)

Methods

probability :: d -> Int -> Double Source #

Probability of n-th outcome.

logProbability :: d -> Int -> Double Source #

Logarithm of probability of n-th outcome

Instances

Instances details

class Distribution d => ContDistr d where Source #

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 Source #

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 Source #

Natural logarithm of density.

quantile :: d -> Double -> Double Source #

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 Source #

1-complement of quantile:

complQuantile x ≡ quantile (1 - x)

Instances

Instances details

Distribution statistics

class Distribution d => MaybeMean d where Source #

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

Methods

maybeMean :: d -> Maybe Double Source #

Instances

Instances details
Instance details

Defined in Statistics.Distribution.Beta

Instance details

Defined in Statistics.Distribution.ChiSquared

Instance details

Defined in Statistics.Distribution.StudentT

Instance details

Defined in Statistics.Distribution.Transform

class MaybeMean d => Mean d where Source #

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 Source #

Instances

Instances details
Instance details

Defined in Statistics.Distribution.Beta

Instance details

Defined in Statistics.Distribution.Binomial

Instance details

Defined in Statistics.Distribution.ChiSquared

Methods

mean :: ChiSquared -> Double Source #

Instance details

Defined in Statistics.Distribution.Gamma

Instance details

Defined in Statistics.Distribution.Laplace

Instance details

Defined in Statistics.Distribution.Normal

Instance details

Defined in Statistics.Distribution.Poisson

Instance details

Defined in Statistics.Distribution.Uniform

Instance details

Defined in Statistics.Distribution.Weibull

Instance details

Defined in Statistics.Distribution.Transform

class MaybeMean d => MaybeVariance d where Source #

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)

Methods

maybeVariance :: d -> Maybe Double Source #

maybeStdDev :: d -> Maybe Double Source #

Instances

Instances details

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

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 Source #

stdDev :: d -> Double Source #

Instances

Instances details

class Distribution d => MaybeEntropy d where Source #

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 Source #

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

Instances

Instances details
Instance details

Defined in Statistics.Distribution.StudentT

class MaybeEntropy d => Entropy d where Source #

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 Source #

Returns the entropy of a distribution, in nats.

Instances

Instances details
Instance details

Defined in Statistics.Distribution.Beta

Instance details

Defined in Statistics.Distribution.ChiSquared

Instance details

Defined in Statistics.Distribution.FDistribution

Instance details

Defined in Statistics.Distribution.Laplace

Instance details

Defined in Statistics.Distribution.Normal

Instance details

Defined in Statistics.Distribution.Poisson

Instance details

Defined in Statistics.Distribution.StudentT

Instance details

Defined in Statistics.Distribution.Uniform

Instance details

Defined in Statistics.Distribution.Weibull

Instance details

Defined in Statistics.Distribution.Transform

class FromSample d a where Source #

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 Source #

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 Source #

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 Source #

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

FromSample LognormalDistribution Double Source #

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 Source #

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

FromSample WeibullDistribution Double Source #

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

Random number generation

class Distribution d => ContGen d where Source #

Generate discrete random variates which have given distribution.

Methods

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

Instances

Instances details
Instance details

Defined in Statistics.Distribution.Beta

Instance details

Defined in Statistics.Distribution.CauchyLorentz

Instance details

Defined in Statistics.Distribution.ChiSquared

Methods

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

Instance details

Defined in Statistics.Distribution.DiscreteUniform

Methods

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

Instance details

Defined in Statistics.Distribution.Exponential

Instance details

Defined in Statistics.Distribution.FDistribution

Methods

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

Instance details

Defined in Statistics.Distribution.Gamma

Instance details

Defined in Statistics.Distribution.Geometric

Instance details

Defined in Statistics.Distribution.Geometric

Instance details

Defined in Statistics.Distribution.Laplace

Instance details

Defined in Statistics.Distribution.Lognormal

Instance details

Defined in Statistics.Distribution.Normal

Instance details

Defined in Statistics.Distribution.StudentT

Methods

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

Instance details

Defined in Statistics.Distribution.Uniform

Instance details

Defined in Statistics.Distribution.Weibull

Instance details

Defined in Statistics.Distribution.Transform

Methods

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

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

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 Source #

Instances

Instances details
Instance details

Defined in Statistics.Distribution.DiscreteUniform

Instance details

Defined in Statistics.Distribution.Geometric

Instance details

Defined in Statistics.Distribution.Geometric

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

Generate variates from continuous distribution using inverse transform rule.

Helper functions

findRoot Source #

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 Source #

Sum probabilities in inclusive interval.

AltStyle によって変換されたページ (->オリジナル) /