ÎncepețiÎncepe gratuit

Simularea unei serii de timp AR(1)

Vei simula și reprezenta grafic câteva serii de timp AR(1), fiecare cu un parametru diferit, \(\small \phi\), folosind modulul arima_process din statsmodels. În acest exercițiu, vei analiza un model AR(1) cu un \(\small \phi\) pozitiv mare și un \(\small \phi\) negativ mare, dar ești liber să experimentezi și cu alți parametri.

Există câteva convenții specifice modulului arima_process care necesită o scurtă explicație. În primul rând, aceste rutine au fost concepute în mod general pentru a gestiona atât modele AR, cât și MA. Vom aborda modelele MA în lecția următoare, așa că deocamdată ignoră această parte. În al doilea rând, atunci când introduci coeficienții, trebuie să incluzi coeficientul de lag zero egal cu 1, iar semnul celorlalți coeficienți este opus față de cel utilizat până acum (pentru a fi consistent cu literatura de specialitate din domeniul procesării semnalelor). De exemplu, pentru un proces AR(1) cu \(\small \phi=0.9\), array-ul care reprezintă parametrii AR este ar = 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 AR simulate:
    • Fie ar1 un array cu parametrii AR [1, \(\small -\phi\)], conform explicației de mai sus. Deocamdată, array-ul parametrilor MA, ma1, va conține doar coeficientul de lag zero egal cu unu.
    • Folosind parametrii ar1 și ma1, creează o instanță a clasei ArmaProcess(ar,ma) numită AR_object1.
    • Simulează 1000 de puncte de date din obiectul creat, AR_object1, folosind metoda .generate_sample(). Reprezintă datele simulate într-un subplot.
  • Repetă pașii pentru celălalt parametru AR.

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: AR parameter = +0.9
plt.subplot(2,1,1)
ar1 = np.array([1, ____])
ma1 = np.array([1])
AR_object1 = ArmaProcess(____, ____)
simulated_data_1 = AR_object1.generate_sample(nsample=1000)
plt.plot(simulated_data_1)

# Plot 2: AR parameter = -0.9
plt.subplot(2,1,2)
ar2 = np.array([1, ____])
ma2 = np.array([1])
AR_object2 = ArmaProcess(____, ____)
simulated_data_2 = AR_object2.generate_sample(nsample=1000)
plt.plot(simulated_data_2)
plt.show()
Editează și rulează codul