Оцінювання порядку моделі: PACF
Один із корисних інструментів для визначення порядку моделі AR — це часткова автокореляційна функція (PACF). У цій вправі ви змоделюєте два часові ряди — AR(1) і AR(2) — та обчислите вибіркову PACF для кожного. Ви помітите, що для AR(1) PACF має суттєве значення на лагу 1, а далі приблизно нулі. А для AR(2) вибіркова PACF має суттєві значення на лагах 1 і 2, а далі нулі.
Так само, як ви використовували функцію plot_acf у попередніх вправах, тут ви використаєте функцію plot_pacf з модуля statsmodels.
Ця вправа є частиною курсу
Аналіз часових рядів у Python
Інструкції до вправи
- Імпортуйте модулі для моделювання даних і для побудови PACF
- Змоделюйте AR(1) з \(\small \phi=0{,}6\) (пам'ятайте, що знак параметра AR інвертований)
- Побудуйте PACF для
simulated_data_1за допомогою функціїplot_pacf - Змоделюйте AR(2) з \(\small \phi_1=0{,}6, \phi_2=0{,}3\) (знову ж таки, інвертуйте знаки)
- Побудуйте PACF для
simulated_data_2за допомогою функціїplot_pacf
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# 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()