IniziaInizia gratis

Stima dell'ordine del modello: PACF

Uno strumento utile per identificare l'ordine di un modello AR è la funzione di autocorrelazione parziale (PACF). In questo esercizio simulerai due serie temporali, un'AR(1) e un'AR(2), e calcolerai la PACF campionaria per ciascuna. Noterai che per un'AR(1) la PACF dovrebbe avere un valore significativo al ritardo 1 e approssimativamente zeri dopo. Per un'AR(2), invece, la PACF campionaria dovrebbe avere valori significativi ai ritardi 1 e 2, e zeri successivamente.

Così come hai usato la funzione plot_acf negli esercizi precedenti, qui userai una funzione chiamata plot_pacf nel modulo statsmodels.

Questo esercizio fa parte del corso

Analisi delle serie temporali in Python

Visualizza il corso

Istruzioni dell'esercizio

  • Importa i moduli per simulare i dati e per tracciare la PACF
  • Simula un'AR(1) con \(\small \phi=0.6\) (ricorda che il segno del parametro AR è invertito)
  • Traccia la PACF per simulated_data_1 usando la funzione plot_pacf
  • Simula un'AR(2) con \(\small \phi_1=0.6, \phi_2=0.3\) (anche qui, inverti i segni)
  • Traccia la PACF per simulated_data_2 usando la funzione plot_pacf

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# 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()
Modifica ed esegui il codice