Gumbel
Gumbel distribution.
Usage
var gumbel = require( '@stdlib/stats/base/dists/gumbel' );
gumbel
Gumbel distribution.
var dist = gumbel;
// returns {...}
The namespace contains the following distribution functions:
cdf( x, mu, beta )
: Gumbel distribution cumulative distribution function.logcdf( x, mu, beta )
: Gumbel distribution logarithm of cumulative distribution function.logpdf( x, mu, beta )
: Gumbel distribution logarithm of probability density function (PDF).mgf( t, mu, beta )
: Gumbel distribution moment-generating function (MGF).pdf( x, mu, beta )
: Gumbel distribution probability density function (PDF).quantile( p, mu, beta )
: Gumbel distribution quantile function.
The namespace contains the following functions for calculating distribution properties:
entropy( mu, beta )
: Gumbel distribution differential entropy.kurtosis( mu, beta )
: Gumbel distribution excess kurtosis.mean( mu, beta )
: Gumbel distribution expected value.median( mu, beta )
: Gumbel distribution median.mode( mu, beta )
: Gumbel distribution mode.skewness( mu, beta )
: Gumbel distribution skewness.stdev( mu, beta )
: Gumbel distribution standard deviation.variance( mu, beta )
: Gumbel distribution variance.
The namespace contains a constructor function for creating a Gumbel distribution object.
Gumbel( [mu, beta] )
: Gumbel distribution constructor.
var Gumbel = require( '@stdlib/stats/base/dists/gumbel' ).Gumbel;
var dist = new Gumbel( 2.0, 4.0 );
var y = dist.pdf( 2.0 );
// returns ~0.092
Examples
var Float64Array = require( '@stdlib/array/float64' );
var filledarrayBy = require( '@stdlib/array/filled-by' );
var mean = require( '@stdlib/stats/base/mean' );
var variance = require( '@stdlib/stats/base/variance' );
var stdev = require( '@stdlib/stats/base/stdev' );
var randGumbel = require( '@stdlib/random/base/gumbel' ).factory;
var gumbel = require( '@stdlib/stats/base/dists/gumbel' );
// Set the parameters of the Gumbel distribution:
var mu = 30.0; // Location parameter (e.g., average annual maximum temperature in °C)
var beta = 5.0; // Scale parameter
// Simulate annual maximum daily temperatures over 1000 years:
var N = 1000;
var rgumbel = randGumbel( mu, beta );
var maxTemperatures = filledarrayBy( N, 'float64', rgumbel );
// Compute theoretical statistics of the Gumbel distribution:
var theoreticalMean = gumbel.mean( mu, beta);
var theoreticalVariance = gumbel.variance( mu, beta );
var theoreticalStdev = gumbel.stdev( mu, beta );
// Compute sample statistics of the simulated data:
var sampleMean = mean( N, maxTemperatures, 1 );
var sampleVariance = variance( N, 1, maxTemperatures, 1 ); // with Bessel's correction
var sampleStdev = stdev( N, 1, maxTemperatures, 1 ); // with Bessel's correction
// Display theoretical and sample statistics:
console.log( '--- Statistical Comparison ---\n' );
console.log( 'Mean:');
console.log( ' Theoretical: %d°C', theoreticalMean.toFixed(2) );
console.log( ' Sample: %d°C\n', sampleMean.toFixed(2) );
console.log( 'Variance:');
console.log( ' Theoretical: %d°C²', theoreticalVariance.toFixed(2) );
console.log( ' Sample: %d°C²\n', sampleVariance.toFixed(2) );
console.log( 'Standard Deviation:' );
console.log( ' Theoretical: %d°C', theoreticalStdev.toFixed(2) );
console.log( ' Sample: %d°C\n', sampleStdev.toFixed(2) );
// Define quantile probabilities:
var p = new Float64Array( [ 0.25, 0.5, 0.75 ] );
var label = [ 'First Quartile', 'Median', 'Third Quartile' ];
var theoreticalQuantiles = new Float64Array([
gumbel.quantile( p[0], mu, beta ),
gumbel.quantile( p[1], mu, beta ),
gumbel.quantile( p[2], mu, beta )
]);
console.log( 'Quantiles:' );
var i;
for ( i = 0; i < p.length; i++ ) {
console.log( label[i] + ': %d°C', theoreticalQuantiles[i].toFixed(2) );
}