Inverse transform sampling

This is an old revision of this page, as edited by Michael Hardy (talk | contribs) at 16:39, 7 April 2003 ("Equally likely" doesn't make sense when the probability of any particular point is zero regardless of which continuous distribution it is.). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

The Inverse transform sampling method is a method of sampling a number at random from any probability distribution, given its cumulative distribution function (cdf).

The problem that the Inverse transform sampling method solves is as follows:

  • Let X be a random variable whose distribution can be described by the cdf d(x).
  • We want to generate values of x which are distributed according to this distribution.

Many programming languages have the ability to generate pseudo-randomnumbers which are effectively distributed according to the standard uniform distribution. If a random variable has that distribution, then the probability of its falling within any subinterval (a, b) of the interval from 0 to 1 is just the length b - a of that subinterval.

The Inverse transform sampling method works as follows:

  1. Generate a random number from the standard uniform distribution; call this u.
  2. Compute the value for x which has the associated cdf value u; call this xchosen.
  3. Take xchosen to be the random number drawn from the distribution described by d(x).

The following diagram may help the reader to visualise how the method works:

Sampling using the Inverse transform method

See also

The Rejection sampling method.