time-to-botec/js/node_modules/@stdlib/stats/base/dists/invgamma/quantile
..
docs
lib
package.json
README.md

Quantile Function

Inverse gamma distribution quantile function.

The quantile function for an inverse gamma random variable is

Quantile function for an inverse gamma distribution.

for 0 <= p < 1, where alpha > 0 is the shape parameter and beta > 0 is the scale parameter.

Usage

var quantile = require( '@stdlib/stats/base/dists/invgamma/quantile' );

quantile( p, alpha, beta )

Evaluates the quantile function for an inverse gamma distribution with parameters alpha (shape parameter) and beta (rate parameter).

var y = quantile( 0.8, 2.0, 1.0 );
// returns ~1.213

y = quantile( 0.5, 4.0, 2.0 );
// returns ~0.545

If provided a probability p outside the interval [0,1], the function returns NaN.

var y = quantile( 1.9, 1.0, 1.0 );
// returns NaN

y = quantile( -0.1, 1.0, 1.0 );
// returns NaN

If provided NaN as any argument, the function returns NaN.

var y = quantile( NaN, 1.0, 1.0 );
// returns NaN

y = quantile( 0.0, NaN, 1.0 );
// returns NaN

y = quantile( 0.0, 1.0, NaN );
// returns NaN

If provided alpha <= 0, the function returns NaN.

var y = quantile( 0.4, -1.0, 1.0 );
// returns NaN

If provided beta <= 0, the function returns NaN.

var y = quantile( 0.4, 1.0, -1.0 );
// returns NaN

quantile.factory( alpha, beta )

Returns a function for evaluating the quantile function of an inverse gamma distribution with parameters alpha (shape parameter) and beta (rate parameter).

var myquantile = quantile.factory( 2.0, 2.0 );
var y = myquantile( 0.8 );
// returns ~2.426

y = myquantile( 0.4 );
// returns ~0.989

Examples

var randu = require( '@stdlib/random/base/randu' );
var quantile = require( '@stdlib/stats/base/dists/invgamma/quantile' );

var alpha;
var beta;
var p;
var y;
var i;

for ( i = 0; i < 10; i++ ) {
    p = randu();
    alpha = randu() * 5.0;
    beta = randu() * 5.0;
    y = quantile( p, alpha, beta );
    console.log( 'p: %d, α: %d, β: %d, Q(p;α,β): %d', p.toFixed( 4 ), alpha.toFixed( 4 ), beta.toFixed( 4 ), y.toFixed( 4 ) );
}