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
Pokyny k cvičení
- Vypočítej průměr a směrodatnou odchylku
portfolio_lossesa přiřaď je do proměnnýchpmaps. - Najdi 95% VaR pomocí metody
.ppf()objektunorm– ta přijímá argumentylocpro průměr ascalepro směrodatnou odchylku. - Pomocí 95% VaR a metody
.expect()objektunormzjistitail_lossa 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()