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

ประมาณ Order ของโมเดล: Information Criteria

อีกวิธีหนึ่งในการระบุ order ของโมเดลคือการดู Akaike Information Criterion (AIC) และ Bayesian Information Criterion (BIC) ค่าเหล่านี้วัดความเหมาะสมของการ fit โมเดลกับพารามิเตอร์ที่ประมาณได้ โดยมีการลงโทษ (penalty) ตามจำนวนพารามิเตอร์ในโมเดลด้วย ในแบบฝึกหัดนี้จะใช้ข้อมูลจำลองจาก AR(2) ในแบบฝึกหัดที่แล้ว ซึ่งบันทึกไว้ใน simulated_data_2 แล้วคำนวณค่า BIC โดยปรับค่า order p ของโมเดล AR(p) ตั้งแต่ 0 ถึง 6

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

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

ดูคอร์ส

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

  • Import โมดูล ARIMA สำหรับประมาณพารามิเตอร์และคำนวณ BIC
  • สร้าง numpy array ชื่อ BIC เพื่อเก็บค่า BIC ของโมเดล AR(p) แต่ละค่า
  • วนลูปผ่าน order p สำหรับ p = 0,…,6
    • สำหรับแต่ละค่า p ให้ fit ข้อมูลกับโมเดล AR ที่มี order เท่ากับ p
    • สำหรับแต่ละค่า p ให้บันทึกค่า BIC โดยใช้ attribute .bic (ไม่ต้องมีวงเล็บ) ของ res
  • พล็อตกราฟ BIC เทียบกับ p (ข้ามค่า p=0 และพล็อตสำหรับ p=1,…,6)

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

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

# Import the module for estimating an ARIMA model
from statsmodels.tsa.arima.model import ARIMA

# Fit the data to an AR(p) for p = 0,...,6 , and save the BIC
BIC = np.zeros(7)
for p in range(7):
    mod = ARIMA(simulated_data_2, order=(___,___,___))
    res = mod.fit()
# Save BIC for AR(p)    
    BIC[p] = res.___
    
# Plot the BIC as a function of p
plt.plot(range(1,7), BIC[1:7], marker='o')
plt.xlabel('Order of AR Model')
plt.ylabel('Bayesian Information Criterion')
plt.show()
แก้ไขและรันโค้ด