Simulează serii de timp MA(1)
Vei simula și reprezenta grafic câteva serii de timp MA(1), fiecare cu un parametru diferit, \(\small \theta\), folosind modulul arima_process din statsmodels, la fel cum ai procedat în capitolul anterior pentru modelele AR(1). Vei analiza un model MA(1) cu un \(\small \theta\) pozitiv mare și unul cu un \(\small \theta\) negativ mare.
Ca și în capitolul precedent, la introducerea coeficienților trebuie să incluzi coeficientul de la decalajul zero, egal cu 1. Spre deosebire de modelele AR, semnul coeficienților MA este cel așteptat. De exemplu, pentru un proces MA(1) cu \(\small \theta=-0.9\), vectorul parametrilor MA este ma = np.array([1, -0.9])
Acest exercițiu face parte din cursul
Analiza seriilor de timp în Python
Instrucțiuni pentru exercițiu
- Importă clasa
ArmaProcessdin modulularima_process. - Reprezintă grafic procesele MA(1) simulate
- Fie
ma1un vector al parametrilor MA [1, \(\small \theta\)], conform explicației de mai sus. Vectorul parametrilor AR va conține doar coeficientul de la decalajul zero, egal cu 1. - Folosind parametrii
ar1șima1, creează o instanță a claseiArmaProcess(ar,ma)numităMA_object1. - Simulează 1000 de puncte de date din obiectul creat,
MA_object1, folosind metoda.generate_sample(). Reprezintă datele simulate într-un subplot.
- Fie
- Repetă procesul pentru celălalt parametru MA.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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()