CVaR और VaR की तुलना
Conditional Value at Risk (CVaR), जिसे expected shortfall (ES) भी कहते हैं, यह पूछता है कि किसी तय confidence level पर एक निश्चित थ्रेशहोल्ड से अधिक होने पर औसत नुकसान क्या होगा. यह VaR को शुरुआती बिंदु की तरह लेता है, लेकिन इसमें अधिक जानकारी होती है क्योंकि यह loss distribution की tail को ध्यान में रखता है.
आप सबसे पहले Normal distribution के लिए 95% VaR निकालेंगे, जिसका mean और standard deviation 2005-2010 की इन्वेस्टमेंट बैंक की portfolio_losses के समान है. फिर आप उसी VaR का उपयोग करके 95% CVaR निकालेंगे, और दोनों को Normal distribution के साथ प्लॉट करेंगे.
portfolio_losses आपके workspace में उपलब्ध है, और scipy.stats से norm Normal distribution भी उपलब्ध है.
यह अभ्यास पाठ्यक्रम का हिस्सा है
Python में Quantitative Risk Management
अभ्यास निर्देश
portfolio_lossesका mean और standard deviation निकालकर क्रमशःpmऔरpsमें असाइन करें.- 95% VaR को
normकी.ppf()मेथड से निकालें—यह mean के लिएlocऔर standard deviation के लिएscaleआर्ग्युमेंट लेती है. - 95% VaR और
normकी.expect()मेथड का उपयोग करकेtail_lossनिकालें, और उसी से उसी confidence level पर CVaR compute करें. - Normal distribution के histogram प्लॉट में VaR (लाल) और CVaR (हरा) दिखाने के लिए vertical lines जोड़ें.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# 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()