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