Začněte nyníZačněte zdarma

Simulace časové řady MA(1)

Simuluješ a vykreslíš několik časových řad MA(1), každou s jiným parametrem \(\small \theta\), pomocí modulu arima_process z knihovny statsmodels – stejně jako v předchozí kapitole u modelů AR(1). Podíváš se na model MA(1) s velkým kladným \(\small \theta\) a s velkým záporným \(\small \theta\).

Jako v předchozí kapitole musíš při zadávání koeficientů zahrnout koeficient pro nulové zpoždění s hodnotou 1. Na rozdíl od AR modelů ale u MA modelů znaménko koeficientů odpovídá přímému očekávání. Například pro proces MA(1) s \(\small \theta=-0.9\) bude pole parametrů MA vypadat takto: ma = np.array([1, -0.9])

Toto cvičení je součástí kurzu

Analýza časových řad v Pythonu

Zobrazit kurz

Pokyny k cvičení

  • Importuj třídu ArmaProcess z modulu arima_process.
  • Vykresli simulované procesy MA(1):
    • Proměnná ma1 bude pole parametrů MA [1, \(\small \theta\)], jak je popsáno výše. Pole parametrů AR bude obsahovat pouze koeficient pro nulové zpoždění s hodnotou 1.
    • Z parametrů ar1 a ma1 vytvoř instanci třídy ArmaProcess(ar,ma) s názvem MA_object1.
    • Ze vzniklého objektu MA_object1 simuluj 1000 datových bodů pomocí metody .generate_sample(). Simulovaná data vykresli do podgrafu.
  • Zopakuj postup pro druhý parametr MA.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# 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()
Upravit a spustit kód