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
Instrucțiuni pentru exercițiu
- Importă clasa
ArmaProcessdin modulularima_process. - Reprezintă grafic procesele AR simulate:
- Fie
ar1un 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șima1, creează o instanță a claseiArmaProcess(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.
- Fie
- 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()