การพยากรณ์เบื้องต้นจากโมเดล MA ที่ประมาณค่าแล้ว
เมื่อประมาณค่าโมเดล MA จากข้อมูล Nile แล้ว ขั้นตอนถัดไปคือการพยากรณ์เบื้องต้นด้วยโมเดลดังกล่าว เช่นเดียวกับโมเดลประเภทอื่น สามารถใช้ฟังก์ชัน predict() เพื่อพยากรณ์จากโมเดล MA ที่ประมาณค่าแล้วได้ โดยค่า $pred คือค่าพยากรณ์ และค่า $se คือค่าความคลาดเคลื่อนมาตรฐานของการพยากรณ์นั้น ซึ่งทั้งสองค่าอ้างอิงจากโมเดล MA ที่ฟิตไว้
เพื่อพยากรณ์หลายช่วงเวลาหลังจากการสังเกตล่าสุด สามารถใช้อาร์กิวเมนต์ n.ahead = h ในคำสั่ง predict() ได้ การพยากรณ์จะดำเนินการแบบวนซ้ำตั้งแต่ 1 ถึง h ขั้นล่วงหน้าจากท้ายของอนุกรมเวลาที่สังเกต อย่างไรก็ตาม โปรดสังเกตว่า ยกเว้นการพยากรณ์ 1 ขั้น ค่าพยากรณ์ที่เหลือทั้งหมดจากโมเดล MA จะเท่ากับค่าเฉลี่ยที่ประมาณไว้ (intercept)
ในแบบฝึกหัดนี้ จะใช้โมเดล MA ที่สร้างจากข้อมูล Nile เพื่อพยากรณ์ระดับการไหลของแม่น้ำไนล์ในอนาคต โมเดล MA จากแบบฝึกหัดก่อนหน้าพร้อมใช้งานในสภาพแวดล้อมแล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การวิเคราะห์อนุกรมเวลาใน R
คำแนะนำการฝึกหัด
- ใช้
predict()เพื่อพยากรณ์ระดับการไหลของแม่น้ำไนล์ในปี 1971 แล้วเก็บผลลัพธ์ไว้ในตัวแปรpredict_MA - ใช้
predict_MAร่วมกับ$pred[1]เพื่อดึงค่าพยากรณ์ล่วงหน้า 1 ขั้น - เรียกใช้
predict()อีกครั้งเพื่อพยากรณ์ตั้งแต่ปี 1971 ถึง 1980 โดยกำหนดค่าอาร์กิวเมนต์n.aheadเป็น10 - รันโค้ดที่เตรียมไว้ให้เพื่อพล็อตอนุกรมเวลา
Nileพร้อมกับค่าพยากรณ์และช่วงการพยากรณ์ที่ระดับความเชื่อมั่น 95%
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Make a 1-step forecast based on MA
predict_MA <-
# Obtain the 1-step forecast using $pred[1]
# Make a 1-step through 10-step forecast based on MA
# Plot the Nile series plus the forecast and 95% prediction intervals
ts.plot(Nile, xlim = c(1871, 1980))
MA_forecasts <- predict(MA, n.ahead = 10)$pred
MA_forecast_se <- predict(MA, n.ahead = 10)$se
points(MA_forecasts, type = "l", col = 2)
points(MA_forecasts - 2*MA_forecast_se, type = "l", col = 2, lty = 2)
points(MA_forecasts + 2*MA_forecast_se, type = "l", col = 2, lty = 2)