Statistik, Datenanalyse und Simulation

Werbung
Statistik, Datenanalyse und Simulation
Dr. Michael O. Distler
[email protected]
Mainz, 17. Mai 2009
Statistik, Datenanalyse und Simulation
2. Monte Carlo-Methoden
2.1 Zufallszahlen - Warum?
2.2 Zahlendarstellung im Rechner
2.3 Generatoren
2.3.1 Linear kongruente Generatoren (LCG)
2.3.2 Multiplikativ linear kongruente Generatoren
(MLCG)
2.3.3 Kombination mehrerer MLCGs
Statistik, Datenanalyse und Simulation
2.4. Qualität von Generatoren
2.4.1 Spektraltest
Bilde Paare aus benachbarten Zahlen
(xj , xj+1 )
j = 0, 1, . . . , n − 1
Darstellung als Punkte in einem 2dim kartesischen
Koordinatensystem:
a = 3, m = 7 :
1, 3, 2, 6, 4, 5, 1, . . .
(1, 3), (3, 2), (2, 6), (6, 4), (4, 5), (5, 1)
Punkte eines MLCG bilden regelmäßiges Gitter.
Warum? Im Wertebereich 0 ≤ xj < m gibt es m2 Zahlenpaare.
MLCG liefert aber nur m − 1 Zahlenpaare
Statistik, Datenanalyse und Simulation
Beispiele:
Spektraltest
a=3 m=7
6
5
xi+1
4
3
2
1
0
0
1
2
3
xi
4
5
6
Statistik, Datenanalyse und Simulation
Beispiele:
Spektraltest
a=29 m=97
90
80
70
xi+1
60
50
40
30
20
10
0
0
10
20
30
40
50
xi
60
70
80
90
Statistik, Datenanalyse und Simulation
Beispiele:
Spektraltest
a=23 m=97
90
80
70
xi+1
60
50
40
30
20
10
0
0
10
20
30
40
50
xi
60
70
80
90
Statistik, Datenanalyse und Simulation
Beispiele:
Spektraltest
1
a=29 m=97
0.8
xi+1
0.6
0.4
0.2
0
0
0.2
0.4
0.6
0.8
xi
Statistik, Datenanalyse und Simulation
1
Beispiele:
Spektraltest
1
a=23 m=97
0.8
xi+1
0.6
0.4
0.2
0
0
0.2
0.4
0.6
0.8
xi
Statistik, Datenanalyse und Simulation
1
x
Umrechnung auf Gitter 0 ≤ mj < 1.
1
Voll besetztes Gitter hat Linienabstand d = m
Unser Gitter hat bei gleichmäßiger Verteilung bestenfalls:
d ≈ m−1/2
für 2 Dimensionen
Ungleichmäßige Abstände:
d m−1/2
Theoretische Überlegungen liefern obere Grenzen für die
kleinstmöglichen Gitterabstände in t Dimensionen:
dt ≥ dt∗ = ct m−1/t
p
p
p
c2 = 4 3/4, c3 = 6 1/2, c4 = 4 1/2, c5 = 2−0,3
Statistik, Datenanalyse und Simulation
2.4.2 Test auf gleichmäßige Verteilung
Das Intervall [0, 1] wird in k gleiche Unterintervalle der
Länge 1/k unterteilt.
N Zufallszahlen werden erzeugt.
Ni fallen in das Unterintervall i.
k
X
P
(Ni − N/k )2
N
Ni = N, hNi i = k ,
= χ2
N/k
i=1
sollte einer χ2 -Verteilung mit (k − 1) Freiheitsgraden
folgen.
Statistik, Datenanalyse und Simulation
2.4.3 Sequenz-(up-down-)Test
Vergleiche xi und xi+1
1 für xi < xi+1
Erzeuge Bitfolge mit
0 für xi > xi+1
Zähle die Folgen von Nullen und Einser der Länge k : N(k )
N
X
k · N(k ) = N für N + 1 Zufallszahlen
k =1
Für unkorrelierte Zufallszahlen erwartet man:
N(1) = 5N+1
N(2) = 11N−14
N(3) = 19N−47
12
60
360
N(k ) =
(k 2 +3k +1)N−(k 3 +3k 2 −k −4)
(k +3)!/2
0 3 2 13 4 7 6 1 8 11 10 5 12 15 14 9 0
1 0 1
0 1 0 0 1 1
0
0 1
1
0
0 0
1 1 1
1 1
2
2
2
2
3
N(1) = 5 (6,75) N(2) = 4 (2,75) N(3) = 1 (0,58)
Statistik, Datenanalyse und Simulation
2.4.4 Random Walk-Test
Wähle ein kleine Zahl 0 < α 1.
Bilde eine große Zahl von Zufallszahlen und registriere die
Zahl r der Fälle, in denen eine Zufallszahl kleiner α
erscheint.
Man erwartet eine Binomialverteilung für r mit p = α.
Diese Test sollte auch gemacht werden für Zufallszahlen,
die größer als (1 − α) sind.
Statistik, Datenanalyse und Simulation
2.4.5 Lücken-(gap)Test
Wähle zwei Zahlen 0 ≤ α < β ≤ 1.
Erzeuge (r + 1) Zufallszahlen im Intervall [0, 1].
Die Wahrscheinlichkeit, dass die ersten r Zahlen
ausserhalb des Intervalls (α, β) liegen und die (r + 1)ste
innerhalb, sollte sein:
Pr = p (1 − p)r
Statistik, Datenanalyse und Simulation
2.4.6 Collision-Test
Teile das Intervall [0, 1) in d gleiche Segmente.
Teile entsprechend [0, 1)t in k = d t Hyperkuben.
Erzeuge n zufällige Punkte in [0, 1)t .
Wir definieren eine neue Zufallsvariable C, in dem wir
zählen, wie oft wir eine Zahl in eine Hyperkubus füllen, der
schon besetzt ist.
Wir erwarten für C eine Poisson-Verteilung um den
Mittelwert:
n2
(k groß)
λC =
2k
Statistik, Datenanalyse und Simulation
2.4.7 Birthday-Spacing-Test
Teile den Wertebereich in k gleich Intervalle (Hyperkuben).
Definiere eine Ordnungsfunktion für die Zellen, damit für
die gefüllten Zellen gilt: I(1) ≤ I(2) ≤ . . . ≤ I(n)
Definiere den Abstand Sj = I(j+1) − I(j)
j = 1, . . . , n − 1.
Die neue Zufallsvariable Y zählt die Fälle (Kollisionen), für
die gilt: S(j+1) = S(j) .
Wir erwarten für Y eine Poisson-Verteilung um den
Mittelwert:
n3
(k groß)
λY =
4k
Der Name stammt von dem Geburtstagsparadoxon
(n Personen, das Jahr hat k Tage).
http://www.iro.umontreal.ca/~lecuyer/myftp/
papers/wsc01rng.pdf
Statistik, Datenanalyse und Simulation
Herunterladen