Simulasikan Deret Waktu MA(1)
Anda akan mensimulasikan dan memplot beberapa deret waktu MA(1), masing-masing dengan parameter \(\small \theta\) yang berbeda, menggunakan modul arima_process di statsmodels, seperti yang Anda lakukan pada bab sebelumnya untuk model AR(1). Anda akan melihat model MA(1) dengan \(\small \theta\) positif besar dan \(\small \theta\) negatif besar.
Seperti pada bab sebelumnya, saat memasukkan koefisien, Anda harus menyertakan koefisien lag-nol bernilai 1, tetapi berbeda dengan bab sebelumnya tentang model AR, tanda koefisien MA sesuai dengan yang diharapkan. Sebagai contoh, untuk proses MA(1) dengan \(\small \theta=-0.9\), array yang merepresentasikan parameter MA adalah ma = np.array([1, -0.9])
Latihan ini adalah bagian dari kursus
Analisis Deret Waktu dengan Python
Petunjuk latihan
- Impor kelas
ArmaProcessdalam modularima_process. - Plot proses MA(1) hasil simulasi
- Biarkan
ma1merepresentasikan array parameter MA [1, \(\small \theta\)] seperti dijelaskan di atas. Array parameter AR hanya akan memuat koefisien lag-nol bernilai satu. - Dengan parameter
ar1danma1, buat instance kelasArmaProcess(ar,ma)bernamaMA_object1. - Simulasikan 1000 titik data dari objek yang baru Anda buat,
MA_object1, menggunakan metode.generate_sample(). Plot data hasil simulasi dalam sebuah subplot.
- Biarkan
- Ulangi untuk parameter MA lainnya.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# import the module for simulating data
from statsmodels.tsa.arima_process import ArmaProcess
# Plot 1: MA parameter = -0.9
plt.subplot(2,1,1)
ar1 = np.array([1])
ma1 = np.array([1, ____])
MA_object1 = ArmaProcess(____, ____)
simulated_data_1 = MA_object1.generate_sample(nsample=1000)
plt.plot(simulated_data_1)
# Plot 2: MA parameter = +0.9
plt.subplot(2,1,2)
ar2 = np.array([1])
ma2 = np.array([1, ____])
MA_object2 = ArmaProcess(____, ____)
simulated_data_2 = MA_object2.generate_sample(nsample=1000)
plt.plot(simulated_data_2)
plt.show()