ПочатиПочніть безкоштовно

Оцінювання порядку моделі: 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()
Редагувати та запускати код