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

CVaR và chọn mức bù đắp tổn thất

Trong các bài trước, bạn đã thấy cả phân phối TGaussian KDE đều khớp khá tốt với phân phối lỗ danh mục trong giai đoạn khủng hoảng. Vậy phân phối nào phù hợp nhất cho quản trị rủi ro? Một cách chọn là lấy phân phối cho mức bù đắp tổn thất lớn nhất, để bao phủ “kịch bản tệ nhất của tệ nhất”.

Hai phân phối tkde đã sẵn có và đã được fit vào losses của danh mục giai đoạn 2007–2008 (tham số fit cho t nằm trong p). Bạn sẽ suy ra ước lượng CVaR 99% cho một ngày cho từng phân phối; ước lượng CVaR lớn hơn sẽ là mức dự phòng “an toàn” hơn để nắm giữ, bao phủ tổn thất kỳ vọng vượt quá VaR 99%.

Đối tượng kde đã được cung cấp phương thức .expect() đặc biệt, chỉ cho bài này, để tính giá trị kỳ vọng cần cho CVaR.

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ìm VaR 99% bằng cách dùng np.quantile() trên các mẫu ngẫu nhiên lấy từ phân phối tkde.
  • Tính tích phân cần thiết cho ước lượng CVaR bằng phương thức .expect() cho mỗi phân phối.
  • Tìm và hiển thị ước lượng CVaR 99% cho cả hai phân phối.

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.

# Find the VaR as a quantile of random samples from the distributions
VaR_99_T   = np.quantile(t.rvs(size=1000, *p), ____)
VaR_99_KDE = np.quantile(kde.resample(size=1000), ____)

# Find the expected tail losses, with lower bounds given by the VaR measures
integral_T   = t.____(lambda x: x, args = (p[0],), loc = p[1], scale = p[2], lb = ____)
integral_KDE = kde.____(lambda x: x, lb = ____)

# Create the 99% CVaR estimates
CVaR_99_T   = (1 / (1 - ____)) * integral_T
CVaR_99_KDE = (1 / (1 - ____)) * integral_KDE

# Display the results
print("99% CVaR for T: ", CVaR_99_T, "; 99% CVaR for KDE: ", CVaR_99_KDE)
Chỉnh sửa và Chạy Mã