Exponential
Exponential distribution.
Usage
var exponential = require( '@stdlib/stats/base/dists/exponential' );
exponential
Exponential distribution.
var dist = exponential;
// returns {...}
The namespace contains the following distribution functions:
cdf( x, lambda )
: exponential distribution cumulative distribution function.logcdf( x, lambda )
: evaluate the natural logarithm of the cumulative distribution function for an exponential distribution.logpdf( x, lambda )
: evaluate the natural logarithm of the probability density function (PDF) for an exponential distribution.mgf( t, lambda )
: exponential distribution moment-generating function (MGF).pdf( x, lambda )
: exponential distribution probability density function (PDF).quantile( p, lambda )
: exponential distribution quantile function.
The namespace contains the following functions for calculating distribution properties:
entropy( lambda )
: exponential distribution differential entropy.kurtosis( lambda )
: exponential distribution excess kurtosis.mean( lambda )
: exponential distribution expected value.median( lambda )
: exponential distribution median.mode( lambda )
: exponential distribution mode.skewness( lambda )
: exponential distribution skewness.stdev( lambda )
: exponential distribution standard deviation.variance( lambda )
: exponential distribution variance.
The namespace contains a constructor function for creating an exponential distribution object.
Exponential( [lambda] )
: exponential distribution constructor.
var Exponential = require( '@stdlib/stats/base/dists/exponential' ).Exponential;
var dist = new Exponential( 2.0 );
var y = dist.logpdf( 0.8 );
// returns ~-0.907
Examples
var Float64Array = require( '@stdlib/array/float64' );
var randomExponential = require( '@stdlib/random/array/exponential' );
var dcusum = require( '@stdlib/blas/ext/base/dcusum' );
var exponential = require( '@stdlib/stats/base/dists/exponential' );
// Simulate interarrival times of customers entering a store:
var lambda = 0.5; // Average rate (customers per minute)
var numCustomers = 10;
// Generate interarrival times using the exponential distribution:
var interarrivalTimes = randomExponential( numCustomers, lambda, {
'dtype': 'float64'
});
console.log( 'Simulated interarrival times for ' + numCustomers + ' customers: ' );
console.log( interarrivalTimes );
// Calculate cumulative arrival times by computing the cumulative sum of interarrival times:
var arrivalTimes = new Float64Array( interarrivalTimes.length );
dcusum( interarrivalTimes.length, 0.0, interarrivalTimes, 1, arrivalTimes, 1 );
console.log( '\nCustomer arrival times: ' );
console.log( arrivalTimes );
// Probability that a customer arrives within two minutes:
var x = 2.0;
var prob = exponential.cdf( x, lambda );
console.log( '\nProbability that a customer arrives within ' + x + ' minutes: ' + prob.toFixed(4) );
// Expected time until the next customer arrives:
var mean = exponential.mean( lambda );
console.log( 'Expected interarrival time: ' + mean + ' minutes' );
var dist = new exponential.Exponential( lambda );
var median = dist.median;
console.log( 'Median interarrival time: ' + median + ' minutes' );
// Evaluate the PDF at x = 1.0:
var out = dist.pdf( 1.0 );
console.log( 'PDF at x = 1: ' + out.toFixed(4) );
// Evaluate the MGF at t = 0.1:
out = dist.mgf( 0.1 );
console.log( 'MGF at t = 0.1: ' + out.toFixed(4) );