Začněte nyníZačněte zdarma

Simulace časové řady AR(1)

Nasimulujeme a vykreslíme několik časových řad AR(1), každou s jiným parametrem \(\small \phi\), a použijeme k tomu modul arima_process ze statsmodels. V tomto cvičení se podíváš na model AR(1) s velkou kladnou hodnotou \(\small \phi\) a velkou zápornou hodnotou \(\small \phi\) – klidně si ale vyzkoušej i vlastní hodnoty parametrů.

Při práci s modulem arima_process je potřeba znát pár konvencí. Za prvé, tyto funkce jsou navrženy obecně tak, aby zvládaly jak modely AR, tak MA. Modely MA probereme v další části, takže část pro MA zatím ignoruj. Za druhé, při zadávání koeficientů musíš zahrnout koeficient pro nulové zpoždění (lag-zero), jehož hodnota je 1, a znaménka ostatních koeficientů jsou oproti naší dosavadní konvenci opačná (aby byl postup konzistentní s literaturou o zpracování signálů). Například pro proces AR(1) s \(\small \phi=0.9\) bude pole AR parametrů vypadat takto: ar = np.array([1, -0.9]).

Toto cvičení je součástí kurzu

Analýza časových řad v Pythonu

Zobrazit kurz

Pokyny k cvičení

  • Importuj třídu ArmaProcess z modulu arima_process.
  • Vykresli nasimulované procesy AR:
    • Nech ar1 reprezentovat pole AR parametrů [1, \(\small -\phi\)] podle výše popsané konvence. Pole MA parametrů ma1 bude zatím obsahovat pouze koeficient pro nulové zpoždění (lag-zero) s hodnotou jedna.
    • Z parametrů ar1 a ma1 vytvoř instanci třídy ArmaProcess(ar,ma) s názvem AR_object1.
    • Z právě vytvořeného objektu AR_object1 nasimuluj 1 000 datových bodů pomocí metody .generate_sample(). Výsledná data vykresli do podgrafu.
  • Celý postup zopakuj pro druhý AR parametr.

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: 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()
Upravit a spustit kód