Laplace Distribution

The Laplace distribution is sometimes called the double exponential distribution. It is used to model variables with a distribution that is more heavy-taled than the normal distribution.

The Laplace distribution has a location parameter corresponding to the mean of the distribution, and a scale parameter. The probability density function is:

$$f(x) = \frac{1}{2b}e^{-|x-a|/b}$$

The Laplace distribution is also known as the extreme value distribution or the log-Weibull distribution.

The Laplace distribution is implemented by the LaplaceDistribution class. It has three constructors. The first constructor takes two arguments. The first argument is the location parameter, and corresponds to the mode of the probability density function. The second argumentis the scale parameter.

The following constructs the same Laplace distribution with location parameter 6.8 and scale parameter 4.1:

C#
var laplace = new LaplaceDistribution(6.8, 4.1);

If a variable is assumed to have a Laplace distribution, then the parameter of the distribution can be estimated using the method of matching moments. The second and third constructors perform this calculation. The first parameter is a Vector<T> whose distribution is to be estimated. The optional second parameter is a EstimationMethod value that specifies the method to be used. The default is the method of matching moments.

Note that parameter estimation says nothing about how well the estimated distribution fits the variable's distribution. Use one of the goodness-of-fit tests to verify the appropriateness of the choice of distribution.

The LaplaceDistribution class has two specific properties, LocationParameter and ScaleParameter, which return the location parameter (mode) and scale parameter of the distribution.

LaplaceDistribution has one static (Shared in Visual Basic) method, Sample, which generates a random sample using a user-supplied uniform random number generator. The second and third parameters are the location and scale parameters of the distribution.

C#
var random = new MersenneTwister();
double sample = LaplaceDistribution.Sample(random, 6.8, 4.1);

The above example uses the MersenneTwister to generate uniform random numbers.

For details of the properties and methods common to all continuous distribution classes, see the topic on continuous distributions.