Given a basic pseudo-random number generator which returns uniformly distributed samplesU from the interval (0, 1) and a statistical distribution as defined by its distribution functionF(x). Then the inversion methodX←F−1(U) produces samples fromF(x). A procedure is developed which prepares “guide tables” in order to facilitate this inversion so that sampling becomes efficient for arbitraryF(x).For discrete distributions these tables are small and easy to set up, and the resulting sampling algorithm compares well with known general methods. Continuous distributions require longer set-up times and more space for tables. These are prepared using given probability densitiesf(x). The method can cope with “reasonable”f(x) including most cases which are commonly encountered in statistics. The reported computational experience, on Poisson, Normal, Gamma and Cauchy distributions, indicates that our general routine is almost as fast as the best known sampling algorithms which were specially designed for these distributions.ZusammenfassungGegeben sei ein Pseudo-Zufallszahlen-Generator, der gleichverteilte StichprobenU aus dem Intervall (0, 1) liefert, und eine statistische Verteilung, beschrieben durch ihre VerteilungsfunktionF(x). Dann erzeugt die InversionsmethodeX←F−1(U) Stichproben vonF(x). Ein Verfahren wird entwickelt, das “Guide”-Tafeln erstellt, mit dem Ziel, diese Inversion zu ermöglichen, so daß das Verfahren für beliebigeF(x) effizient wird.Für diskrete Verteilungen sind diese Tafeln klein und leicht zu erstellen, und der entstehende Stichproben-Algorithmus kann mit bekannten allgemeinen Verfahren gut konkurrieren. Stetige Verteilungen erfordern längere Vorbereitungszeiten und mehr Speicherplatz für die Tafeln. Diese werden mit Hilfe gegebener Wahrscheinlichkeitsdichtenf(x) vorbereitet. Die Methode ist anwendbar auf “vernünftige”f(x), einschließlich der normalerweise in der Statistik vorkommenden Fälle. Aufgrund der angeführten Rechenerfahrung mit Poisson-, Normal-, Gamma- und Cauchy-Verteilungen zeigt sich, daß unser allgemeines Verfahren fast so schnell ist, wie die besten bekannten Methoden, die speziell auf diese Verteilungen zugeschnitten wurden.
[1]
Alastair J. Walker,et al.
An Efficient Method for Generating Discrete Random Variables with General Distributions
,
1977,
TOMS.
[2]
G. Marsaglia.
The squeeze method for generating gamma variates
,
1977
.
[3]
A. C. Atkinson.
Recent Developments in the Computer Generation of Poisson Random Variables
,
1979
.
[4]
Luc Devroye,et al.
The computer generation of poisson random variables
,
1981,
Computing.
[5]
T. A. Bray,et al.
A Convenient Method for Generating Normal Variables
,
1964
.
[6]
Irene A. Stegun,et al.
Handbook of Mathematical Functions.
,
1966
.
[7]
Joachim H. Ahrens,et al.
Computer methods for sampling from gamma, beta, poisson and bionomial distributions
,
1974,
Computing.
[8]
George Marsaglia.
Generating discrete random variables in a computer
,
1963,
CACM.
[9]
J. H. Ahrens,et al.
Extensions of Forsythe’s method for random sampling from the normal distribution
,
1973
.
[10]
Huifen Chen,et al.
On Generating Random Variates from an Empirical Distribution
,
1974
.
[11]
G. S. Fishman.
Principles of Discrete Event Simulation
,
1978
.
[12]
Joachim H. Ahrens,et al.
Computer methods for sampling from the exponential and normal distributions
,
1972,
CACM.