CVaR och val av förlusttäckning
I tidigare övningar såg du att både T- och Gaussisk KDE-distributionen passar portföljförluster under kristiden relativt väl. Men vilken lämpar sig bäst för riskhantering? Ett sätt att välja är att välja den distribution som ger störst förlusttäckning – för att täcka det "värsta av det värsta" scenariot.
Distributionerna t och kde finns tillgängliga och har anpassats till portföljens losses för 2007–2008 (t-distributionens anpassade parametrar finns i p). Du ska beräkna en-dagsuppskattningen av 99% CVaR för varje distribution. Den högsta CVaR-uppskattningen utgör sedan det 'säkraste' *reservbeloppet att hålla, och täcker förväntade förluster som överstiger 99% VaR.
Instansen kde har tilldelats en särskild .expect()-metod, enbart för den här övningen, för att beräkna det förväntade värde som behövs för CVaR.
Den här övningen är en del av kursen
Kvantitativ riskhantering i Python
Övningsinstruktioner
- Beräkna 99% VaR med
np.quantile()på slumpmässiga urval från distributionernatochkde. - Beräkna integralen som krävs för CVaR-uppskattningarna med metoden
.expect()för respektive distribution. - Beräkna och visa 99% CVaR-uppskattningarna för båda distributionerna.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# Find the VaR as a quantile of random samples from the distributions
VaR_99_T = np.quantile(t.rvs(size=1000, *p), ____)
VaR_99_KDE = np.quantile(kde.resample(size=1000), ____)
# Find the expected tail losses, with lower bounds given by the VaR measures
integral_T = t.____(lambda x: x, args = (p[0],), loc = p[1], scale = p[2], lb = ____)
integral_KDE = kde.____(lambda x: x, lb = ____)
# Create the 99% CVaR estimates
CVaR_99_T = (1 / (1 - ____)) * integral_T
CVaR_99_KDE = (1 / (1 - ____)) * integral_KDE
# Display the results
print("99% CVaR for T: ", CVaR_99_T, "; 99% CVaR for KDE: ", CVaR_99_KDE)