CVaR ve VaR'ı karşılaştırma
Koşullu risk değeri (CVaR) ya da beklenen açık (ES), belirli bir güven düzeyinde bir eşik değeri aşan zararlar gerçekleştiğinde ortalama zararın ne olacağını sorar. Hareket noktası olarak VaR'ı kullanır, ancak zarar dağılımının kuyruğunu dikkate aldığı için daha fazla bilgi içerir.
Önce, 2005-2010 yatırım bankası portfolio_losses ile aynı ortalama ve standart sapmaya sahip bir portföy zararlarının Normal dağılımı için %95 VaR'ı hesaplayacaksın. Ardından VaR'ı kullanarak %95 CVaR'ı hesaplayacak ve ikisini de Normal dağılıma karşı grafikte göstereceksin.
portfolio_losses çalışma alanında mevcut ve scipy.stats içindeki norm Normal dağılımı da hazır.
Bu egzersiz, kursun bir parçasıdır
Python ile Nicel Risk Yönetimi
Egzersiz talimatları
portfolio_losses'ın ortalamasını ve standart sapmasını hesapla ve sırasıylapmvepsdeğişkenlerine ata.norm'un.ppf()yöntemini kullanarak %95 VaR'ı bul — bu yöntem ortalama içinlocve standart sapma içinscaleargümanlarını alır.- %95 VaR'ı ve
norm'un.expect()yöntemini kullanaraktail_lossdeğerini bul ve bunu kullanarak aynı güven düzeyinde CVaR'ı hesapla. - Normal dağılımın histogramına VaR'ı (kırmızı) ve CVaR'ı (yeşil) gösteren dikey çizgiler ekle.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
# 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()