Grundlagen der Monte-Carlo-Simulation Prof. Dr. V. Schmidt und S. Luck j 8. November 2007
page 2 Contents Motivation Erzeugung von SPZZ Software Transformation von SPZZ
page 3 Motivation Motivation fur Monte-Carlo-Simulation I Ziel: Analyse stochastischer Modelle, die zu komplex sind, um ihr Verhalten analytisch studieren zu konnen.
page 3 Motivation Motivation fur Monte-Carlo-Simulation I Ziel: Analyse stochastischer Modelle, die zu komplex sind, um ihr Verhalten analytisch studieren zu konnen. I praktische Relevanz: I Ersatz aufwendiger und teurer Laborexperimente bzw. Erhebung von Realdaten I Erhebung groer Datenmengen mit wenig Aufwand I Analyse von Systemen, die experimentell nicht beobachtbar sind
page 3 Motivation Motivation fur Monte-Carlo-Simulation I Ziel: Analyse stochastischer Modelle, die zu komplex sind, um ihr Verhalten analytisch studieren zu konnen. I praktische Relevanz: I Ersatz aufwendiger und teurer Laborexperimente bzw. Erhebung von Realdaten I Erhebung groer Datenmengen mit wenig Aufwand I Analyse von Systemen, die experimentell nicht beobachtbar sind I ) Prinzipielle Aufgabenstellung: Entwicklung von Simulationsalgorithmen zur Erzeugung von Realisierungen stochastischer Modelle: I Zufallsvariablen I zufallige geometrische Objekte I stochastische Prozesse in zeitlicher und/oder raumlicher Dimension
page 4 Motivation Klassen von Algorithmen I Grundlage der Monte-Carlo-Simulation: Zufallszahlengeneratoren I Erzeugung von Standard-Pseudo-Zufallszahlen (SPZZ). I SPZZ: Folgen von Zahlen die als Realisierungen von iid U((0; 1]) Zufallsvariablen betrachtet werden konnen.
page 4 Motivation Klassen von Algorithmen I Grundlage der Monte-Carlo-Simulation: Zufallszahlengeneratoren I Erzeugung von Standard-Pseudo-Zufallszahlen (SPZZ). I SPZZ: Folgen von Zahlen die als Realisierungen von iid U((0; 1]) Zufallsvariablen betrachtet werden konnen. I Transformationsalgorithmen: I Transformiere SPZZ so, dass sie als Realisierungen einer Folge komplexer verteilter ZV betrachtet werden konnen. I wichtige Teilklasse: Akzeptanz- und Verwefungsmethoden
page 4 Motivation Klassen von Algorithmen I Grundlage der Monte-Carlo-Simulation: Zufallszahlengeneratoren I Erzeugung von Standard-Pseudo-Zufallszahlen (SPZZ). I SPZZ: Folgen von Zahlen die als Realisierungen von iid U((0; 1]) Zufallsvariablen betrachtet werden konnen. I Transformationsalgorithmen: I Transformiere SPZZ so, dass sie als Realisierungen einer Folge komplexer verteilter ZV betrachtet werden konnen. I wichtige Teilklasse: Akzeptanz- und Verwefungsmethoden I Markov-Chain-Monte-Carlo Algorithmen: I Konstruktion von Markovketten, deren ergodische Grenzverteilung der zu simulierenden Verteilung entspricht. I Grundidee: starte eine solche Markovkette und lasse sie lange genug laufen, um "in die Nahe" der Grenzverteilung zu gelangen. I Anwendungen: u.a. Simulation von Punktprozessen und anderer komplexer stochastischer Objekte.
page 5 Erzeugung von SPZZ Lineare Kongruenzgeneratoren (LKG) I LKG: Algorithmus zur Generierung von Folgen u 1 ; : : : ; u n von Zahlen u i 2 ([0; 1)), die als Realisierungen der unabhangig U([0; 1))-verteilten ZV U 1 ; : : : ; U n betrachtet werden konnen.
page 5 Erzeugung von SPZZ Lineare Kongruenzgeneratoren (LKG) I LKG: Algorithmus zur Generierung von Folgen u 1 ; : : : ; u n von Zahlen u i 2 ([0; 1)), die als Realisierungen der unabhangig U([0; 1))-verteilten ZV U 1 ; : : : ; U n betrachtet werden konnen. I Algorithmus: Deniere I einen Modulus m 2 IN, I einen Keim z0 2 f0; : : : m 1g, I einen Faktor a 2 f0; : : : ; m 1g I ein Inkrement c 2 f0; : : : ; m 1g. Setze rekursiv z k = (az k 1 + c)modm 8k = 1; : : : ; n Erzeuge die SPZZ u k vermoge u k = z k m :
page 6 Erzeugung von SPZZ Bemerkungen I Ein LKG mit Modulus m generiert hochstens m verschiedene SPZZ. Falls z k+m0 = z k fur ein m 0 > 0 ) z k+j = z k+m0+j 8j 0.
page 6 Erzeugung von SPZZ Bemerkungen I Ein LKG mit Modulus m generiert hochstens m verschiedene SPZZ. Falls z k+m0 = z k fur ein m 0 > 0 ) z k+j = z k+m0+j 8j 0. I Ungunstige Parameterwahl ) kurze Periode m 0. Bsp.: a = c = z 0 = 5, m = 10 erzeugt die Folge 5; 0; 5; 0; : : :.
page 6 Erzeugung von SPZZ Bemerkungen I Ein LKG mit Modulus m generiert hochstens m verschiedene SPZZ. Falls z k+m0 = z k fur ein m 0 > 0 ) z k+j = z k+m0+j 8j 0. I Ungunstige Parameterwahl ) kurze Periode m 0. Bsp.: a = c = z 0 = 5, m = 10 erzeugt die Folge 5; 0; 5; 0; : : :. I Theorem (Bedingung fur maximale Periodenlange) Der LKG hat genau dann volle Periode, wenn folgende drei Bedingungen gelten: I c und m haben keine gemeinsamen Primfaktoren. I a 1 ist durch alle Primfaktoren von m teilbar. I Falls m ein Vielfaches von 4 ist, dann ist auch a 1 ein Vielfaches von 4.
page 6 Erzeugung von SPZZ Bemerkungen I Ein LKG mit Modulus m generiert hochstens m verschiedene SPZZ. Falls z k+m0 = z k fur ein m 0 > 0 ) z k+j = z k+m0+j 8j 0. I Ungunstige Parameterwahl ) kurze Periode m 0. Bsp.: a = c = z 0 = 5, m = 10 erzeugt die Folge 5; 0; 5; 0; : : :. I Theorem (Bedingung fur maximale Periodenlange) Der LKG hat genau dann volle Periode, wenn folgende drei Bedingungen gelten: I c und m haben keine gemeinsamen Primfaktoren. I a 1 ist durch alle Primfaktoren von m teilbar. I Falls m ein Vielfaches von 4 ist, dann ist auch a 1 ein Vielfaches von 4. I Statistische Tests fur die Gute von SPZZ siehe Statistik I und II 2 -Anpassungstest etc.
page 6 Erzeugung von SPZZ Bemerkungen I Ein LKG mit Modulus m generiert hochstens m verschiedene SPZZ. Falls z k+m0 = z k fur ein m 0 > 0 ) z k+j = z k+m0+j 8j 0. I Ungunstige Parameterwahl ) kurze Periode m 0. Bsp.: a = c = z 0 = 5, m = 10 erzeugt die Folge 5; 0; 5; 0; : : :. I Theorem (Bedingung fur maximale Periodenlange) Der LKG hat genau dann volle Periode, wenn folgende drei Bedingungen gelten: I c und m haben keine gemeinsamen Primfaktoren. I a 1 ist durch alle Primfaktoren von m teilbar. I Falls m ein Vielfaches von 4 ist, dann ist auch a 1 ein Vielfaches von 4. I Statistische Tests fur die Gute von SPZZ siehe Statistik I und II 2 -Anpassungstest etc. I weitere wunschenswerte Eigenschaft fur SPZZ u 1 ; : : : ; u n : Paare aufeinanderfolgender SPZZ (u i ; u i+1 ) sollten gleichmaig auf [0; 1) 2 verteilt sein ( Unabhangigkeit). Analoges fur Tripel etc. Das kann beim LKG ziemlich schiefgehen...
page 7 Erzeugung von SPZZ Punktmuster fur Paare (u i ; u i+1 ) aufeinanderfolgender SPZZ fur m = 256 Quelle: Vorlesungsmanuskript von H. Kunsch (ftp://stat.ethz.ch/u/kuensch/skript-sim.ps)
page 8 Erzeugung von SPZZ Fazit I LKGs sind einfach zu implementierende und schnelle Algorithmen
page 8 Erzeugung von SPZZ Fazit I LKGs sind einfach zu implementierende und schnelle Algorithmen I LKGs sind u.a. wegen ihrer linearen Abhangigkeiten nicht geeignet fur I sensible MC-Simulationen, I kryptographische Zwecke.
page 8 Erzeugung von SPZZ Fazit I LKGs sind einfach zu implementierende und schnelle Algorithmen I LKGs sind u.a. wegen ihrer linearen Abhangigkeiten nicht geeignet fur I sensible MC-Simulationen, I kryptographische Zwecke. I andere SPZZ-Generatoren: I Nichtlineaere Kongruenzgeneratoren I Schieberegistergeneratoren I Fibonacci-Generatoren I Mersenne-Twister (schneller Algorithmus, statistisch sehr gute SPZZ, in Reinform nicht fur kryptographische Zwecke geeignet) I Blum-Blum-Shub (fur kryptographische Anwendungen)
page 9 Software Java I Klasse java.util.random: I LKG mit 48-bit Keim I Keim im Default-Fall: Systemzeit in Millisekunden zur Zeit der Initialisierung des Random-Objektes
page 9 Software Java I Klasse java.util.random: I LKG mit 48-bit Keim I Keim im Default-Fall: Systemzeit in Millisekunden zur Zeit der Initialisierung des Random-Objektes I Beispiele fur Methoden: nextdouble() erzeugt eine SPZZ in (0; 1), nextgaussian() erzeugt eine N(0; 1)-verteilte PZZ.
page 9 Software Java I Klasse java.util.random: I LKG mit 48-bit Keim I Keim im Default-Fall: Systemzeit in Millisekunden zur Zeit der Initialisierung des Random-Objektes I Beispiele fur Methoden: nextdouble() erzeugt eine SPZZ in (0; 1), nextgaussian() erzeugt eine N(0; 1)-verteilte PZZ. I Vorsicht! I Bei zeitnaher Erzeugung mehrerer Objekte vom Typ Random haben diese evtl. den gleichen Keim. I ) Alle Objekte liefern die gleiche Folge von PZZ. I Losung: Fur die zeitnahe Erzeugung von PZZ nur ein Random-Objekt anlegen und aus diesem alle PZZ generieren.
page 9 Software Java I Klasse java.util.random: I LKG mit 48-bit Keim I Keim im Default-Fall: Systemzeit in Millisekunden zur Zeit der Initialisierung des Random-Objektes I Beispiele fur Methoden: nextdouble() erzeugt eine SPZZ in (0; 1), nextgaussian() erzeugt eine N(0; 1)-verteilte PZZ. I Vorsicht! I Bei zeitnaher Erzeugung mehrerer Objekte vom Typ Random haben diese evtl. den gleichen Keim. I ) Alle Objekte liefern die gleiche Folge von PZZ. I Losung: Fur die zeitnahe Erzeugung von PZZ nur ein Random-Objekt anlegen und aus diesem alle PZZ generieren. I Klasse java.security.securerandom: I PZZ-Generator fur kryptographische Anwendungen I ahnliche Methoden wie java.util.random aber bessere PZZ
page 10 Software R I Standard ZZ-Generator: Mersenne-Twister
page 10 Software R I Standard ZZ-Generator: Mersenne-Twister I k SPZZ ("Realisierungen" von k unabh. U((0; 1))-verteilten ZV) erhalt man mittels runif(k)
page 10 Software R I Standard ZZ-Generator: Mersenne-Twister I k SPZZ ("Realisierungen" von k unabh. U((0; 1))-verteilten ZV) erhalt man mittels runif(k) I k standardnormalverteilte PZZ erhalt man mittels rnorm(k)
page 10 Software R I Standard ZZ-Generator: Mersenne-Twister I k SPZZ ("Realisierungen" von k unabh. U((0; 1))-verteilten ZV) erhalt man mittels runif(k) I k standardnormalverteilte PZZ erhalt man mittels rnorm(k) I Zur Anderung des ZZ-Generators siehe Hilfe zu "RNG".
page 11 Transformation von SPZZ Transformation von SPZZ I Bisher: Erzeugung von Standard-Pseudo-Zufallszahlen (SPZZ) ) SPZZ konnen als Realisierungen von unabhangig U([0; 1))-verteilten ZV aufgefasst werden.
page 11 Transformation von SPZZ Transformation von SPZZ I Bisher: Erzeugung von Standard-Pseudo-Zufallszahlen (SPZZ) ) SPZZ konnen als Realisierungen von unabhangig U([0; 1))-verteilten ZV aufgefasst werden. I Ziel: Methoden fur die Transformation von SPZZ ) transformierte Zahlenfolge soll als Realisierungen unabhangiger ZV einer anderen Verteilung betrachtet werden konnen, z.b. I Exp() I Poi() I Bin(n; p) I N(; )
page 12 Transformation von SPZZ Inversionsmethode I Denition: Sei F : IR! [0; 1] eine beliebige Verteilungsfunktion, d.h. F ist I rechtsstetig, I monoton wachsend, I limx! 1 F (x) = 0 und lim x!1 F (x) = 1. Dann heisst F 1 : (0; 1]! IR [ f1g F 1 (y) = inffx : F (x) yg die verallgemeinerte Inverse von F.
page 12 Transformation von SPZZ Inversionsmethode I Denition: Sei F : IR! [0; 1] eine beliebige Verteilungsfunktion, d.h. F ist I rechtsstetig, I monoton wachsend, I limx! 1 F (x) = 0 und lim x!1 F (x) = 1. Dann heisst F 1 : (0; 1]! IR [ f1g F 1 (y) = inffx : F (x) yg die verallgemeinerte Inverse von F. I Im Falle der Invertierbarkeit von F ist F 1 die normale Inverse.
page 12 Transformation von SPZZ Inversionsmethode I Denition: Sei F : IR! [0; 1] eine beliebige Verteilungsfunktion, d.h. F ist I rechtsstetig, I monoton wachsend, I limx! 1 F (x) = 0 und lim x!1 F (x) = 1. Dann heisst F 1 : (0; 1]! IR [ f1g F 1 (y) = inffx : F (x) yg die verallgemeinerte Inverse von F. I Im Falle der Invertierbarkeit von F ist F 1 die normale Inverse. I Theorem: Seien U1 ; U 2 ; : : : U([0; 1)) unabhangig. Sei F eine Verteilungsfunktion. Dann sind die ZV X i = F 1 (U i ); i 2 IN unabhangig mit Verteilungsfunktion F.
page 12 Transformation von SPZZ Inversionsmethode I Denition: Sei F : IR! [0; 1] eine beliebige Verteilungsfunktion, d.h. F ist I rechtsstetig, I monoton wachsend, I limx! 1 F (x) = 0 und lim x!1 F (x) = 1. Dann heisst F 1 : (0; 1]! IR [ f1g F 1 (y) = inffx : F (x) yg die verallgemeinerte Inverse von F. I Im Falle der Invertierbarkeit von F ist F 1 die normale Inverse. I Theorem: Seien U1 ; U 2 ; : : : U([0; 1)) unabhangig. Sei F eine Verteilungsfunktion. Dann sind die ZV X i = F 1 (U i ); i 2 IN unabhangig mit Verteilungsfunktion F. I Direkte Anwendung des Theorems erfordert analytische Formel fur F 1 ) nur selten moglich.
page 13 Transformation von SPZZ Beispiele: Exponentialverteilung mit Parameter I F (x) = (1 e x )1l fx0g
page 13 Transformation von SPZZ Beispiele: Exponentialverteilung mit Parameter I F (x) = (1 e I ) F 1 (u) = x )1l fx0g log(1 u) 8u 2 [0; 1)
page 13 Transformation von SPZZ Beispiele: Exponentialverteilung mit Parameter I F (x) = (1 e x )1l fx0g I ) F 1 log(1 u) (u) = 8u 2 [0; 1) I Weil U U(0; 1] ) 1 U U(0; 1]: Wenn u 1 ; : : : ; u n als Realisierungen von unabh. U([0; 1))-ZV betrachtet werden konnen, dann konnen x i = log u i ; i = 1; : : : ; n als Realsierungen von unabh. Exp()-verteilten ZV aufgefasst werden.
page 14 Transformation von SPZZ Beispiele: Erlangverteilung I Erlang-Verteilung: (; r)-verteilung, > 0, r 2 IN
page 14 Transformation von SPZZ Beispiele: Erlangverteilung I Erlang-Verteilung: (; r)-verteilung, > 0, r 2 IN I F (x) = R x 0 e v (v ) r 1 (r 1)! dv1l fx0g
page 14 Transformation von SPZZ Beispiele: Erlangverteilung I Erlang-Verteilung: (; r)-verteilung, > 0, r 2 IN R I x e F (x) = v (v ) r 1 dv1l 0 (r 1)! fx0g I ) keine analytische Formel fur F 1
page 14 Transformation von SPZZ Beispiele: Erlangverteilung I Erlang-Verteilung: (; r)-verteilung, > 0, r 2 IN R I x e F (x) = v (v ) r 1 dv1l 0 (r 1)! fx0g I ) keine analytische Formel fur F 1 I Losung: P X 1 ; : : : ; X r unabh. Exp()-verteilt r ) i=1 X i (; r).
page 14 Transformation von SPZZ Beispiele: Erlangverteilung I Erlang-Verteilung: (; r)-verteilung, > 0, r 2 IN R I x e F (x) = v (v ) r 1 dv1l 0 (r 1)! fx0g I ) keine analytische Formel fur F 1 I Losung: X 1 ; : : : ; X r unabh. Exp()-verteilt P r ) i=1 X i (; r). I Algorithmus: I Generiere rn SPZZ u1 : : : ; u rn I Deniere yi = ( log(u r(i 1)+1 ) + : : : + log(u ri ) ) I Dann konnen y1 : : : ; y n als Realisierungen unabh. Erlang-verteilter ZV betrachtet werden
page 15 Transformation von SPZZ Simulation N(; 2 )-verteilter ZV: Box-Muller-Algorithmus I Lemma: Seien U1 ; U 2 unabh. U([0; 1))-verteilte ZV. Dann sind die ZV Y 1 = p 2 log U 1 cos(2u 2 ) und Y 1 = p 2 log U 1 sin(2u 2 ) unabh. und N(0; 1)-verteilt. Beweis: Ubungsaufgabe
page 15 Transformation von SPZZ Simulation N(; 2 )-verteilter ZV: Box-Muller-Algorithmus I Lemma: Seien U1 ; U 2 unabh. U([0; 1))-verteilte ZV. Dann sind die ZV Y 1 = p 2 log U 1 cos(2u 2 ) und Y 1 = p 2 log U 1 sin(2u 2 ) unabh. und N(0; 1)-verteilt. Beweis: Ubungsaufgabe I Algorithmus: I Erzeuge 2n SPZZ u1; : : : ; u 2n. I Deniere y 2k 1 = p 2 log u 2k 1 cos(2u 2k ) und y 2k = p 2 log u 2k 1 sin(2u 2k ) I Fur 2 IR, > 0 konnen y 0 1 = 1 + ; : : : ; y 0 2 = n + als Realisierungen unabh. N(; 2 )-verteilter ZV betrachtet werden.
page 16 Transformation von SPZZ Simulation diskreter Verteilungen: generelle Methode I Ziel: Erzeuge PZZ x1 : : : ; x n, die als Realisierungen unabh. diskreter ZV X 1 ; : : : ; X n :! fa 0 ; a 1 ; : : :g IR betrachtet werden konnen.
page 16 Transformation von SPZZ Simulation diskreter Verteilungen: generelle Methode I Ziel: Erzeuge PZZ x1 : : : ; x n, die als Realisierungen unabh. diskreter ZV X 1 ; : : : ; X n :! fa 0 ; a 1 ; : : :g IR betrachtet werden konnen. I Deniere p j = P(X i = a j ).
page 16 Transformation von SPZZ Simulation diskreter Verteilungen: generelle Methode I Ziel: Erzeuge PZZ x1 : : : ; x n, die als Realisierungen unabh. diskreter ZV X 1 ; : : : ; X n :! fa 0 ; a 1 ; : : :g IR betrachtet werden konnen. I Deniere p j = P(X i = a j ). I Wenn U U([0; 1)), dann gilt fur X := 8 >< >: a 0 ; wenn U < p 0 a 1 ; wenn p 0 U < p 0 + p 1. a j ; wenn p 0 + : : : + p j 1 U < p 0 + : : : + p j. P(X = a j ) = p j
page 17 Transformation von SPZZ Simulation diskreter Verteilungen: generelle Methode Algorithmus: I Erzeuge SPZZ u 1 : : : ; u n. I Deniere x i = 1X j=0 a j 1l [ Pj 1 k=0 p k ;Pj k=0 p k ) (u i ); i = 1; : : : ; n: I Dann konnen x 1 ; : : : ; x n Realsierungen einer Folge unabh. ZV der durch p 0 ; p 1 : : : denierten Verteilung betrachtet werden.
page 18 Transformation von SPZZ Poisson-Verteilung I Lemma: Seien X1 ; X 2 ; : : : unabh. und Exp()-verteilte ZV. Dann gilt Y = maxfk 0 : X 1 + : : : + X k 1g Poi(): Beweis: Ubungsaufgabe
page 18 Transformation von SPZZ Poisson-Verteilung I Lemma: Seien X1 ; X 2 ; : : : unabh. und Exp()-verteilte ZV. Dann gilt Y = maxfk 0 : X 1 + : : : + X k 1g Poi(): Beweis: Ubungsaufgabe I Algorithmus: I Seien u1; u 2; : : : SPZZ. I Setze y0 = 0 und fur i > 0 y i = maxfk 0 : log u 1 + : : : + log u k ig y i 1. Dann kann y 1 ; y 2 ; : : : als Folge von Realisierungen unabh. Poi()-verteilter ZV betrachtet werden.
page 19 Transformation von SPZZ Literatur Diese Prasentation basiert auf einem Teil des Skriptes "Markov Chains and Monte-Carlo Simulation" von Prof. Dr. Volker Schmidt, Universitat Ulm, Juli 2006.