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

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

เช่นเดียวกับที่ทำกับโมเดล AR คราวนี้จะใช้โมเดล MA ในการพยากรณ์ข้อมูลทั้งในตัวอย่าง (in-sample) และนอกตัวอย่าง (out-of-sample) โดยใช้ฟังก์ชัน plot_predict() ใน statsmodels

สำหรับอนุกรมจำลอง simulated_data_1 ที่มี \(\small \theta=-0.9\) จะพล็อตการพยากรณ์ทั้งในตัวอย่างและนอกตัวอย่าง ความแตกต่างที่เห็นได้ชัดระหว่างการพยากรณ์นอกตัวอย่างของโมเดล MA(1) กับโมเดล AR(1) คือ การพยากรณ์ของ MA(1) ที่เกินกว่าหนึ่งช่วงเวลาในอนาคตจะเท่ากับค่าเฉลี่ยของตัวอย่างเพียงอย่างเดียว

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

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

ดูคอร์ส

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

  • นำเข้าคลาส ARIMA และฟังก์ชัน plot_predict
  • สร้าง instance ของคลาส ARIMA ชื่อ mod โดยใช้ข้อมูลจำลอง simulated_data_1 และกำหนด order ของโมเดล (p,d,q) ซึ่งในกรณีของ MA(1) คือ order=(0,0,1)
  • Fit โมเดล mod ด้วยเมธอด .fit() แล้วบันทึกผลลัพธ์ไว้ในออบเจ็กต์ชื่อ res
  • พล็อตข้อมูลในตัวอย่างโดยเริ่มต้นที่จุดข้อมูลที่ 950
  • พล็อตการพยากรณ์นอกตัวอย่างพร้อมช่วงความเชื่อมั่นโดยใช้ฟังก์ชัน plot_predict() โดยเริ่มที่จุดข้อมูลที่ 950 และสิ้นสุดที่จุดที่ 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 MA(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()
แก้ไขและรันโค้ด