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

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