Von unabhängigem Rauschen zu korrelierten Anlagen
Ein Zufallszahlengenerator liefert unabhängige Ziehungen. Anlagen sind korreliert, eine Portfoliosimulation braucht also Ziehungen mit der richtigen Kovarianzmatrix Σ. Die Cholesky-Zerlegung findet eine untere Dreiecksmatrix L mit LLᵀ=Σ; ist dann z ein Vektor unabhängiger Standardnormalen, hat Lz genau die Kovarianz L I Lᵀ=Σ. In NumPy kommen die Ziehungen als Zeilen, man berechnet also z @ L.T für ein Array z der Form (n, d). scipy.linalg.cholesky(cov, lower=True) führt die Zerlegung aus und löst einen Fehler aus, wenn die Matrix nicht positiv definit ist, was nützlich ist: Es ist der Alarm, dass Ihre Kovarianzmatrix ein Problem hat. Mit np.random.default_rng(seed) initialisiert, ist das Experiment wiederholbar.
Mit dem Simulator lassen sich Risikozahlen berechnen. Die simulierte Portfoliorendite jeder Ziehung ist draws @ w, und der Ein-Tages-Value-at-Risk zum Niveau α ist minus das α-Quantil dieser Renditen (np.quantile). Bei normalen Ziehungen muss er mit der Varianz-Kovarianz-Formel -(wᵀμ+z_α√(wᵀΣw)) übereinstimmen, und bei zwölf Anlagen tut er das: 2,07% per Simulation und 2,08% per Formel, gegen 2,33% per Historie, weil echte Renditen dickere Ränder haben als jedes Normalmodell. Geschätzte Kovarianzmatrizen können auch scheitern: Setzt man die Korrelation zweier Anlagen auf unmögliche 1,2, wird der kleinste Eigenwert negativ (etwa -6×10⁻⁵), und Cholesky lehnt die Matrix ab. Die Standardreparatur nutzt scipy.linalg.eigh: jeden Eigenwert unter einer kleinen Untergrenze auf diese anheben, die Matrix neu aufbauen und symmetrisieren. Das Ergebnis ist positiv definit und weicht vom Original nur um etwa 3×10⁻⁵ ab.
- Cholesky macht aus Rauschen Korrelation:
z @ L.That die Kovarianzcov, wenncov = L @ L.T. - Simulation und Formel sollten bei normalen Ziehungen übereinstimmen: Die Lücke zur Historie sind die Kosten dicker Ränder.
- Eine gescheiterte Zerlegung ist eine Information: Eine nicht positiv definite Matrix repariert man, indem man ihre kleinen oder negativen Eigenwerte anhebt.
Lab: Was bewertet wird
- Der Cholesky-Faktor10 Pkt.
- Korrelierte Ziehungen20 Pkt.
- Monte-Carlo-Value-at-Risk25 Pkt.
- Der parametrische Value-at-Risk15 Pkt.
- Eine Kovarianzmatrix reparieren15 Pkt.
- Die Zwölf-Anlagen-Studie15 Pkt.