Bắt đầu ngayBắt đầu miễn phí

So sánh CVaR và VaR

Conditional Value at Risk (CVaR), hay mức thâm hụt kỳ vọng (Expected Shortfall, ES), đặt câu hỏi: mức lỗ trung bình sẽ là bao nhiêu khi biết rằng các khoản lỗ đã vượt quá một ngưỡng tại một mức độ tin cậy nhất định. Biện pháp này dùng VaR làm điểm xuất phát, nhưng chứa nhiều thông tin hơn vì xét đến phần đuôi của phân phối thua lỗ.

Đầu tiên, bạn sẽ tính VaR 95% cho phân phối chuẩn của thua lỗ danh mục, với trung bình và độ lệch chuẩn giống như portfolio_losses của các ngân hàng đầu tư giai đoạn 2005–2010. Sau đó, bạn sẽ dùng VaR để tính CVaR 95% và vẽ cả hai trên nền phân phối chuẩn.

portfolio_losses đã có sẵn trong không gian làm việc của bạn, cũng như phân phối chuẩn norm từ scipy.stats.

Bài tập này là một phần của khóa học

Quản trị Rủi ro Định lượng với Python

Xem khóa học

Hướng dẫn bài tập

  • Tính trung bình và độ lệch chuẩn của portfolio_losses và gán lần lượt cho pmps.
  • Tìm VaR 95% bằng phương thức .ppf() của norm — phương thức này nhận tham số loc cho trung bình và scale cho độ lệch chuẩn.
  • Dùng VaR 95% và phương thức .expect() của norm để tìm tail_loss, rồi dùng nó để tính CVaR tại cùng mức độ tin cậy.
  • Thêm các đường thẳng đứng thể hiện VaR (màu đỏ) và CVaR (màu xanh lá) vào biểu đồ histogram của phân phối chuẩn.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

# 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()
Chỉnh sửa và Chạy Mã