# API

## AbstractMoments

The concept of first and higher order moments is captured by its own type. This allows dispatching the fit method.

DistributionFits.AbstractMomentsType
AbstractMoments{N}

A representation of statistical moments of a distribution

The following functions are supported

• n_moments(m): get the number of recorded moments

The following getters return a single moment or throw an error if the moment has not been recorded (>N)

• mean(m): get the first momemnt, i.e. the mean
• var(m): get the second moment, i.e. the variance
• skewness(m): get the third moment, i.e. the skewness
• kurtosis(m): get the fourth moment, i.e. the kurtosis
• getindex(m,i): get the ith moment, i.e. indexing m[i]

The basic implementation Moments is immutable and convert(AbstractArray, m::Moments) returns an SArray{N,T}.

Examples

m = Moments(1,0.2);
n_moments(m) == 2
var(m) == m[2]
kurtosis(m) # throws error because its above 2nd moment
DistributionFits.momentsFunction
moments(D, ::Val{N} = Val(2))

Get the first N moments of a distribution.

Produces an object of type AbstractMoments.

Examples

moments(LogNormal(), Val(4))  # first four moments
moments(Normal())  # mean and variance

## QuantilePoint

The concept of a pair (p,q), i.e. a probability in [0,1] and associated quantile is captured by its own type. This allows dispatching the fit method.

DistributionFits.QuantilePointType
QuantilePoint

A representation of a pair (p,q), i.e. (percentile,quantile).

Notes

Several macros help to construct QuantilePoints

• @qp(q,p) quantile at specified p: QuantilePoint(q,p)

For Float64-based percentiles there are shortcuts

• @qp_ll(q0_025) quantile at very low p: QuantilePoint(q0_025,0.025)
• @qp_l(q0_05) quantile at low p: QuantilePoint(q0_05,0.05)
• @qp_m(median) quantile at median: QuantilePoint(median,0.5)
• @qp_u(q0_95) quantile at high p: QuantilePoint(q0_95,0.95)
• @qp_uu(q0_975) quantile at very high p: QuantilePoint(q0_975,0.975)

For constructing QuantilePoints with type of percentiles other than Float64, use the corresponding functions, that create a percentiles of the type of given quantile. E.g. for a Float32-based QuantilePoint at very low percentile

• qp_ll(0.2f0) constructs a QuantilePoint(0.2f0,0.025f0)

There are macros/functions for some commonly used sets of QuantilePoints: 90% and 95% confidence intervals:

• @qs_cf90(q0_05,q0_95)
• @qs_cf95(q0_025,q0_975) -> Set([QuantilePoint(q0_025,0.025),QuantilePoint(q0_975,0.975)]))