Simulation von Zufallszahlen • Grundlage: “zufällige” Quelle von

Werbung
Simulation von Zufallszahlen
• Grundlage: “zufällige” Quelle von Zufallszahlen, durch einfachen rekursiven Algorithmus am Computer erzeugt
• Definition:
Eine Folge von Pseudo-Zufallszahlen Ui ist eine deterministische (!) Folge von Zahlen im Intervall
[0, 1] mit den gleichen relevanten Eigenschaften wie
eine Folge von (unabhängigen) Zufallsvariablen.
• In dieser Vorlesung: Ein guter Zufallsgenerator für U (0, 1)
Zufallsvariablen wird vorausgesetzt.
Computerintensive Methoden 2005 – LaMo:
22. Dezember 2005@10:38
1
Der Startwert und andere Eigenschaften
• Der Startwert (engl.“seed”) wird voreingestellt.
• Häufig wird eine modifizierte Uhrzeit verwendet.
• Bei gleichem Startwert kann man also die exakt gleiche
Sequenz von Zufallszahlen erzeugen.
• Funktion set.seed in R
Computerintensive Methoden 2005
2
Simulation von nicht-gleichverteilten Zufallsvariablen
• Prinzip: Gleichverteilte Zufallsvariablen Ui werden entsprechend transformiert und modifiziert, so dass die gewünschte
Verteilung resultiert.
• Einfache Beispiele:
– Bernoulli-Verteilung X ∼ B(π)
if (Ui ≤ π) X = 1
else X = 0
– Exponentialverteilung X ∼ E(λ)
X = − log Ui/λ
Computerintensive Methoden 2005
3
Das Inversionsverfahren
Sei X eine stetige ZV mit Verteilungsfunktion F (x). Dann gilt
F (X) ∼ U(0, 1)
Daher hat X = F −1(U ) die gewünschte Verteilung mit Verteilungsfunktion F (x). Dies gilt auch für verallgemeinerte inverse
Verteilungsfunktionen F −1 (wichtig bei diskreten ZV):
Sei F −1(u) = min{x|F (x) ≥ u}. Falls U ∼ U(0, 1) so gilt
X = F −1(U ) ∼ F
Computerintensive Methoden 2005
4
Beispiele
• Bernoulli-Verteilung X ∼ B(π):
F (x) = I(x ≥ 0) (1 − π + πI(x ≥ 1))
• Exp-Verteilung X ∼ E(λ): F (x) = 1 − exp(−λx), x > 0
• Logistische Verteilung: X ∼ L(a, b)
−1
x−a
F (x) = 1 + exp −
b
• Cauchy Verteilung: F (x) = 0.5 + π1 arctan(x)
Computerintensive Methoden 2005
5
Inversion bei gestutzten Verteilungen
Sei X ∼ F und Y die Verteilung von X, eingeschränkt auf ein
Intervall [a, b]. Dann gilt für die Verteilungsfunktion G von Y :


y<a
 0
F (y)−F (a)
a≤y<b
G(y) =
F
(b)−F
(a)

 1
y≥b
Daher ist Y = F −1(F (a) + U (F (b) − F (a))) eine Zufallszahl
mit Verteilungsfunktion G(y).
Alternativer Ansatz: Einfach alle Zahlen ausserhalb des Intervalls [a, b] verwerfen; kann aber extrem ineffizient sein.
Computerintensive Methoden 2005
6
Grenzen des Inversionsverfahrens
• Häufig ist die inverse Verteilungsfunktion nur schwer oder
sogar nur numerisch berechenbar
• Beispiele: Normalverteilung, Betaverteilung
• → Das Inversionsverfahren wird dann recht langsam sein bzw
nur in (typischerweise sehr guter!) Näherung korrekt
Computerintensive Methoden 2005
7
Rejection sampling
• Im Deutschen: “Verwerfungsmethode”
• Ziel: Zufallszahlen X aus Verteilung mit Dichte fX (x)
• Idee: Ziehe stattdessen Y aus Verteilung mit Dichte fY (y)
• Akzeptiere Y als Zufallszahl aus fX (x) mit Wahrscheinlichkeit
1 fX (Y )
α = α(Y ) =
·
M fY (Y )
wobei M ≥ 1 so gewählt sein muss, dass α(y) ≤ 1 für alle y
Computerintensive Methoden 2005
8
Rejection sampling Algorithmus
REPEAT
• Erzeuge eine Zufallszahl Y aus fY . Y ∼ fY .
• Erzeuge eine von Y unabhängige Zufallszahl U aus einer
Gleichverteilung auf [0, 1]: U ∼ U [0, 1].
• Berechne
fX (Y )
α(Y ) =
M · fY (Y )
UNTIL U ≤ α(Y )
RETURN Y
Computerintensive Methoden 2005
9
Beispiel: Normalverteilung
Rejection sampling aus N (0, 1)-Verteilung über CauchyVerteilung
1 2
1
exp(− x )
fX (x) = √
2
2π
1
1
fY (x) =
·
π 1 + x2
(x)
Man kann relativ leicht zeigen, dass M = sup ffX (x)
=
1, 52.
Computerintensive Methoden 2005
x
Y
q
2π
e
≈
10
Beispiel: Normalverteilung
Die Akzeptanzwahrscheinlichkeit α(Y ) ergibt sich zu
fX (Y )
α(Y ) =
M · fY (Y )
=
√1
2π
exp
q
√
=
Computerintensive Methoden 2005
− 12
y
2
2π 1 1
e π 1+y 2
e
1 2
2
(1 + y ) exp(− y )
2
2
11
0.8
0.6
0.4
0.2
0.0
Akteptanzwahrscheinlichkeit
1.0
Akzeptanzwahrscheinlichkeit
−4
Computerintensive Methoden 2005
−2
0
2
4
12
Simulation von diskreten Verteilungen
• Zunächst nur univariate Verteilungen
• Das Inversionsverfahren ist universell einsetzbar, falls die
Verteilungsfunktion F (xi) für xi ∈ T zugänglich ist, wobei
xi < xj für i < j gelten muss.
Erzeuge U ∼ U(0, 1). Setze i = 1.
WHILE F (xi) ≤ U
i=i+1
RETURN X = xi
• Diverse Modifikationen sind möglich
Computerintensive Methoden 2005
13
Simulation aus einer Multinomialverteilung
X ∼ Mp(n, π) Zwei Möglichkeiten:
• Direkte Simulation über n unabhängige Versuche mit p Ausprägungen und Wahrscheinlichkeitsvektor π
• Sequentielle Simulation aus Binomialverteilung (bedeutend
schneller für n groß!):
f (X) = f (X1)f (X2|X1) · . . . · f (Xp−1|X1, X2, . . . , Xp−2)
Xp ergibt sich dann automatisch wegen
Computerintensive Methoden 2005
P
i Xi
=n
14
Simulation aus einer Normalverteilung
Box-Muller Algorithmus
Erzeuge U1 ∼ U(0, 1) und U2 ∼ U(0, 1)
Berechne
√
T = 2πU1 und R = −2 log U2
und daraus X = R cos T und Y = R sin T
Dann sind X und Y unabhängig standardnormalverteilt
Beweis über Polarkoordinatendarstellung und Transformationssatz für Dichten
Computerintensive Methoden 2005
15
Simulation von stetigen Verteilungen
• . . . ist eine Kunst!
• Implementierte Algorithmen sind kaum zu schlagen.
• Literatur: Devroye, Luc (1986) “Non-Uniform Random Variate Generation”, 850 Seiten!
• In R sind vorhanden: rnorm(), rexp(), rbeta(),
rgamma(), rweibull(), rcauchy(), rt(), rlnorm(),
...
Computerintensive Methoden 2005
16
Herunterladen