Определение порядка модели: 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()