Uppskatta modellordning: PACF
Ett användbart verktyg för att identifiera ordningen hos en AR-modell är att studera den partiella autokorrelationsfunktionen (PACF). I den här övningen simulerar du två tidsserier – en AR(1) och en AR(2) – och beräknar stickprovs-PACF för vardera. Du kommer att märka att en AR(1) bör ha ett signifikant lag-1-värde i PACF och ungefär noll efter det. För en AR(2) bör stickprovs-PACF ha signifikanta lag-1- och lag-2-värden, och noll efter det.
Precis som du använde funktionen plot_acf i tidigare övningar använder du här en funktion som heter plot_pacf i modulen statsmodels.
Den här övningen är en del av kursen
Tidsserieanalys i Python
Övningsinstruktioner
- Importera modulerna för att simulera data och för att plotta PACF
- Simulera en AR(1) med \(\small \phi=0.6\) (kom ihåg att tecknet för AR-parametern är inverterat)
- Plotta PACF för
simulated_data_1med funktionenplot_pacf - Simulera en AR(2) med \(\small \phi_1=0.6, \phi_2=0.3\) (invertera tecknen även här)
- Plotta PACF för
simulated_data_2med funktionenplot_pacf
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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()