ความสมมูลของโมเดล AR(1) และ MA(อนันต์)
เพื่อทำความเข้าใจความสัมพันธ์ระหว่างโมเดล MA และโมเดล AR ได้ดียิ่งขึ้น เราจะแสดงให้เห็นว่าโมเดล AR(1) มีความสมมูลกับโมเดล MA(\(\small \infty\)) ที่มีพารามิเตอร์ที่เหมาะสม
คุณจะจำลองโมเดล MA ที่มีพารามิเตอร์ \(\small 0.8, 0.8^2, 0.8^3, \ldots\) สำหรับจำนวน lag ที่มาก (30 lag) และแสดงว่ามี Autocorrelation Function เดียวกับโมเดล AR(1) ที่มี \(\small \phi=0.8\)
หมายเหตุ: หากต้องการยกกำลังตัวเลข x ด้วยเลขชี้กำลัง n ให้ใช้รูปแบบ x**n
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การวิเคราะห์อนุกรมเวลาด้วย Python
คำแนะนำการฝึกหัด
- นำเข้าโมดูลสำหรับจำลองข้อมูลและพล็อต ACF จาก statsmodels
- ใช้ list comprehension เพื่อสร้างรายการที่มีพารามิเตอร์ MA ที่ลดลงแบบเอกซ์โพเนนเชียล: \(\small 1, 0.8, 0.8^2, 0.8^3, \ldots\)
- จำลองข้อมูล 5000 ค่าสังเกตของโมเดล MA(30)
- พล็อต ACF ของชุดข้อมูลที่จำลองได้
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# import the modules for simulating data and plotting the ACF
from statsmodels.tsa.arima_process import ArmaProcess
from statsmodels.graphics.tsaplots import plot_acf
# Build a list MA parameters
ma = [___ for i in range(30)]
# Simulate the MA(30) model
ar = np.array([1])
AR_object = ArmaProcess(ar, ___)
simulated_data = ___.generate_sample(nsample=5000)
# Plot the ACF
plot_acf(___, lags=30)
plt.show()