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

VaR และความเสี่ยงที่ต้องรับ

ในแบบฝึกหัดก่อนหน้า คุณได้คำนวณ VaR และ CVaR โดยสมมติว่าการขาดทุนมีการกระจายแบบ Normal แล้ว คราวนี้จะหาค่า VaR โดยใช้การกระจายของการขาดทุนแบบอื่นที่นิยมใช้กัน ได้แก่ Student's t-distribution (หรือ T) ซึ่งอยู่ใน scipy.stats

จะคำนวณ array ของค่า VaR ที่ระดับ 99% จากการกระจายแบบ T (ที่มีองศาอิสระ 30 - 1 = 29) โดยใช้หน้าต่างเลื่อน 30 วันจากข้อมูล losses ของพอร์ตโฟลิโอธนาคารเพื่อการลงทุน

ขั้นแรกให้หาค่าเฉลี่ยและส่วนเบี่ยงเบนมาตรฐานของแต่ละหน้าต่าง แล้วสร้างรายการ rolling_parameters จากนั้นนำค่าเหล่านี้ไปคำนวณ array ของค่า VaR ที่ระดับ 99%

สุดท้าย นำ array นี้ไปพล็อตกราฟแสดงความเสี่ยงที่ต้องรับสำหรับพอร์ตโฟลิโอที่มีมูลค่าเริ่มต้น $100,000 ทั้งนี้ ความเสี่ยงที่ต้องรับคือความน่าจะเป็นที่จะขาดทุน (1%) คูณกับจำนวนเงินที่ขาดทุน (ค่าการขาดทุนจาก VaR ที่ระดับ 99%)

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

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

ดูคอร์ส

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

  • Import การกระจายแบบ Student's t จาก scipy.stats
  • คำนวณเวกเตอร์ค่าเฉลี่ย mu และส่วนเบี่ยงเบนมาตรฐาน sigma จากหน้าต่างเลื่อน 30 วันของ losses แล้วเก็บไว้ใน rolling_parameters
  • คำนวณ array ของ NumPy สำหรับค่า VaR ที่ระดับ 99% ชื่อ VaR_99 โดยใช้ t.ppf() จากรายการการกระจายแบบ T ที่ใช้ค่าจาก rolling_parameters
  • คำนวณและแสดงภาพความเสี่ยงที่ต้องรับที่เกี่ยวข้องกับ array VaR_99

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

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

# Import the Student's t-distribution
from scipy.____ import t

# Create rolling window parameter list
mu = losses.rolling(30).____
sigma = losses.rolling(30).____
rolling_parameters = [(29, mu[i], s) for i,s in enumerate(sigma)]

# Compute the 99% VaR array using the rolling window parameters
VaR_99 = np.array( [ t.ppf(____, *params) 
                    for params in ____ ] )

# Plot the minimum risk exposure over the 2005-2010 time period
plt.plot(losses.index, 0.01 * ____ * 100000)
plt.show()
แก้ไขและรันโค้ด