The Normal Distribution

The normal distribution is the most well-known and most widely used statistical distribution and can be applied to a wide range of phenomena. Some statistical tests require that the data follow a normal distribution.

The normal distribution has two parameters usually denoted by the Greek letters μ and σ. μ is the mean of the distribution and acts as the location parameter. σ is the standard deviation of the distribution and acts as the scale parameter. The probability density function is:

Probability density of the normal distribution.

The normal distribution is also known as the Gaussian distribution.

The normal distribution is implemented by the NormalDistribution class. It has two constructors. The first constructor takes two arguments. The first argument is the mean, which acts as the location parameter. The second argumentis the standard deviation and acts as the scale parameter. The following constructs the normal distribution with mean 6.8 and standard deviation 4.1:

var normal = new NormalDistribution(6.8, 4.1);

If a variable is assumed to have a normal distribution, then the parameters of the distribution can be estimated using the method of maximum likelihood or the method of matching moments. Both methods produce the same results. 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.

NormalDistribution class has one specific property: the StandardDeviation property returns a NormalDistribution object that represents the standard normal distribution with mean 0 and standard deviation 1. The location and scale parameters are given by the Mean and StandardDeviation properties.

NormalDistribution 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.

var random = new MersenneTwister();
double sample = NormalDistribution.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.