Dienstag, 29. September 2009

Der Münzwurf, die Random Funktion und Monte Carlo VaR

Mein Bruder hat mir mal die folgende Anekdote erzählt. Eine amerikanische Elitehochschule hatte einen renommierten Magier für einen Gastvortrag eingeladen. Er sollte etwas über sein Geschäft erzählen. Im Vortrag warf er nun eine Münze. Es kam 3x Kopf und dann fragte er ins Plenum, wie wahrscheinlich es sei, dass jetzt wieder Kopf komme.

Jeder Mensch mit stochastischer Vorbildung weiß, dass der Münzwurf ein unabhängiges Zufallsereignis ist und dass es egal ist, wie häufig vorher bereits Kopf gekommen ist. Die Antwort der Studenten war also 50%. Seine Replik darauf: No! It's a trick.

Als ich C an der Uni lernte, hatte ich ein ähnliches Erlebnis. Für eine Übungsaufgabe brauchte ich Zufallszahlen. Ich weiß nicht mehr warum. Ich band also die entsprechende Bibliothek ein und rief den Zufallszahlengenerator auf. In meinen Tests war ich dann schnell verwundert: Es kamen immer dieselben Zahlen.



Mit etwas Recherche kam ich dahinter, dass ich die Random Funktion unterschiedlich seeden konnte, um mein erwünschtes Ergebnis (= unterschiedliche Zahlenfolgen) zu erreichen. Ein paar Semester später, mit theoretischer Informatik und Stochastik bewaffnet, verstand ich dann auch, was passiert war.

Echter Zufall ist etwas, dem man in der Natur im Allgemeinen und im Computer im Speziellen sehr selten begegnet. Das Wesen eines PCs ist ja gerade, dass man ihm genau sagen muss, was er zu tun hat. Mein Theorieprof meinte, dass es echten Zufall nur im subatomaren Bereich gibt bzw. in der Quantenmechanik. Vieles, was wir als Zufall interpretieren, bedingt sich aus der Komplexität der Berechnung bzw. aus der Unfähigkeit die bestimmenden Variablen in ausreichender Güte zu messen. Das ist dann zwar praktisch unvorhersehbar, rein theoretisch ist es das aber nicht.

Statt von Zufallszahlen spricht man besser von Pseudozufallszahlen. Diese müssen nach außen wie Zufallszahlen aussehen, entstanden sind sie aber durch eine deterministische Funktion. Als ich die Random-Funktion von C aufgerufen habe, habe ich ebendies erlebt. C hat eine feste Reihe von Pseudozufallszahlen. Nur durch das Seeden, also das Variieren des Startwerts, beeinflusst man, welche Zufallszahlen man aus der Reihe bekommt.

Im Bankgewerbe findet der "Zufall" an einigen Stellen Verwendung. In meinem Arbeitsalltag wären das Monte Carlo Simulationen zur Bestimmung des Value at Risks. Monte Carlo Simulationen verwendet man, wenn das analytische Bestimmen eines Werts zu schwer ist. Stattdessen berechnet man x-fach den Wert mit unterschiedlichen Zufallszahlen und mittelt die Ergebnisse, in der Hoffnung dem wahren Wert nahe zu kommen.

Beim Value at Risk möchte man wissen, was der mit 99% Wahrscheinlichkeit höchste denkbare Verlust für die Bank in einem kurzen Zeitraum ist (z.B. ein Tag). Man würfelt also 100 mal und nimmt das 99-zig schlechteste Ergebnis. Hier lohnt es sich dann schon über Zufall nachzudenken. Wenn man z.B. den Seed nicht jeden Tag ändert, kann es gut passieren, dass man jeden Tag das gleiche rechnet... Philosophisch frage ich mich, wie gut Monte Carlo Simulationen sind, wenn sie eine Eigenschaft unterstellen, die man nun einmal nicht hat...

Keine Kommentare:

Kommentar veröffentlichen