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