Skip to content

libmir/mir-stat

Repository files navigation

codecov.io GitHub Workflow Status Circle CI

Dub downloads Dub downloads License Latest version

Mir Stat

Statistical algorithms for the D programming language (Dlang).

This package includes statistical algorithms, including but not limited to:

Full Documentation

mir-stat.libmir.org

Example

@safe pure nothrow
void main()
{
    import mir.algorithm.iteration: all;
    import mir.math.common: approxEqual, pow;
    import mir.test: shouldApprox;
    
    // mir.stat.descriptive
    import mir.stat.descriptive.univariate: mean, kurtosis;
    auto x = [1.0, 2, 3, 4];
    x.mean.shouldApprox == 2.5;
    x.kurtosis.shouldApprox == -1.2;
    
    // mir.stat.distribution
    import mir.stat.distribution.binomial: binomialPMF;
    4.binomialPMF(6, 2.0 / 3).shouldApprox == (15.0 * pow(2.0 / 3, 4) * pow(1.0 / 3, 2));

    // mir.stat.transform
    import mir.stat.transform: zscore;
    assert(x.zscore.all!approxEqual([-1.161895, -0.387298, 0.387298, 1.161895]));

    // mir.stat.inference
    import mir.stat.inference: dAgostinoPearsonTest;
    auto y = [0.0, 1.0, 1.5, 2.0, 3.5, 4.25,
              2.0, 7.5, 5.0, 1.0, 1.5, 0.0];
    double p;
    y.dAgostinoPearsonTest(p).shouldApprox == 4.151936053369771;
}