ÎncepețiÎncepe gratuit

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

Vezi cursul

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_1 folosind funcția plot_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_2 folosind funcția plot_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()
Editează și rulează codul