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 method
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 F.
- We want to generate values of X which are distributed according to this distribution.
Many programming languages have the ability to generate pseudo-random numbers 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:
- Generate a random number from the standard uniform distribution; call this u.
- Compute the value x such that ; call this xchosen.
- Take xchosen to be the random number drawn from the distribution described by F.
Proof of correctness
Let F be a continuous cumulative distribution function, and let be its inverse function:[1]
Claim: If U is a uniform random variable on then follows the distribution F.
Proof:
- (by the definition of )
- (applying F, which is monotonic, to both sides)
- (because , since U is uniform on the unit interval)