Estimarea ordinului modelului: PACF
Un instrument util pentru a identifica ordinul unui model AR este Funcția de Autocorelare Parțială (PACF). În acest exercițiu, vei simula două serii de timp – un AR(1) și un AR(2) – și vei calcula PACF-ul eșantionului pentru fiecare. Vei observa că, pentru un AR(1), PACF-ul ar trebui să aibă o valoare semnificativă la lag-1 și valori aproape de zero după aceea. Pentru un AR(2), PACF-ul eșantionului ar trebui să aibă valori semnificative la lag-1 și lag-2, iar după aceea valori de zero.
Așa cum ai folosit funcția plot_acf în exercițiile anterioare, aici vei folosi o funcție numită plot_pacf din modulul statsmodels.
Acest exercițiu face parte din cursul
Analiza seriilor de timp în Python
Instrucțiuni pentru exercițiu
- Importă modulele necesare pentru simularea datelor și pentru reprezentarea grafică a PACF-ului
- Simulează un AR(1) cu \(\small \phi=0.6\) (reține că semnul parametrului AR este inversat)
- Reprezintă grafic PACF-ul pentru
simulated_data_1folosind funcțiaplot_pacf - Simulează un AR(2) cu \(\small \phi_1=0.6, \phi_2=0.3\) (inversează din nou semnele)
- Reprezintă grafic PACF-ul pentru
simulated_data_2folosind funcțiaplot_pacf
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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()