การพยากรณ์ด้วยโมเดล 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โดยใช้ข้อมูลจำลองใน DataFramesimulated_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()