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

คำนวณ covariance สำหรับความผันผวน

ใน MPT เราวัดความเสี่ยงผ่านความผันผวน (volatility) การคำนวณความผันผวนของพอร์ตโฟลิโอนั้นค่อนข้างซับซ้อน และต้องอาศัย covariance ของผลตอบแทนรายวัน เราจะวนลูปผ่านแต่ละเดือนใน DataFrame returns_monthly แล้วคำนวณ covariance ของผลตอบแทนรายวัน

เมื่อใช้ index ประเภท datetime ของ pandas เราสามารถดึงเดือนและปีได้ด้วย df.index.month และ df.index.year จากนั้นใช้ข้อมูลนี้สร้าง mask สำหรับ returns_daily เพื่อกรองเฉพาะผลตอบแทนรายวันของเดือนและปีปัจจุบันในลูป แล้วใช้ mask นั้น subset DataFrame ด้วย df[mask] วิธีนี้จะดึงข้อมูลจาก returns_daily ที่ตรงกับเดือนและปีในแต่ละรอบของลูป สุดท้าย ใช้เมธอด .cov() ของ pandas เพื่อคำนวณ covariance ของผลตอบแทนรายวัน

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

Machine Learning สำหรับการเงินด้วย Python

ดูคอร์ส

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

  • วนลูปผ่าน index ของ returns_monthly
  • สร้าง mask สำหรับ returns_daily โดยใช้เดือนและปีปัจจุบันจาก returns_monthly แล้วจับคู่กับเดือนและปีของ i ในลูป
  • นำ mask ไปใช้กับ returns_daily และคำนวณ covariance ด้วย .cov()

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

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

# Daily covariance of stocks (for each monthly period)
covariances = {}
rtd_idx = returns_daily.index
for i in returns_monthly.____:    
    # Mask daily returns for each month and year, and calculate covariance
    mask = (rtd_idx.month == i.month) & (rtd_idx.____ == i.____)
    
    # Use the mask to get daily returns for the current month and year of monthy returns index
    covariances[i] = returns_daily[____].cov()

print(covariances[i])
แก้ไขและรันโค้ด