การพยากรณ์ด้วยโมเดล 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()