Jump to content

Non-uniform random variate generation

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by SmackBot (talk | contribs) at 13:33, 9 June 2011 (Dated {{Page needed}} x 3{{Citation needed}}. (Build p612)). 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.[citation needed]

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. ^ Ripley (1987) [page needed]
  2. ^ Fishman (1996) [page needed]
  3. ^ Fishman (1996) [page needed]

Literature

  • Devroye, L. (1986) Non-Uniform Random Variate Generation. New York: Springer
  • Fishman, G.S. (1996) Monte Carlo. Concepts, Algorithms, and Applications. New York: Springer
  • Hörmann, W.; J Leydold, G Derflinger (2004)Automatic Nonuniform Random Variate Generation. Berlin: Springer.
  • Knuth, D.E. (1997) The Art of Computer Programming, Vol. 2 Seminumerical Algorithms, Chapter 3.4.1 (3rd edition).
  • Ripley, B.D. (1987) Stochastic Simulation. Wiley.