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
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_1za pomocą funkcjiplot_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_2za pomocą funkcjiplot_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()