Membandingkan CVaR dan VaR
Conditional value at risk (CVaR), atau expected shortfall (ES), menanyakan berapa rata-rata kerugian, bersyarat pada kerugian yang melampaui ambang batas tertentu pada tingkat kepercayaan tertentu. Ukuran ini menggunakan VaR sebagai titik awal, tetapi memuat lebih banyak informasi karena mempertimbangkan ekor dari distribusi kerugian.
Anda akan terlebih dahulu menghitung VaR 95% untuk distribusi Normal dari kerugian portofolio, dengan rata-rata dan simpangan baku yang sama seperti portfolio_losses bank investasi 2005–2010. Kemudian Anda akan menggunakan VaR tersebut untuk menghitung CVaR 95%, dan memplot keduanya terhadap distribusi Normal.
portfolio_losses tersedia di ruang kerja Anda, begitu juga distribusi Normal norm dari scipy.stats.
Latihan ini adalah bagian dari kursus
Manajemen Risiko Kuantitatif dengan Python
Petunjuk latihan
- Hitung rata-rata dan simpangan baku dari
portfolio_lossesdan tetapkan kepmdanpssecara berurutan. - Temukan VaR 95% menggunakan
.ppf() methoddarinorm—ini menerima argumenlocuntuk rata-rata danscaleuntuk simpangan baku. - Gunakan VaR 95% dan
.expect()darinormuntuk mencaritail_loss, lalu gunakan hasilnya untuk menghitung CVaR pada tingkat kepercayaan yang sama. - Tambahkan garis vertikal yang menunjukkan VaR (merah) dan CVaR (hijau) ke plot histogram distribusi Normal.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# 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()