Kom igångKom igång gratis

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

Visa kurs

Övningsinstruktioner

  • Beräkna 99% VaR med np.quantile() på slumpmässiga urval från distributionerna t och kde.
  • 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)
Redigera och kör kod