API
AbstractMoments
The concept of first and higher order moments is captured by its own type. This allows dispatching the fit method.
DistributionFits.AbstractMoments
— TypeAbstractMoments{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 meanvar(m)
: get the second moment, i.e. the varianceskewness(m)
: get the third moment, i.e. the skewnesskurtosis(m)
: get the fourth moment, i.e. the kurtosisgetindex(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.moments
— Functionmoments(D, ::Val{N} = Val(2))
Get the first N moments of a distribution.
Procudes 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.QuantilePoint
— TypeQuantilePoint
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 aQuantilePoint(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)]))