Compararea CVaR și VaR
Valoarea condiționată la risc (CVaR), sau pierderea așteptată (ES), răspunde la întrebarea: care va fi pierderea medie, condiționat de faptul că pierderile depășesc un anumit prag la un nivel de încredere dat? Pornește de la VaR, dar conține mai multe informații, deoarece ia în considerare coada distribuției pierderilor.
Vei calcula mai întâi VaR-ul la 95% pentru o distribuție Normală a pierderilor din portofoliu, cu aceeași medie și abatere standard ca portfolio_losses ale băncilor de investiții din perioada 2005–2010. Vei folosi apoi VaR-ul pentru a calcula CVaR-ul la 95% și vei reprezenta grafic ambele valori față de distribuția Normală.
portfolio_losses este disponibil în spațiul tău de lucru, alături de distribuția Normală norm din scipy.stats.
Acest exercițiu face parte din cursul
Managementul Cantitativ al Riscului în Python
Instrucțiuni pentru exercițiu
- Calculează media și abaterea standard ale
portfolio_lossesși atribuie-le variabilelorpm, respectivps. - Găsește VaR-ul la 95% folosind metoda
.ppf()a obiectuluinorm— aceasta acceptă argumentelelocpentru medie șiscalepentru abaterea standard. - Folosește VaR-ul la 95% și metoda
.expect()a obiectuluinormpentru a calculatail_loss, apoi utilizează această valoare pentru a determina CVaR-ul la același nivel de încredere. - Adaugă linii verticale care să indice VaR-ul (în roșu) și CVaR-ul (în verde) pe un grafic histogramă al distribuției Normale.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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()