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
Pokyny k cvičení
- Importuj třídu
ArmaProcessz moduluarima_process. - Vykresli simulované procesy MA(1):
- Proměnná
ma1bude 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ů
ar1ama1vytvoř instanci třídyArmaProcess(ar,ma)s názvemMA_object1. - Ze vzniklého objektu
MA_object1simuluj 1000 datových bodů pomocí metody.generate_sample(). Simulovaná data vykresli do podgrafu.
- Proměnná
- 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()