Zacznij terazZacznij za darmo

Symulacja szeregu czasowego AR(1)

Zasymuluj i zwizualizuj kilka szeregów czasowych AR(1), każdy z innym parametrem \(\small \phi\), korzystając z modułu arima_process z biblioteki statsmodels. W tym ćwiczeniu przyjrzysz się modelowi AR(1) z dużą dodatnią wartością \(\small \phi\) oraz dużą ujemną wartością \(\small \phi\) – zachęcamy też do eksperymentowania z własnymi parametrami.

Moduł arima_process wymaga kilku wyjaśnień dotyczących konwencji. Po pierwsze, jego funkcje zostały zaprojektowane ogólnie, tak aby obsługiwać zarówno modele AR, jak i MA. Modele MA omówimy w kolejnej lekcji – na razie pomiń część dotyczącą MA. Po drugie, przy podawaniu współczynników musisz uwzględnić współczynnik dla opóźnienia zerowego równy 1, a znak pozostałych współczynników jest odwrotny niż ten, którego używaliśmy (zgodnie z konwencją literatury z zakresu przetwarzania sygnałów). Na przykład dla procesu AR(1) z \(\small \phi=0.9\) tablica parametrów AR wygląda następująco: ar = np.array([1, -0.9])

To ćwiczenie jest częścią kursu

Analiza szeregów czasowych w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Zaimportuj klasę ArmaProcess z modułu arima_process.
  • Wykreśl zasymulowane procesy AR:
    • Niech ar1 oznacza tablicę parametrów AR [1, \(\small -\phi\)] zgodnie z opisaną powyżej konwencją. Na razie tablica parametrów MA, ma1, będzie zawierać tylko współczynnik dla opóźnienia zerowego równy 1.
    • Używając parametrów ar1 i ma1, utwórz instancję klasy ArmaProcess(ar,ma) o nazwie AR_object1.
    • Zasymuluj 1000 punktów danych z utworzonego obiektu AR_object1, korzystając z metody .generate_sample(). Wyświetl zasymulowane dane na wykresie cząstkowym.
  • Powtórz te kroki dla drugiego parametru AR.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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()
Edytuj i uruchom kod