เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

CVaR และการเลือกระดับการรองรับความสูญเสีย

ในแบบฝึกหัดก่อนหน้า คุณได้เห็นแล้วว่าการแจกแจงแบบ T และ Gaussian KDE ต่างก็ให้ผลที่ค่อนข้างดีในการ fit กับการสูญเสียของพอร์ตในช่วงวิกฤต เมื่อเป็นเช่นนี้ การแจกแจงใดเหมาะสมที่สุดสำหรับ การบริหารความเสี่ยง? วิธีหนึ่งในการเลือกคือ เลือกการแจกแจงที่ให้ ระดับการรองรับความสูญเสีย สูงสุด เพื่อรับมือกับ "สถานการณ์เลวร้ายที่สุด" ที่อาจเกิดขึ้น

การแจกแจง t และ kde พร้อมใช้งานแล้วและได้ถูก fit กับ losses ของพอร์ตในช่วงปี 2007-2008 (พารามิเตอร์ที่ fit แล้วของ t อยู่ใน p) คุณจะคำนวณค่าประมาณ CVaR 99% แบบ 1 วันสำหรับแต่ละการแจกแจง จากนั้นค่า CVaR ที่สูงที่สุดจะถือเป็น จำนวนเงินสำรอง ที่ 'ปลอดภัย' ที่สุด สำหรับรองรับความสูญเสียที่คาดว่าจะเกิน VaR 99%

อินสแตนซ์ kde ได้รับเมธอด .expect() พิเศษ เฉพาะแบบฝึกหัดนี้ เพื่อคำนวณค่าคาดหวังที่จำเป็นสำหรับ CVaR

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

การบริหารความเสี่ยงเชิงปริมาณด้วย Python

ดูคอร์ส

คำแนะนำการฝึกหัด

  • หาค่า VaR 99% โดยใช้ np.quantile() กับตัวอย่างที่สุ่มจากการแจกแจง t และ kde
  • คำนวณอินทิกรัลที่ต้องใช้สำหรับค่าประมาณ CVaR โดยใช้เมธอด .expect() ของแต่ละการแจกแจง
  • หาและแสดงค่าประมาณ CVaR 99% สำหรับการแจกแจงทั้งสอง

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# 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)
แก้ไขและรันโค้ด