This package includes statistical algorithms, including but not limited to:
@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;
}