Jump to content

Non-uniform random variate generation

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Marie Poise (talk | contribs) at 20:54, 6 May 2011 (or '''non-uniform pseudo-random variate generation'''). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Pseudo-random number sampling or non-uniform pseudo-random variate generation is the numerical practice of generating pseudo-random numbers that are distributed according to a given probability distribution.

In the following, it is taken for granted that there is a pseudo-random number generator producing numbers X that are uniformly distributed. Different algorithms are then used to transform X into a random variable U(X) that is distributed according to a given distribution f(U).

Historically, basic methods of pseudo-random number sampling were developed for Monte-Carlo simulations in the Manhattan project; they were first published by John von Neumann in the early 1950s.

Finite discrete distributions

For discrete probability distributions with a finite number n of values (at least, a finite number of values having nonzero probability), the basic sampling algorithm is straightforward. The interval [0,1) is divided in n intervals [0,f(1)), [f(1),f(1)+f(2)), ... The width of interval i equals the probability f(i). One draws a uniformly distributed pseudo-random number X, and searches for the index i of the corresponding interval. The so determined i will have the distribution f(i).

Formalizing this idea becomes easier by using the cumulative distribution function

It is convenient to set F(0)=0. The n intervals are then simply [F(0),F(1)), [F(1),F(2)), ..., [F(n-1),F(n)). The main computational task is then to determine i for which F(i-1)≤X<F(i).

This can be done by different algorithms:

Continuous distributions

Generic methods:

For generating a normal distribution:

For generating a Poisson distribution:

Footnotes

  1. ^ see Ripley
  2. ^ Fishman
  3. ^ see Fishman

Literature

  • GS Fishman: Monte Carlo. Concepts, Algorithms, and Applications. New York: Springer (1996).
  • W Hörmann, J Leydold, G Derflinger: Automatic Nonuniform Random Variate Generation. Berlin: Springer (2004).
  • DE Knuth: The Art of Computer Programming, Vol. 2 Seminumerical Algorithms, Chapter 3.4.1 (3rd edition, 1997).
  • BD Ripley: Stochastic Simulation. Whiley (1987).