Report a bug
If you spot a problem with this page, click here to create a GitHub issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page.
Requires a signed-in GitHub account. This works well for small changes.
If you'd like to make larger changes you may want to consider using
a local clone.
mir.stat.distribution.negative_binomial
This module contains algorithms for the Negative Binomial Distribution.
There are multiple alternative formulations of the Negative Binomial Distribution. The
formulation in this module uses the number of Bernoulli trials until r successes.
License:
Authors:
John Michael Hall
- pure nothrow @nogc @safe T
negativeBinomialPMF(T)(const size_tk, const size_tr, const Tp)
if (isFloatingPoint!T); - Computes the negative binomial probability mass function (PMF).Parameters:
size_t kvalue to evaluate PMF (e.g. number of "heads") size_t rnumber of successes until stopping T ptrue probability See Also:Examples:import mir.test: shouldApprox; 4.negativeBinomialPMF(6, 3.0 / 4).shouldApprox == 0.0875988;
- pure nothrow @nogc @safe T
fp_negativeBinomialPMF(T)(const size_tk, const size_tr, const Tp)
if (is(T == Fp!size, size_t size)); - Computes the negative binomial probability mass function (PMF) directly with extended floating point types (e.g. Fp!128), which provides additional accuracy for extreme values of
k,r, orp.Parameters:size_t kvalue to evaluate PMF (e.g. number of "heads") size_t rnumber of successes until stopping T ptrue probability See Also:Examples:fp_binomialPMF provides accurate values for large values of nimport mir.bignum.fp: Fp, fp_log; import mir.test: shouldApprox; 1.fp_negativeBinomialPMF(1_000_000, Fp!128(0.75)).fp_log!double.shouldApprox == negativeBinomialLPMF(1, 1_000_000, 0.75);
- pure nothrow @nogc @safe T
negativeBinomialCDF(T)(const size_tk, const size_tr, const Tp)
if (isFloatingPoint!T); - Computes the negative binomial cumulative distribution function (CDF).Parameters:
size_t kvalue to evaluate CDF (e.g. number of "heads") size_t rnumber of successes until stopping T ptrue probability See Also:Examples:import mir.test: shouldApprox; 4.negativeBinomialCDF(6, 3.0 / 4).shouldApprox == 0.9218731;
- pure nothrow @nogc @safe T
negativeBinomialCCDF(T)(const size_tk, const size_tr, const Tp)
if (isFloatingPoint!T); - Computes the negative binomial complementary cumulative distribution function (CCDF).Parameters:
size_t kvalue to evaluate CCDF (e.g. number of "heads") size_t rnumber of successes until stopping T ptrue probability See Also:Examples:import mir.test: shouldApprox; 4.negativeBinomialCCDF(6, 3.0 / 4).shouldApprox == 0.07812691;
- pure nothrow @nogc @safe size_t
negativeBinomialInvCDF(T)(const Tq, const size_tr, const Tp)
if (isFloatingPoint!T); - Computes the negative binomial inverse cumulative distribution function (InvCDF).Parameters:
T qvalue to evaluate InvCDF size_t rnumber of successes until stopping T ptrue probability See Also:Examples:import mir.test: should; 0.9.negativeBinomialInvCDF(6, 3.0 / 4).should == 4;
- pure nothrow @nogc @safe T
negativeBinomialLPMF(T)(const size_tk, const size_tr, const Tp)
if (isFloatingPoint!T); - Computes the negative binomial log probability mass function (LPMF).Parameters:
size_t kvalue to evaluate PMF (e.g. number of "heads") size_t rnumber of successes until stopping T ptrue probability See Also:Examples:import mir.math.common: exp; import mir.test: shouldApprox; 4.negativeBinomialLPMF(6, 3.0 / 4).exp.shouldApprox == 4.negativeBinomialPMF(6, 3.0 / 4);
Examples:Accurate values for large values of nimport mir.bignum.fp: Fp, fp_log; import mir.test: shouldApprox; enum size_t val = 1_000_000; 1.negativeBinomialLPMF(1_000_000, 0.75).shouldApprox == fp_negativeBinomialPMF(1, 1_000_000, Fp!128(0.75)).fp_log!double;
Copyright © 2016-2023 by Ilya Yaroshenko | Page generated by
Ddoc on Wed Oct 18 12:23:06 2023