MulaiMulai sekarang secara gratis

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

Lihat Kursus

Petunjuk latihan

  • Hitung rata-rata dan simpangan baku dari portfolio_losses dan tetapkan ke pm dan ps secara berurutan.
  • Temukan VaR 95% menggunakan .ppf() method dari norm—ini menerima argumen loc untuk rata-rata dan scale untuk simpangan baku.
  • Gunakan VaR 95% dan .expect() dari norm untuk mencari tail_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()
Edit dan Jalankan Kode