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:

The namespace contains a constructor function for creating an exponential distribution object.

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) );
Did you find this page helpful?