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

การพยากรณ์ด้วยโมเดล AR

นอกจากการประมาณค่าพารามิเตอร์ของโมเดลที่ทำในแบบฝึกหัดที่แล้ว ยังสามารถพยากรณ์ได้ทั้งแบบ in-sample และ out-of-sample โดยใช้ statsmodels การพยากรณ์แบบ in-sample คือการพยากรณ์จุดข้อมูลถัดไปโดยใช้ข้อมูลทั้งหมดจนถึงจุดนั้น ส่วนแบบ out-of-sample คือการพยากรณ์จุดข้อมูลในอนาคตตามจำนวนที่ต้องการ สามารถพล็อตข้อมูลที่พยากรณ์ได้ด้วยฟังก์ชัน plot_predict() โดยระบุจุดเริ่มต้นและจุดสิ้นสุดของการพยากรณ์ ซึ่งจุดสิ้นสุดสามารถเป็นจุดข้อมูลใดก็ได้ที่อยู่หลังจากชุดข้อมูลสิ้นสุด

สำหรับข้อมูลจำลองใน DataFrame simulated_data_1 ที่มี \(\small \phi=0.9\) ให้พล็อตการพยากรณ์แบบ out-of-sample พร้อมช่วงความเชื่อมั่นรอบการพยากรณ์นั้น

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

การวิเคราะห์อนุกรมเวลาด้วย Python

ดูคอร์ส

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

  • นำเข้าคลาส ARIMA และฟังก์ชัน plot_predict
  • สร้าง instance ของคลาส ARIMA ชื่อ mod โดยใช้ข้อมูลจำลองใน DataFrame simulated_data_1 และระบุ order (p,d,q) ของโมเดล (สำหรับ AR(1)) เป็น order=(1,0,0)
  • Fit โมเดล mod ด้วยเมธอด .fit() แล้วบันทึกผลลัพธ์ไว้ในออบเจกต์ชื่อ res
  • พล็อตข้อมูล in-sample โดยเริ่มจากจุดข้อมูลที่ 950
  • พล็อตการพยากรณ์แบบ out-of-sample พร้อมช่วงความเชื่อมั่นด้วยฟังก์ชัน plot_predict() โดยเริ่มต้นจากจุดสิ้นสุดของข้อมูลที่จุดที่ 1000 และสิ้นสุดการพยากรณ์ที่จุดที่ 1010

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

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

# Import the ARIMA and plot_predict from statsmodels
from statsmodels.tsa.arima.model import ARIMA
from statsmodels.graphics.tsaplots import plot_predict

# Forecast the first AR(1) model
mod = ARIMA(___, order=___)
res = mod.fit()

# Plot the data and the forecast
fig, ax = plt.subplots()
simulated_data_1.loc[950:].plot(ax=ax)
plot_predict(res, start=___, end=___, ax=ax)
plt.show()
แก้ไขและรันโค้ด