MA(1) Zaman Serisi Simülasyonu
Bu egzersizde, her biri farklı bir \(\small \theta\) parametresine sahip birkaç MA(1) zaman serisini, AR(1) modelleri için önceki bölümde yaptığın gibi statsmodels içindeki arima_process modülünü kullanarak simüle edecek ve çizeceksin. Büyük pozitif \(\small \theta\) ve büyük negatif \(\small \theta\) içeren birer MA(1) modeline bakacaksın.
Önceki bölümde olduğu gibi katsayıları girerken gecikme-sıfır katsayısı olan 1'i dahil etmelisin; ancak AR modellerinin aksine, MA katsayılarının işareti beklediğimiz gibidir. Örneğin, \(\small \theta=-0.9\) olan bir MA(1) süreci için MA parametrelerini temsil eden dizi ma = np.array([1, -0.9]) olur.
Bu egzersiz
Python ile Zaman Serisi Analizi
kursunun bir parçasıdırEgzersiz talimatları
arima_processmodülündekiArmaProcesssınıfını içe aktar.- Simüle edilen MA(1) süreçlerini çiz:
- Yukarıda açıklandığı gibi,
ma1değişkeni MA parametrelerini [1, \(\small \theta\)] şeklinde temsil etsin. AR parametre dizisi yalnızca gecikme-sıfır katsayısı olan 1'i içerecek. ar1vema1parametreleriyle,ArmaProcess(ar,ma)sınıfındanMA_object1adlı bir örnek oluştur.- Az önce oluşturduğun
MA_object1nesnesinden.generate_sample()yöntemiyle 1000 veri noktası simüle et. Simüle edilen veriyi bir alt grafikte (subplot) çiz.
- Yukarıda açıklandığı gibi,
- Diğer MA parametresi için de aynısını tekrarla.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
# 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()