diff --git a/lib/node_modules/@stdlib/stats/base/dists/gumbel/README.md b/lib/node_modules/@stdlib/stats/base/dists/gumbel/README.md index c1f940fa3f94..f0c210c99ed4 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/gumbel/README.md +++ b/lib/node_modules/@stdlib/stats/base/dists/gumbel/README.md @@ -109,10 +109,59 @@ var y = dist.pdf( 2.0 ); ```javascript -var objectKeys = require( '@stdlib/utils/keys' ); +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' ); -console.log( objectKeys( 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) ); +} ``` diff --git a/lib/node_modules/@stdlib/stats/base/dists/gumbel/examples/index.js b/lib/node_modules/@stdlib/stats/base/dists/gumbel/examples/index.js index 42a35a8968b1..c17d6c4996ec 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/gumbel/examples/index.js +++ b/lib/node_modules/@stdlib/stats/base/dists/gumbel/examples/index.js @@ -18,7 +18,56 @@ 'use strict'; -var objectKeys = require( '@stdlib/utils/keys' ); +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( './../lib' ); -console.log( objectKeys( 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) ); +}