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

การประมาณค่าพารามิเตอร์: Skewed Normal

ในแบบฝึกหัดก่อนหน้า พบว่าการ fit การแจกแจงแบบ Normal กับข้อมูลพอร์ตโฟลิโอของธนาคารเพื่อการลงทุนในช่วงปี 2005 - 2010 ให้ผลที่ไม่ดีนักตามการทดสอบ Anderson-Darling

คราวนี้จะทดสอบข้อมูลโดยใช้ฟังก์ชัน skewtest() จาก scipy.stats หากผลการทดสอบแตกต่างจากศูนย์อย่างมีนัยสำคัญทางสถิติ แสดงว่าข้อมูลมีความเบ้ (skewness) และควรใช้การแจกแจงแบบเบ้

ต่อไปจะประมาณค่า VaR ที่ระดับ 95% แบบ parametric โดย fit การแจกแจงความสูญเสียด้วย skewnorm ซึ่งเป็นการแจกแจง Skewed Normal จาก scipy.stats การแจกแจงนี้มีความยืดหยุ่นกว่าการแจกแจงแบบ Normal เนื่องจากยอมให้ความสูญเสียกระจายตัวแบบไม่สมมาตรได้ ซึ่งสอดคล้องกับช่วงวิกฤตที่ความสูญเสียในพอร์ตโฟลิโอมีแนวโน้มมากกว่ากำไร

ข้อมูล losses ของพอร์ตโฟลิโอในช่วงปี 2007 - 2009 ถูกเตรียมไว้ให้แล้ว

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

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

ดูคอร์ส

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

  • Import skewnorm และ skewtest จาก scipy.stats
  • ทดสอบความเบ้ในข้อมูล losses ของพอร์ตโฟลิโอโดยใช้ skewtest โดยผลทดสอบจะบ่งชี้ว่ามีความเบ้หากค่าที่ได้แตกต่างจากศูนย์อย่างมีนัยสำคัญทางสถิติ
  • Fit ข้อมูล losses กับการแจกแจง Skewed Normal โดยใช้เมธอด .fit()
  • คำนวณและแสดงค่าประมาณ VaR ที่ระดับ 95% จากการแจกแจงที่ fit แล้ว

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

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

# Import the skew-normal distribution and skewness test from scipy.stats
from scipy.stats import skewnorm, skewtest

# Test the data for skewness
print("Skewtest result: ", ____(____))

# Fit the portfolio loss data to the skew-normal distribution
params = ____.____(losses)

# Compute the 95% VaR from the fitted distribution, using parameter estimates
VaR_95 = ____.____(0.95, *params)
print("VaR_95 from skew-normal: ", VaR_95)
แก้ไขและรันโค้ด