Extreme Optimization > User's Guide > Statistics Library > Continuous Probability Distributions > The Gamma Distribution

Extreme Optimization User's Guide

User's Guide

Up: Continuous Probability Distributions Next: The Gumbel Distribution Previous: The F Distribution Contents

The Gamma Distribution

The gamma distribution can be used to model the time until an event occurs a specified number of times. For example, if a system has n-1 backups all with identical exponential distributions, then the time until the original system and all its backups have failed can be modeled using a gamma distribution. From this example, it is obvious that the exponential distribution is a special case of the gamma distribution.

The gamma distribution has a scale parameter and a shape parameter often called the order. These parameters are usually denoted by the Greek letters &952; and &945;. In the above example, the scale parameter &952; corresponds to the mean time to failure of each system, while the shape parameter equals n-1.

The probability density function is:

The gamma distribution may also have a location parameter, which translates the distribution functions up or down the X axis by the specified amount.

If the shape parameter is an integer, and the location parameter is 0, then the distribution is an Erlang distribution. The chi square distribution is also a special case of the gamma distribution, with location parameter 0, scale parameter 2, and the shape parameter equal to the degrees of freedom divided by 2.

The gamma distribution is implemented by the GammaDistribution class. It has five constructors with one to three parameters. The first parameter is always the shape parameter. The second parameter, if present, is the scale parameter. The default value is 1. The third parameter specifies the location, with a default of zero.

The following constructs the same gamma distribution of order 4.2, scale parameter 1 and location parameter 0 using each of the three constructors:

C# CopyCode imageCopy Code
GammaDistribution gamma1 = new GammaDistribution(4.2, 1.0, 0.0);
GammaDistribution gamma2 = new GammaDistribution(4.2, 1.0);
GammaDistribution gamma3 = new GammaDistribution(4.2);
Visual Basic CopyCode imageCopy Code
Dim gamma1 As GammaDistribution = New GammaDistribution(4.2, 1.0, 0.0)
Dim gamma2 As GammaDistribution = New GammaDistribution(4.2, 1.0)
Dim gamma3 As GammaDistribution = New GammaDistribution(4.2)

The GammaDistribution class has three specific properties, ShapeParameter, ScaleParameter, and LocationParameter, which return the shape, scale and location parameters of the distribution.

If a variable is assumed to have a gamma distribution, then the parameter of the distribution can be estimated using the method of maximum likelihood or the method of matching moments. The fourth and fifth constructors perform this calculation. The first parameter is a NumericalVariable 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.

GammaDistribution has one static (Shared in Visual Basic) method, GetRandomVariate, which generates a random variate using a user-supplied uniform random number generator. It has three overloads, that take from 2 to 4 parameters. The first parameter is the random number generator. The second to fourth parameters, if present, have the same meaning as the parameters of the constructor above.

C# CopyCode imageCopy Code
MersenneTwister random = new MersenneTwister();
double variate
variate = GammaDistribution.GetRandomVariate(random, 4.2, 1.0, 0.0);
variate = GammaDistribution.GetRandomVariate(random, 4.2, 1.0);
variate = GammaDistribution.GetRandomVariate(random, 4.2);
Visual Basic CopyCode imageCopy Code
Dim random As MersenneTwister = New MersenneTwister()
Dim variate As Double
variate = GammaDistribution.GetRandomVariate(random, 4.2, 1.0, 0.0)
variate = GammaDistribution.GetRandomVariate(random, 4.2, 1.0)
variate = GammaDistribution.GetRandomVariate(random, 4.2)

The above example uses the Mersenne Twister to generate uniform random numbers.

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

Up: Continuous Probability Distributions Next: The Gumbel Distribution Previous: The F Distribution Contents

Overview
Introduction
Features
Documentation
QuickStart Samples
Sample Applications
Downloads
Get it now!
Download trial version
How to Buy
Information
Resources
Contact Us
Search

"The Extreme Optimization Statistics Library for .NET is a major boon for those doing statistical work in .NET. I strongly recommend this product."
- Marc Brooks

"I have made it my mission to institutionalize the value of good API design.  I strongly believe that this is key to making developers more productive and happy on our platform. It is clear that you value good API design in your work, and take to heart developer productivity and synergy with the .NET framework."
- Brad Abrams,
Lead Program Manager, Microsoft.

This is a partial list of companies who are using our libraries:
ABB Robotics
Allstate
Applied Materials
Arcam
Astra Schedule
Babson College
Canadian Council on Learning
Canyon Associates
Caxton Associates
CECity
Constellation Energy
CreditSights
DeepOcean
Duke University
Dynamotive
Elecsoft
Engelhard Corporation
Epcor
Equipoise Software
Galileo International
GAM UK
Gammex
GlaxoSmithKline
Global Matrix
The Hartford
Infinera Corporation
Intel
JDS Uniphase
LaBranche & Co.
Learning & Skills Council
Jacobs Consultancy
Litman Gregory
Lucas Systems
Malvern Instruments
Medrio
Merck & Co.
Mintera.
Monitor Software
MorningStar
NanoString Technologies
Paletta Invent
Parametric Portfolio Associates
Prosanos
RATA Associates
RiskShield
Ramboll
Standard & Poor's
Strategic Analysis Corporation
Univ. of Alicante
Univ. of South Carolina
vielife
Xerox
US Army