CVaR a výběr krytí ztrát
V předchozích cvičeních jsi viděl/a, že distribuce T i Gaussovo KDE celkem dobře popisují ztráty portfolia v období krize. Která z nich je ale lepší volbou pro řízení rizik? Jednou z možností je vybrat tu distribuci, která poskytuje největší krytí ztrát – tedy pokrytí „nejhoršího možného scénáře".
Distribuce t a kde jsou k dispozici a byly napasovány na ztráty portfolia losses z let 2007–2008 (parametry napasované distribuce t jsou uloženy v p). Odvoď jednodenní odhad 99% CVaR pro každou distribuci; největší odhad CVaR pak představuje „nejbezpečnější" výši rezervy, která pokrývá očekávané ztráty přesahující 99% VaR.
Instance kde má pro toto cvičení speciálně přidanou metodu .expect(), pomocí níž vypočítáš potřebnou střední hodnotu pro CVaR.
Toto cvičení je součástí kurzu
Kvantitativní řízení rizik v Pythonu
Pokyny k cvičení
- Zjisti 99% VaR pomocí funkce
np.quantile()aplikované na náhodné vzorky z distribucítakde. - Vypočítej integrál potřebný pro odhady CVaR pomocí metody
.expect()pro každou distribuci. - Zjisti a zobraz odhady 99% CVaR pro obě distribuce.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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)