Skip to content

Latest commit

 

History

History
213 lines (132 loc) · 9.48 KB

File metadata and controls

213 lines (132 loc) · 9.48 KB

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:

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) );