Logarithm of Probability Mass Function
Evaluate the logarithm of the probability mass function (PMF) for a Planck (discrete exponential) distribution.
The probability mass function (PMF) for a Planck random variable is defined as
where λ is the shape parameter and x denotes the count of events in a quantized system.
Usage
var logpmf = require( '@stdlib/stats/base/dists/planck/logpmf' );
logpmf( x, lambda )
Evaluates the logarithm of the probability mass function (PMF) of a Planck (discrete exponential) distribution with shape parameter lambda.
var y = logpmf( 4.0, 0.3 );
// returns ~-2.5502
y = logpmf( 2.0, 1.7 );
// returns ~-3.6017
y = logpmf( -1.0, 2.5 );
// returns -Infinity
If provided NaN as any argument, the function returns NaN.
var y = logpmf( NaN, 0.0 );
// returns NaN
y = logpmf( 0.0, NaN );
// returns NaN
If provided a shape parameter lambda which is nonpositive number, the function returns NaN.
var y = logpmf( 2.0, -1.0 );
// returns NaN
logpmf.factory( lambda )
Returns a function for evaluating the logarithm of the probability mass function (PMF) of a Planck (discrete exponential) distribution with shape parameter lambda.
var mylogpmf = logpmf.factory( 0.5 );
var y = mylogpmf( 3.0 );
// returns ~-2.4328
y = mylogpmf( 1.0 );
// returns ~-1.4328
Notes
- In virtually all cases, using the
logpmforlogcdffunctions is preferable to manually computing the logarithm of thepmforcdf, respectively, since the latter is prone to overflow and underflow.
Examples
var discreteUniform = require( '@stdlib/random/array/discrete-uniform' );
var uniform = require( '@stdlib/random/array/uniform' );
var logpmf = require( '@stdlib/stats/base/dists/planck/logpmf' );
var x = discreteUniform( 10, 0, 5 );
var lambda = uniform( 10, 0.1, 5.0 );
var y;
var i;
for ( i = 0; i < lambda.length; i++ ) {
y = logpmf( x[ i ], lambda[ i ] );
console.log( 'x: %d, λ: %d, ln( P( X = x; λ ) ): %d', x[ i ], lambda[ i ].toFixed( 4 ), y.toFixed( 4 ) );
}