ÎncepețiÎncepe gratuit

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

Vezi cursul

Instrucțiuni pentru exercițiu

  • Importă clasa ArmaProcess din modulul arima_process.
  • Reprezintă grafic procesele MA(1) simulate
    • Fie ma1 un 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 și ma1, creează o instanță a clasei ArmaProcess(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.
  • 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()
Editează și rulează codul