Začněte nyníZačněte zdarma

Porovnání CVaR a VaR

Podmíněná hodnota v riziku (CVaR), neboli očekávaný schodek (ES), odpovídá na otázku, jaká bude průměrná ztráta za podmínky, že ztráty překročí určitou hranici při dané hladině spolehlivosti. Vychází z VaR, ale přináší více informací, protože zohledňuje ocas rozdělení ztrát.

Nejprve vypočítáš 95% VaR pro normální rozdělení portfoliových ztrát se stejným průměrem a směrodatnou odchylkou jako mají portfolio_losses investičních bank za období 2005–2010. Poté VaR využiješ k výpočtu 95% CVaR a oba ukazatele zobrazíš v grafu normálního rozdělení.

portfolio_losses máš k dispozici v pracovním prostředí, stejně jako norm – normální rozdělení z knihovny scipy.stats.

Toto cvičení je součástí kurzu

Kvantitativní řízení rizik v Pythonu

Zobrazit kurz

Pokyny k cvičení

  • Vypočítej průměr a směrodatnou odchylku portfolio_losses a přiřaď je do proměnných pm a ps.
  • Najdi 95% VaR pomocí metody .ppf() objektu norm – ta přijímá argumenty loc pro průměr a scale pro směrodatnou odchylku.
  • Pomocí 95% VaR a metody .expect() objektu norm zjisti tail_loss a na jejím základě vypočítej CVaR při stejné hladině spolehlivosti.
  • Do histogramu normálního rozdělení přidej svislé čáry znázorňující VaR (červeně) a CVaR (zeleně).

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# Compute the mean and standard deviation of the portfolio returns
pm = portfolio_losses.____
ps = portfolio_losses.____

# Compute the 95% VaR using the .ppf()
VaR_95 = norm.ppf(0.95, loc = ____, scale = ____)
# Compute the expected tail loss and the CVaR in the worst 5% of cases
tail_loss = norm.____(lambda x: x, loc = ____, scale = ____, lb = VaR_95)
CVaR_95 = (1 / (1 - 0.95)) * ____

# Plot the normal distribution histogram and add lines for the VaR and CVaR
plt.hist(norm.rvs(size = 100000, loc = pm, scale = ____), bins = 100)
plt.axvline(x = VaR_95, c='r', label = "VaR, 95% confidence level")
plt.axvline(x = ____, c='g', label = "CVaR, worst 5% of outcomes")
plt.legend(); plt.show()
Upravit a spustit kód