VaR und Risikoexponierung
Zuvor hast du den VaR und CVaR berechnet, wenn Verluste normalverteilt sind. Hier bestimmst du den VaR mit einer anderen gängigen Verlustverteilung, der Student-t-Verteilung (oder T) aus scipy.stats.
Du berechnest ein Array von 99-%-VaR-Maßen aus der T-Verteilung (mit 30 - 1 = 29 Freiheitsgraden), basierend auf 30‑Tage‑Rollfenstern der Portfolio-losses einer Investmentbank.
Zuerst bestimmst du den Mittelwert und die Standardabweichung jedes Fensters und erstellst eine Liste rolling_parameters. Damit berechnest du dann das 99-%-VaR-Array der Kennzahlen.
Anschließend verwendest du dieses Array, um die Risikoexponierung für ein Portfolio mit einem anfänglichen Wert von 100.000 $ zu visualisieren. Denk daran: Die Risikoexponierung ist die Verlustwahrscheinlichkeit (hier 1 %) multipliziert mit der Verlusthöhe (hier der Verlust gemäß dem 99-%-VaR).
Diese Übung ist Teil des Kurses
Quantitative Risk Management in Python
Anleitung zur Übung
- Importiere die Student-
t-Verteilung ausscipy.stats. - Berechne aus
lossesdie Mittelwert- (mu) und Standardabweichungsvektoren (sigma) für 30‑Tage‑Fenster und speichere sie inrolling_parameters. - Berechne ein Numpy-Array von 99-%-VaR-Maßen
VaR_99mitt.ppf()aus einer Liste von T-Verteilungen unter Verwendung der Elemente vonrolling_parameters. - Berechne und visualisiere die Risikoexponierung, die mit dem
VaR_99-Array verbunden ist.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# Import the Student's t-distribution
from scipy.____ import t
# Create rolling window parameter list
mu = losses.rolling(30).____
sigma = losses.rolling(30).____
rolling_parameters = [(29, mu[i], s) for i,s in enumerate(sigma)]
# Compute the 99% VaR array using the rolling window parameters
VaR_99 = np.array( [ t.ppf(____, *params)
for params in ____ ] )
# Plot the minimum risk exposure over the 2005-2010 time period
plt.plot(losses.index, 0.01 * ____ * 100000)
plt.show()