Kontinuierliche Verteilungen I
Übersicht
In den nächsten drei Abschnitten des vorliegenden Kapitels
werden wir noch einmal
eine Zusammenstellung der wichtigsten Algorithmen zur Simulation einfacher
zufälliger Veränderlicher geben. Die hier getroffene Auswahl wird sicherlich
nicht erschöpfend sein. Sie soll vielmehr dem Leser einen Eindruck davon
vermitteln, wie vielfältig die Ideen und Methoden sind, und damit den Leser
auch zu eigener Entwicklungsarbeit anregen.
Den Source Code zu allen Algorithmen finden Sie in unsreren Java- Applets.
Zur klareren Bezeichnung der Verteilungen führen wir noch einige
mnemotechnische Abkürzungen ein. So werden wir z.B. eine gleichverteilte
Veränderliche aus dem Zahlenintervall von bis mit
kennzeichnen. Eine normalverteilte Veränderliche
entsprechend mit
. Die Dichtefunktion bzw
Wahrscheinlichkeitsverteilung wird dabei mit einem mnemotechnisch einfachen
Symbol ( = uniform, = normal) gekennzeichnet, die Parameter der
Verteilung in eckigen Klammern angefügt. Eine Zusammenstellung der wichtigsten
kontinuierlichen Verteilungen und ihrer Symbole ist in Tabelle 1 gelistet.
Für die folgenden Erörterungen verweisen wir auf das erste
Applet dieses Kapitels.
Tabelle:
Zusammenstellung der wichtigsten Verteilungen kontnuierlicher
Veränderlicher und ihrer mnemotechnischen Symbole.
Dichtefunktion |
|
Symbol |
Bezeichnung der Verteilung |
|
|
|
|
|
|
|
Gleichverteilung |
|
|
|
Normalverteilung |
|
|
|
Lognormalverteilung |
|
|
|
Exponentialverteilung |
|
|
|
Gammaverteilung |
|
|
|
Erlang- Verteilung |
Um die HTML- Seite nicht zu lang werden zu lassen, haben wir die kontnuierlichen Verteilungen
in zwei Kapitel unterteilt. Im vorliegenden Kapitel werden wir die Normalverteilung, die Exponentialverteilung
und die Gammaverteilung diskutieren, im nächsten Kapitel werden dann alle übrigen Verteilungen
behandelt.
Normalverteilung
Wir beginnen mit der Normalverteilung in der allgemeinen
Form
|
(1) |
Es genügt ersichtlich ein Algorithmus für die sogenannte Standard-
Normalverteilung ,
|
(2) |
da die Transformation
eine zufällige Veränderliche
der allgemeinen Normalverteilung ergibt. Die erzeugende Funktion der
Normalverteilung ist
|
(3) |
sowie die logarithmisch erzeugende Funktion ist
|
(4) |
mit den zwei Momenten
Wir hatten die Normalverteilung und ihre Eigenschaften im Verlaufe dieses
Kursus schon häufig diskutiert. Der breite Anwendungsbereich wird uns auch
noch in den folgenden Kapiteln begegnen.
Die wichtigste Eigenschaft der Normalverteilung folgt aus dem schon mehrfach
erwähnten zentralen Grenzwertsatz. Aus diesem Satz folgt, daß, wenn
irgendwelche unabhängigen zufälligen
Veränderlichen sind, die Summe
im Grenzfall
gegen eine Normalverteilung konvergiert. Auch für endliche
Werte von ist diese Behauptung schon sehr gut erfüllt. Aus dieser
Aussage folgt insbesondere, daß Meßfehler, die sich ja im allgemeinen
aus einer Vielzahl von unabhängigen statistischen und systematischen
Einzelfehlern additiv zusammenstzen, normalverteilt sind. Aus diesem Grunde
gibt man als Maß für einen Meßfehler die einfache Varianz
oder den zweifachen Wert der Varianz an.
Methode der Randverteilungen.
Den Algorithmus mit Hilfe der Methode der Randverteilungen hatten wir bereits
ausführlich im vorigen Abschnitt diskutiert. Es genügt daher die folgende
Zusammenfassung: Erzeuge
, dann sind
zwei unabhängige normalverteilte Veränderliche aus .
Die entsprechende Methode heißt haben wir in dem Applet mit JNormal1 bezeichnet.
Verwerfungsmethode.
Ein sehr einfacher Algorithmus folgt aus der Verwerfungsmethode. Sei
|
(7) |
die auf 1 normierte rechte Hälfte einer Standard- Normalverteilung. Da die
Normalverteilung symmetrisch um Null ist, genügt es, eine
gemäß (7) erzeugte Veränderliche mit einem zufälligen Vorzeichen zu
versehen. Wir setzen
Die Funktion erreicht ihr Maximum an der Stelle ,
die Dichtefunktion ist für auf 1 normiert und ist
, also größer als 1. Einsetzen in den Ausdruck
ergibt die Dichtefunktion (7). Alle Bedingungen der Verwerfungsmethode
sind also erfüllt. Die Erfolgswahrscheinlichkeit ist mit
verhältnismäßig gut. Der Algorithmus lautet dann wie folgt: Erzeuge
und setze
|
(9) |
Falls
|
(10) |
akzeptiere als Veränderliche, sonst beginne von vorne. Wenn
|
(11) |
ersetze durch . ist dann eine Veränderliche aus .
Die Bedingung (10) kann ersetzt werden durch
Mit dieser Feststellung kann man das Verfahren auch in der folgenden Form
formulieren: Erzeuge
und und
setze
|
(12) |
Wenn dann
|
(13) |
akzeptiere als Veränderliche, sonst beginne von vorne. Falls
|
(14) |
ersetze durch . ist dann eine Veränderliche aus .
JNormal2 zeigt das Verfahren in der zweiten Formulierung an Hand
einer Unteroutine.
Approximation mit Hilfe des zentralen Grenzwertsatzes.
Wir hatten früher bereits festgestellt, daß die Summe
von unabhängigen gleichverteilten Zufallszahlen aus dem Intervall
im Grenzwert gegen eine
Normalverteilung mit Mittelwert und Varianz
konvergiert. Wir hatten darüberhinaus festgestellt,
daß man bereits für eine außerordentlich gute Approximation der
Normalverteilung mit erhält. JNormal3 zeigt das Programm
für diesen speziellen Fall. Ersichtlich glänzt dieses Programm durch
seine Schlichtheit hinsichtlich mathematischer Operationen.
Eine weitere Approximation.
Durch numerisches Rechnen kann man sich leicht davon überzeugen, daß
für die Approximation
sehr gut erfüllt ist, sofern
. Wir setzen also
|
(15) |
Die integrale Verteilungsfunktion für diese Approximation erhält man
am einfachsten mit der Substitution . Dieses führt auf
|
(16) |
Mit Hilfe der inversen Transformations- Methode muß die Gleichung
|
(17) |
mit nach aufgelöst werden. Dieses ergibt
|
(18) |
Anschließend wird mit einem zufälligen Vorzeichen versehen.
Diesen Algorithmus zeigt JNormal4.
Die -dimensionale Normalverteilung.
Die allgemeine - dimensionale Normalverteilung.
|
(19) |
kann mit Hilfe der Transformation
auf die
- dimensionale unabhängige Standard- Normalverteilung
|
(20) |
transformiert werden. Es genügt also, Veränderliche
zu erzeugen und zum Vektor
zusammenzufassen. Eine
Programmroutine ist in JNormalN1 gelistet. In dieser Routine verwenden
wir den Algorithmus JNormal1 zur Simulation einer einfachen normalverteilten
Veränderlichen. Dieser Teil kann natürlich durch jeden anderen
besprochenen Algorithmus ersetzt werden.
Die inverse - Methode.
Bei dem soeben beschriebenen Verfahren muß - mal eine eindimensionale
normalverteilte Veränderliche erzeugt werden. Wir diskutieren daher noch ein weiteres Verfahren,
das zwar vom logischen Aufbau komplizierter ist, aber mit wesentlich
weniger mathematischen Operationen auskommt. Wir erinnern in diesem
Zusammenhang an die Definition der - Verteilung: Wenn
, dann ist
die Größe
- verteilt mit Freiheitsgraden,
Diese Vorschrift kann umgekehrt werden. Dazu erzeugen wir zunächst eine
- verteilte Größe . Einen hierzu geeigneten Algorithmus
JChi2 werden wir später diskutieren.
Die Größe ist dann nichts anderes als das Quadrat des Radius
des - dimensionalen Vektors
,
Als nächstes erzeugen wir eine Gleichverteilung von Zufallszahlen auf der
Oberfläche der - dimensionalen Einheitskugel. Diese bezeichnen wir
mit
, sodaß also
Den Vektor der Standard- Normalverteilung erhält man dann aus
Das Verfahren zur Erzeugung einer Gleichverteilung von Zufallszahlen auf der
Oberfläche der Einheitskugel hatten wir im Prinzip bereits
behandelt, zumindest für den Fall und . Wir erzeugen
zunächst eine Gleichverteilung
im Volumen des - dimensionalen Quaders und verwerfen alle Punkte mit
Dieses liefert offensichtlich eine Gleichverteilung im Volumen der
- dimensionalen Kugel. Die Normierung gemäß
führt dann auf eine Gleichverteilung auf der Oberfläche der Kugel.
Das vollständige Verfahren lautet: Erzeuge
und berechne
|
(21) |
Wenn
|
(22) |
akzeptiere , sonst beginne von vorne. Berechne
und
setze
|
(23) |
Erzeuge , berechne und setze
|
(24) |
Der zufällige Vektor
ist dann eine
Veränderliche der - dimensionalen unabhängigen Standard- Normalverteilung.
Das Programm zu diesem Verfahren ist in JNormalN2 gelistet. Die wesentlichen
mathematischen Operationen sind zwei Wurzelausdrücke und die Simulation der
- verteilten Größe . Das Verfahren wäre außerordentlich
schnell, wenn nicht die Verwerfungsbedingung (22) enthalten wäre.
Die Erfolgswahrscheinlichkeit ist beschränkt auf
|
(25) |
Ersichtlich gilt für große :
|
(26) |
Zum Beispiel ist für die Erfolgswahrscheinlichkeit
und für nur
. Die Routine
JNormalN2 ist daher nur für Werte von zwischen 2 und ungefähr 6
schneller als die Routine JNormalN1.
Lognormalverteilung.
Eine aus der allgemeinen Normalverteilung durch die
Transformation
hergeleitete Verteilung ist die Lognormalverteilung :
|
(27) |
Der übliche Algorithmus ist daher: Erzeuge und setze
ist dann eine zufällige Veränderliche aus der Lognormalverteilung
(JLogNormal1).
Die Lognormalverteilung hat vielfache Anwendung in der Ökonomie bei der
Darstellung von Einnahmen und Ausgaben. Erwartungswert und Varianz sind durch
gegeben.
Exponentialverteilung
Zerfall quantenmechanischer Systeme.
Während die Normalverteilung eine zentrale Rolle im Rahmen der mathematischen
Statistik spielt, ist die Exponentialverteilung sicherlich die wichtigste
Verteilung der mikroskopischen Physik, in der Physik also, die mit Hilfe
der Quantenmechanik beschrieben werden muß. Ein in Ruhe befindliches
instabiles quantenmechanisches System (Atom, Kern, Teilchen) wird mit Hilfe
der Wellenfunktion
|
(28) |
beschrieben, wobei die Masse,
die mittlere Lebensdauer
und die Wellenfunktion am Zeitpunkt ist. Die Größe
beschreibt alle anderen, nicht von der Zeit abhängenden Größen
des Systems. Die Wahrscheinlichkeit dafür, daß wir das System am Zeitpunkt
noch unverändert antreffen, ist nach den Grundaxiomen der Quantenmechanik
durch
|
(29) |
gegeben. Einsetzen von aus (28) ergibt
|
(30) |
Wir sehen also, daß die Zerfallswahrscheinlichkeit eines instabilen
quantenmechanisches Systems einer Exponentialverteilung gehorcht.
Die normierte allgemeine Exponentialverteilung
|
(31) |
erhält man aus der Standard- Normalverteilung
|
(32) |
mit Hilfe der Transformation . Wir bezeichnen die
Exponentialverteilung mit dem mnemotechnischen Symbol . Die
erzeugenden und logarithmisch erzeugenden Funktionen sind
Aus der Reihenentwicklung der logarithmisch erzeugenden Funktion,
folgen sofort die Ausdrücke für Erwartungswert und Varianz:
Inverse Transformationsmethode.
Zur Simulation einer Veränderlichen der Standard- Exponentialverteilung
verwendet man fast immer die inverse Transformationsmethode. Das
Verfahren wurde bereits ausgiebig diskutiert. Wir können daher den
Algorithmus sofort anschreiben: Erzeuge und setze
ist dann eine Veränderliche aus . Die Programmroutine
JExponential ist trivial und braucht nicht weiter erläutert zu werden.
Obwohl dieser Algorithmus bestechend einfach ist, sind vielfältige andere
Algorithmen entwickelt worden, u.a. mit Hilfe der Composition- Methode,
der Verwerfungsmethode und der Forsythe- Methode.
Allen diesen Algorithmen gemeinsam ist, daß sie die Berechnung der
Logarithmus- Funktion vermeiden, dafür aber logische Operationen einführen
müssen. Diese Verfahren sind auf den heute zur Verfügung stehenden
Rechnern im Vergleich zu JExponential nicht empfehlenswert, wir haben daher auf eine
weitere Diskussion verzichtet. Die ersten - Prozessoren dagegen, wie zum
Beispiel der legendäre INTEL 8080, waren nur für logische Operationen
und einfache arithmetische Algebra ausgelegt. Hier waren andere Verfahren
durchaus von Wert.
n-dimensionale unabhängige Exponentialverteilung.
Die Simulation der allgemeinen n- dimensionalen Standard- Exponentialverteilung
|
(37) |
erfordert die Berechnung von Logarithmus- Funktionen,
mit
. Für gewisse Werte von kann
hierfür ein schnellerer Algorithmus angewendet werden, den wir im folgenden
herleiten. Das Verfahren beruht auf einer Reduktionsmethode mit nachfolgender
Variablen- Transformation.
Wir erzeugen zunächst gleichverteilte Zufallszahlen
und bilden
Wir behaupten jetzt, daß durch die sogenannte Erlang- Verteilung
,
|
(38) |
beschrieben wird. Zum Beweis bemerken wir, daß die logarithmisch erzeugende
Funktion der Summe von Veränderlichen
der Exponentialfunktion
durch
gegeben ist. Auf Grund der Ergebnisse in Kap.3 ist dieses die
logarithmisch erzeugende Funktion von
Da die
exponentiell verteilt sind, falls
, folgt unsere Behauptung, daß
Als nächstes erzeugen wir weitere Zufallszahlen
und sortieren diese in aufsteigender
Reihenfolge. Diese letzteren Zahlen bezeichnen wir mit
. Weiterhin setzen wir und
. Dann gilt also:
Wir setzen
Wie man zeigen kann (siehe geordntete Statistik in Kap.3), ist der - dimensionale
Vektor
gemäß der Dichtefunktion
verteilt. Da die Zufallszahlen
unabhängig von den
Zufallszahlen
sind, so ist auch
unabhängig von den Veränderlichen
.
Daher ist die gemeinsame Dichtefunktion des Vektors
als Produkt darstellbar:
Mit Hilfe der Transformation
erhalten wir schließlich
also die einfache - dimensionale unabhängige Standard-
Exponentialverteilung.
Zusammengefaßt erhalten wir folgenden Algorithmus: Erzeuge
und bilde
Erzeuge weitere Zufallszahlen
,
sortiere diese in aufsteigender Reihenfolge und bezeichne diese mit
. Setze außerdem und
. Bilde
ist dann ein Vektor der
unabhängigen - dimensionalen Standard- Exponentialverteilung
.
Ersichtlich muß in diesem Verfahren nur einmal der Logarithmus berechnet
werden, im Gegensatz zu Logarithmus- Berechnungen bei der inversen
Transformationsmethode. Demgegenüber stehen doppelt so viele Aufrufe des
Zufallszahlen- Generators und eine zusätzliche Sortierung von
Zahlen. Der letztere Algorithmus erweist sich daher nur für Werte von
zwischen etwa 3 und 6 der inversen Transformationsmethode überlegen.
Programmroutinen sind in JExponentialN1 und JExponentialN2 gelistet.
Gammaverteilung
Vorbemerkung.
Die Verallgemeinerung der Exponentialverteilung und der bereits im vorherigen
Abschnitt behandelten Erlang- Verteilung ist die Gammaverteilung
,
|
(39) |
Ersichtlich genügt es, Algorithmen zur Simulation der Standard- Gammaverteilung
,
|
(40) |
zu diskutieren, da die Transformation eine Veränderliche der
allgemeinen Gammaverteilung liefert. Wie bereits diskutiert, erhalten wir
für die Exponentialverteilung und für
ganzzahliges die Erlang- Verteilung . Die
erzeugende Funktion der Gammverteilung ist
|
(41) |
und die logarithmisch erzeugende Funktion ist
|
(42) |
Erwartungswert und Varianz erhält man am einfachsten aus der Reihenentwicklung
der logarithmisch erzeugenden Funktion
|
(43) |
zu
Reproduktivität der Gammaverteilung.
Die wichtigste Eigenschaft der Gammaverteilung ist ihre Reproduktivität:
Seien und zwei Veränderliche aus Gammaverteilungen mit
Parametern und , d.h.
und
. Dann ist eine
Veränderliche aus der Gammaverteilung
.
Der Beweis ist einfach und erfolgt über die logarithmisch erzeugende
Funktion.
sind die logarithmisch erzeugenden Funktionen von
Nach Kap.3 ist dann, da und unabhängig voneinander sind,
die logarithmisch erzeugende Funktion der Summe der
zwei Veränderlichen und . Hieraus folgt sofort unsere
Behauptung. Wichtig ist offensichtlich, daß der Parameter in
beiden Verteilungen identisch ist.
Die Verallgemeinerung auf Veränderliche
aus den
Gammaverteilungen
,
, ....,
ist trivial und ergibt, daß die Veränderliche
aus
ist.
Reproduktivitäts- Verfahren.
Ein auf der Reproduktivitätseigenschaft basierendes Verfahren soll im folgenden
vorgestellt werden. Wir setzen
wobei
und erzeugen Zufallszahlen
aus der
Exponentialverteilung ,
sowie eine Zufallszahl aus der speziellen Gammaverteilung ,
mit
Auf Grund der Reproduktivität ist dann
eine Veränderliche der Standard- Gammaverteilung
Die Simulation der speziellen Gammaverteilung mit
kann wie folgt durchgeführt werden.
Hierzu führen wir noch die Betaverteilung
ein.
Diese ist allgemein definiert durch
Wir benötigen im folgenden die spezielle Betaverteilung
,
Wegen und ist diese Verteilung ersichtlich nur
für
definiert. Seien also
und
, dann erhalten wir mit Hilfe einer Variablen- Transformation
für die Veränderlichen
die Dichtefunktion
Die Randverteilung in ist
Dieses ist offensichtlich die gesuchte Gammaverteilung .
Wir fassen das Verfahren zusammen: Setze
mit
. Erzeuge
und bilde
Erzeuge
und . Die Veränderliche
ist dann eine Veränderliche aus mit
,
. Das Programmlisting JGamma2 im zweiten
Applet dieses
Kapitels zeigt diesen
Algorithmus. JGamma1 zeigt den einfachen Programmcode für
ganzzahliges . Diese Routine haben wir auch unter dem Namen
JErlang1 hinzugefügt..
Das soeben diskutierte Verfahren erfordert im wesentlichen die Erzeugung
einer Veränderlichen aus der Betaverteilung. Wie wir im nächsten Abschnitt
sehen werden, kann dieses zu erheblichem Rechenzeit- Bedarf führen.
Günstiger sind daher im allgemeinen Methoden, die auf dem
Verwerfungsverfahren beruhen.
Approximation für große .
Für große Werte von bzw kann die Erlang- Verteilung
durch eine Normalverteilung ersetzt werden. Dieses folgt aus der Tatsache,
daß eine Veränderliche der Erlang- Verteilung als Summe von
Veränderlichen der Exponentialverteilung geschrieben werden kann.
Erwartungswert und Varianz der Erlang- Verteilung sind
für große Werte von durch
gegeben. Die Approximation kann also geschrieben werden als
Der Algorithmus lautet: Erzeuge , dann ist
eine Veränderliche der Erlang- Verteilung für große
(). Diese Routine ist unter dem Namen JErlang2
gelistet.
1. Verwerfungsverfahren.
Als erstes betrachten wir ein Verfahren, in dem die Simulation der speziellen
Gammaverteilung
mit Hilfe eines Verwerfungsverfahrens durchgeführt wird. Der Algorithmus
hierzu wurde bereits ausführlich diskutiert.
Wir fassen das Verfahren noch einmal in einer mathematisch etwas abgewandelten
Formulierung zusammen:
1. Berechne und gemäß
2. Erzeuge
und setze
Erzeuge
und berechne
Wenn , fahre fort bei Punkt 3. Ansonsten berechne .
Falls
akzeptiere als Veränderliche der Gammaverteilung ,
sonst wiederhole von Punkt 2.
3. Setze
Wenn
akzeptiere als Veränderliche der Gammaverteilung ,
sonst wiederhole bei Punkt 2. JGamma3 zeigt den Programm- Code.
2. Verwerfungsverfahren.
Das zweite Verwerfungsverfahren beruht auf dem gleichen mathematischen
Formalismus wie die Routine JGam2, nur daß jetzt die Simulation der
Betaverteilung durch ein anderes Verwerfungsverfahren ersetzt wird. Die
Funktionen
wobei, wie bisher,
,
, erfüllen ersichtlich
die Bedingungen der Verwerfungsmethode.
Die Simulation der Dichtefunktion ist einfach und beruht auf der
alternativen Simulation zweier Erlang- Verteilungen und
mit der Wahrscheinlichkeit bzw . Die
Erfolgswahrscheinlickeit konvergiert für große Werte von
bzw gegen 1:
Wegen
für ganzzahliges positives ist für die
Erfolgswahrscheinlichkeit immer gleich 1.
Der Algorithmus lautet:
1. Berechne und gemäß
2. Erzeuge
und setze
Falls
akzeptiere als Veränderliche der Gammaverteilung ,
sonst beginne bei Punkt 2. JGamma4 zeigt den Programmcode.
3. Verwerfungsverfahren.
Ein drittes Verwerfungsverfahren beruht auf den Festsetzungen
und ist nur anwendbar für . Die Erfolgswahrscheinlichkeit
kann für große durch
approximiert werden. Der Algorithmus lautet: Erzeuge
und berechne
Wenn
akzeptiere als Veränderliche von , sonst beginne von vorne.
Hierbei haben wir, wie auch schon in vielen vorherigen Beispielen,
die komplizierte Funktion dadurch vermieden, daß auf beiden Seiten
der Verwerfungsabfrage der Logarithmus gebildet wurde. Auf den meisten
Rechnern ist der Logarithmus und die Exponentialfunktion
eine Standard- Routine, während ein Ausdruck der Form mit Hilfe der
Umformung
berechnet wird, also aus zwei Operationen
besteht. Die Routine JGamma5 zeigt den Algorithmus.
4. Verwerfungsverfahren.
Die nächste Prozedur faktorisiert in der Form
mit
und
.
Die Erfolgswahrscheinlichkeit ist mit
für alle Werte von relativ gut. Die Simulation der Dichtefunktion
beruht auf der inversen Transformationsmethode. Wir transformieren
gemäß
und erhalten die Dichtefunktion der Veränderlichen zu
Die integrale Verteilungsfunktion ist
Mit
ergeben sich die Gleichungen
sowie die Ungleichung
Die letzte Ungleichung zur Verwerfungsabfrage kann vereinfacht werden zu
mit
Damit ergibt sich der Algorithmus: 1. Berechne in einer
Initialisierungsroutine die Größen
2. Erzeuge
und setze
Wenn
akzeptiere als Veränderliche von , sonst beginne von
vorne bei Punkt 2. JGamma6 zeigt das Programmlisting, das aus einem
Initialisierungsteil und dem Generator selbst besteht.
5. Verwerfungsverfahren.
Ein weiteres Verwerfungsverfahren arbeitet mit Hilfe der Cauchy- Verteilung
,
Diese Verteilung ist allgemein auf der gesamten reellen Achse definiert.
Bei Einschränkung des Definitionsbereiches auf muß die Normierung
geändert werden. Man erhält
wobei
die integrale Verteilungsfunktion der Cauchy- Verteilung ist. Mit Hilfe der
inversen Transformationsmethode ergibt sich, daß
eine Veränderliche von ist, wobei, wie immer,
.
Das Verwerfungsverfahren für die Gammaverteilung erhält man
mit den weiteren Festsetzungen
mit
und
.
Der Algorithmus lautet: 1. Berechne in einem externen Programm
2. Erzeuge
und setze
Wenn
akzeptiere als Veränderliche von , sonst beginne von
vorne bei Punkt 2.
Die entsprechende Routine ist JGamma7.
6. Verwerfungsverfahren.
Ein Verwerfungsverfahren für die Gammaverteilung
mit
ist das folgende:
mit
. Ersichtlich kann die Faktorisierung
für und nur für durchgeführt werden. Das
Verfahren ist ähnlich dem 3. Verwerfungsverfahren, nur daß jetzt die
Gammaverteilung
durch die allgemeine Erlang- Verteilung
approximiert wird, anstatt durch die Exponentialverteilung
im 3. Verwerfungsverfahren. Die Mathematik dieses Verfahrens
ist sehr einfach, sodaß wir den Algorithmus sofort hinschreiben können:
1. Berechne und aus
und setze
2. Erzeuge
und setze
Wenn
akzeptiere als Veränderliche von
, sonst beginne
von vorne bei Punkt 2. Das Programm ist in JGamma8 gelistet.
Wir haben die Gamma- Verteilung benutzt, um die vielfältigen Methoden aufzuzeigen.
Die Rechenzeiten für die einzelnen Methoden sind zwar nicht dramatisch verschieden, aber
natürlich schon etwas unterschiedlich. Im nächsten Abschnitt werden wir die Simulation weiterer
kontinuierlicher Verteilungen besprechen.
Harm Fesefeldt
2006-07-11