ลักษณะเฉพาะของอนุกรมเวลาทางการเงิน
ผลตอบแทนรายวันของสินทรัพย์ทางการเงินมักมีลักษณะร่วมกันหลายประการ ผลตอบแทนในแต่ละวันมักมีค่าน้อย และค่าเฉลี่ยอยู่ใกล้ศูนย์ ในขณะเดียวกัน ความแปรปรวนและส่วนเบี่ยงเบนมาตรฐานอาจมีค่าค่อนข้างสูง ในช่วงเวลาหลายปี มักพบผลตอบแทนที่มีขนาดใหญ่มากในบางวันเป็นครั้งคราว แม้จะเกิดขึ้นเพียงไม่กี่วัน แต่วันเหล่านั้นคือช่วงที่ราคาสินทรัพย์เคลื่อนไหวมากที่สุด เนื่องจากผลตอบแทนที่สุดขั้วเหล่านี้ การกระจายของผลตอบแทนรายวันจึงไม่เป็นแบบปกติ (normal) แต่มีหางหนัก (heavy-tailed) และบางครั้งก็เบ้ (skewed) โดยทั่วไป ผลตอบแทนของหุ้นรายตัวมักมีความผันผวนและค่าสุดขั้วมากกว่าผลตอบแทนของดัชนี
ในแบบฝึกหัดนี้ จะใช้ชุดข้อมูล eu_percentreturns ซึ่งเป็นผลตอบแทนเป็นเปอร์เซ็นต์ที่คำนวณจากข้อมูล eu_stocks สำหรับดัชนีทั้งสี่ในชุดข้อมูล จะคำนวณค่าเฉลี่ยตัวอย่าง ความแปรปรวน และส่วนเบี่ยงเบนมาตรฐาน
สังเกตว่าค่าเฉลี่ยผลตอบแทนรายวันอยู่ที่ประมาณ 0 ในขณะที่ส่วนเบี่ยงเบนมาตรฐานอยู่ที่ประมาณ 1 เปอร์เซ็นต์ นอกจากนี้ ให้ใช้ฟังก์ชัน hist() และ qqnorm() เพื่อสร้างฮิสโตแกรมและกราฟ normal quantile plot ตามลำดับ สำหรับแต่ละดัชนี
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การวิเคราะห์อนุกรมเวลาใน R
คำแนะนำการฝึกหัด
- ใช้
colMeans()เพื่อคำนวณค่าเฉลี่ยตัวอย่างของแต่ละคอลัมน์ในข้อมูลeu_percentreturns - ใช้
apply()เพื่อคำนวณความแปรปรวนตัวอย่างของแต่ละดัชนี โดยกำหนดอาร์กิวเมนต์MARGINเป็น2และตั้งค่าอาร์กิวเมนต์FUNเป็นvar - เรียกใช้
apply()อีกครั้งเพื่อคำนวณส่วนเบี่ยงเบนมาตรฐานของแต่ละดัชนี คงค่าMARGINไว้ที่2แต่เปลี่ยนอาร์กิวเมนต์FUNเป็นsd - รันโค้ดที่เหลือเพื่อแสดงฮิสโตแกรมและกราฟ normal quantile plot ของผลตอบแทนเป็นเปอร์เซ็นต์สำหรับแต่ละดัชนี
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Generate means from eu_percentreturns
colMeans(___)
# Use apply to calculate sample variance from eu_percentreturns
apply(___, MARGIN = 2, FUN = ___)
# Use apply to calculate standard deviation from eu_percentreturns
# Display histogram and normal quantile plots
par(mfrow = c(2,2))
apply(eu_percentreturns, MARGIN = 2, FUN = hist, main = "", xlab = "Percentage Return")
par(mfrow = c(2,2))
apply(eu_percentreturns, MARGIN = 2, FUN = qqnorm, main = "")
qqline(eu_percentreturns)