Lognormal Distribution

The lognormal distribution is used to model variables whose logarithm has a normal distribution. More generally, the lognormal distribution can be applied to variables that are positive and have some very large values. Examples of variables that can be modeled with a lognormal distribution include:

  • the concentration of air pollutants;

  • the down time of faulty equipment;

  • the concentration of minerals in deposits.

The lognormal distribution is closely related to the normal distribution. The logarithm of a variable with a lognormal distribution has a normal distribution. We will refer to this transformed distribution as the associated normal distribution in the rest of this section.

The lognormal distribution has a location parameter and a scale parameter, usually denoted by the Greek letters μ and σ. They correspond to the mean and the standard deviation of the associated normal distribution. The probability density function is:

$$f(x) = \frac{1}{x\sigma\sqrt{2\pi}}e^{-(\ln x-\mu)^2/2\sigma^2}$$

The lognormal distribution is implemented by the LognormalDistribution class. It has two constructors. The first constructor takes two arguments. The first argument is the location parameter, and corresponds to the mean of the associated normal distribution. The second argument is the scale parameter and corresponds to the standard deviation of the associated normal distribution.

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

C#
var lognormal = new LognormalDistribution(6.8, 4.1);

The LognormalDistribution class has two specific properties, LocationParameter and ScaleParameter, which return the location and scale parameters of the distribution.

If a variable is assumed to have a lognormal distribution, then the order and scale parameters of the distribution can be estimated using the method of maximum likelihood or the method of matching moments. This is done by estimating the parameters of the normal distribution for a logarithmic transformation of the variable. The second constructor performs this calculation. It takes one argument: a Vector<T> whose distribution is to be estimated.

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.

LognormalDistribution 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 Pcg32();
double sample = LognormalDistribution.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.