การพยากรณ์เบื้องต้นจากโมเดล AR ที่ประมาณค่าแล้ว
เมื่อสร้างโมเดลจากข้อมูลด้วยคำสั่ง arima() แล้ว ขั้นตอนต่อไปคือการพยากรณ์จากโมเดลนั้น ฟังก์ชัน predict() ใช้สำหรับพยากรณ์จากโมเดล AR ที่ประมาณค่าแล้ว ในออบเจกต์ที่ได้จากคำสั่ง predict() ค่า $pred คือค่าพยากรณ์ และค่า $se คือค่าความคลาดเคลื่อนมาตรฐานของการพยากรณ์
หากต้องการพยากรณ์หลายช่วงเวลาถัดจากการสังเกตล่าสุด ให้ใช้อาร์กิวเมนต์ n.ahead ในคำสั่ง predict() อาร์กิวเมนต์นี้กำหนดขอบฟ้าการพยากรณ์ (h) หรือจำนวนช่วงเวลาที่ต้องการพยากรณ์ โดยการพยากรณ์จะดำเนินการแบบวนซ้ำตั้งแต่ 1 ถึง h ช่วงล่วงหน้าจากจุดสิ้นสุดของอนุกรมเวลา
ในแบบฝึกหัดนี้ จะฝึกพยากรณ์เบื้องต้นโดยใช้โมเดล AR กับข้อมูล Nile ซึ่งบันทึกปริมาณการไหลของแม่น้ำไนล์รายปีตั้งแต่ปี 1871 ถึง 1970
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การวิเคราะห์อนุกรมเวลาใน R
คำแนะนำการฝึกหัด
- ใช้
arima()เพื่อฟิตโมเดล AR กับอนุกรมเวลาNileแล้วบันทึกผลลัพธ์เป็นAR_fit - ใช้
predict()เพื่อพยากรณ์ปริมาณการไหลของแม่น้ำไนล์ในปี 1971 - ใช้
predict_ARร่วมกับ$pred[1]เพื่อดูค่าพยากรณ์ 1 ช่วงล่วงหน้า - เรียกใช้
predict()อีกครั้งเพื่อพยากรณ์ตั้งแต่ 1 ถึง 10 ช่วงล่วงหน้า (ปี 1971 ถึง 1980) โดยกำหนดn.aheadเท่ากับ10 - รันโค้ดที่เตรียมไว้ให้เพื่อพล็อตข้อมูล
Nileพร้อมค่าพยากรณ์และช่วงความเชื่อมั่น 95%
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Fit an AR model to Nile
AR_fit <- arima(___, order = ___)
print(AR_fit)
# Use predict() to make a 1-step forecast
predict_AR <- predict(___)
# Obtain the 1-step forecast using $pred[1]
# Use predict to make 1-step through 10-step forecasts
predict(___, n.ahead = ___)
# Run to plot the Nile series plus the forecast and 95% prediction intervals
ts.plot(Nile, xlim = c(1871, 1980))
AR_forecast <- predict(AR_fit, n.ahead = 10)$pred
AR_forecast_se <- predict(AR_fit, n.ahead = 10)$se
points(AR_forecast, type = "l", col = 2)
points(AR_forecast - 2*AR_forecast_se, type = "l", col = 2, lty = 2)
points(AR_forecast + 2*AR_forecast_se, type = "l", col = 2, lty = 2)