НачатьНачать бесплатно

Определение порядка модели: PACF

Один из полезных инструментов для определения порядка AR-модели — анализ частичной автокорреляционной функции (PACF). В этом упражнении вы смоделируете два временных ряда — AR(1) и AR(2) — и вычислите выборочный PACF для каждого из них. Обратите внимание: для AR(1) PACF должен иметь значимое значение на лаге 1 и быть близким к нулю на последующих лагах. Для AR(2) значимыми должны быть лаги 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()
Редактировать и запускать код