Zacznij terazZacznij za darmo

Szacowanie rzędu modelu: PACF

Jednym z przydatnych narzędzi do wyznaczania rzędu modelu AR jest Częściowa Funkcja Autokorelacji (PACF). W tym ćwiczeniu zasymulujemy dwa szeregi czasowe – AR(1) i AR(2) – i obliczymy dla każdego z nich próbkową PACF. Zauważysz, że dla AR(1) PACF powinna mieć istotną wartość przy opóźnieniu 1, a dalsze wartości powinny być bliskie zeru. Dla AR(2) próbkowa PACF powinna mieć istotne wartości przy opóźnieniach 1 i 2, a dalsze – bliskie zeru.

Podobnie jak w poprzednich ćwiczeniach korzystałeś z funkcji plot_acf, tutaj użyjesz funkcji plot_pacf z modułu statsmodels.

To ćwiczenie jest częścią kursu

Analiza szeregów czasowych w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Zaimportuj moduły do symulowania danych oraz do rysowania wykresu PACF
  • Zasymuluj AR(1) z \(\small \phi=0.6\) (pamiętaj, że znak parametru AR jest odwrócony)
  • Narysuj wykres PACF dla simulated_data_1 za pomocą funkcji plot_pacf
  • Zasymuluj AR(2) z \(\small \phi_1=0.6, \phi_2=0.3\) (tutaj również odwróć znaki)
  • Narysuj wykres PACF dla simulated_data_2 za pomocą funkcji plot_pacf

Interaktywne ćwiczenie praktyczne

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

# Import the modules for simulating data and for plotting the PACF
from statsmodels.tsa.arima_process import ArmaProcess
from statsmodels.graphics.tsaplots import plot_pacf

# Simulate AR(1) with phi=+0.6
ma = np.array([1])
ar = np.array([1, -0.6])
AR_object = ArmaProcess(ar, ma)
simulated_data_1 = ___.generate_sample(nsample=5000)

# Plot PACF for AR(1)
plot_pacf(___, lags=20)
plt.show()

# Simulate AR(2) with phi1=+0.6, phi2=+0.3
ma = np.array([1])
ar = np.array([1, ___, ___])
AR_object = ArmaProcess(ar, ma)
simulated_data_2 = ___.generate_sample(nsample=5000)

# Plot PACF for AR(2)
plot_pacf(___, lags=20)
plt.show()
Edytuj i uruchom kod