Aan de slagGa gratis aan de slag

Schat orde van model: PACF

Een handig hulpmiddel om de orde van een AR-model te bepalen is de Partial Autocorrelation Function (PACF). In deze oefening simuleer je twee tijdreeksen, een AR(1) en een AR(2), en bereken je voor beide de steekproef-PACF. Je zult zien dat voor een AR(1) de PACF een significante waarde op vertraging 1 heeft en daarna ongeveer nul is. En voor een AR(2) heeft de steekproef-PACF significante waarden op vertraging 1 en 2, en daarna nul.

Net zoals je eerder de functie plot_acf gebruikte, gebruik je hier een functie genaamd plot_pacf uit de statsmodels-module.

Deze oefening maakt deel uit van de cursus

Tijdreeksanalyse in Python

Cursus bekijken

Oefeninstructies

  • Importeer de modules om data te simuleren en om de PACF te plotten
  • Simuleer een AR(1) met \(\small \phi=0.6\) (onthoud dat het teken voor de AR-parameter is omgekeerd)
  • Plot de PACF voor simulated_data_1 met de functie plot_pacf
  • Simuleer een AR(2) met \(\small \phi_1=0.6, \phi_2=0.3\) (ook hier: teken omkeren)
  • Plot de PACF voor simulated_data_2 met de functie plot_pacf

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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()
Code bewerken en uitvoeren