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
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_1met de functieplot_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_2met de functieplot_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()