Описание того, что такое частичная автокорреляция и ее важность в анализе временных рядов

Введение

В моем предыдущем посте мы обсуждали понятие автокорреляция:



Автокорреляция — это корреляция случайных величин или данных друг с другом в разные моменты времени (лаги). Автокорреляция передает сходство данных с разным лагом, что позволяет нам вывести некоторые интересные особенности наших временных рядов, такие как сезонность и тенденция.

Если вы хотите узнать больше об автокорреляции, обязательно ознакомьтесь с моим постом, ссылку на который я дал выше!

Большинство людей слышали об автокорреляции, однако вы можете не знать о ее менее популярном родственнике функция частичной автокорреляции (PACF). В этом коротком и приятном посте я хочу описать, что такое PACF, чем он полезен, и рассмотреть простой пример применения PACF в Python.

Что такое частичная автокорреляция?

Мы можем начать с объяснения частичной корреляции. Это корреляция между двумя случайными переменными при контроле влияния другой (или более) случайной переменной, влияющей на исходные переменные, которые мы коррелируем.

Допустим, у нас есть три случайные величины: X, Y и Z. Частичная корреляция между X и Y,без учета влияния Z, математически:

Где r — это коэффициент корреляции, который находится в диапазоне от -1 до 1.

Тогда частичная автокорреляция — это просто частичная корреляция временного ряда в двух разных состояниях во времени. Если сделать еще один шаг вперед, то это корреляция между временными рядами с двумя разными лагами без учета влияния каких-либо промежуточных лагов. Например, частичная автокорреляция для лага 2 — это только корреляция, которую лаг 1 не объясняет.

Почему это полезно?

В отличие от автокорреляции, частичная автокорреляция не использовалась мной для анализа временных рядов. Однако основное и очень важное его влияние приходится на построение моделей прогнозирования.

PACF используется для оценки количества/порядка компонентов авторегрессии при подборе авторегрессии, ARMA или . модели ARIMA, определенные процедурой Бокса-Дженкинса. Эти модели, вероятно, наиболее часто используются и часто дают наилучшие результаты при обучении модели прогнозирования.

В будущих блогах я планирую объяснить модели авторегрессии, ARMA и ARIMA. До тех пор, обратитесь к ссылкам выше, чтобы узнать об этих соответствующих алгоритмах.

Давайте теперь рассмотрим пример на Python с применением PACF.

Пример на Питоне

Мы будем работать с набором данных о пассажиропотоках авиакомпаний:

Данные получены из Kaggle с лицензией CC0.

В данных прослеживается четкая тенденция и очевидная годовая сезонность.

Модуль Python statsmodels предоставляет функцию plot_pacf для построения графика PACF с различными задержками, также известную как коррелограмма:

Мы видим, что отставание 1 сильно коррелировано, и есть другие сильно коррелированные отставания позже во времени, которые, вероятно, связаны с сезонными факторами.

Однако из этого графика совершенно неясно, сколько авторегрессоров мы бы выбрали, если бы строили модель прогнозирования. Поэтому часто рекомендуется просто выполнить поиск по сетке возможных параметров с помощью пакетов моделирования, таких как auto arima.

Синяя область — это место, где задержки больше не являются статистически значимыми. Обычно мы выбираем количество авторегрессоров, видя, сколько из них находится над синей областью.

Резюме и дальнейшие мысли

В этом посте мы получили представление о частичной автокорреляции. Это корреляция временного ряда с его запаздывающей версией, исключающая любые промежуточные запаздывания. Его основное использование заключается в оценке количества компонентов авторегрессии для моделей прогнозирования, таких как ARMA и ARIMA.

Полный код, использованный в этом посте, доступен на моем GitHub здесь:



Ссылки и дополнительная литература

Свяжись со мной!

(Все эмодзи разработаны OpenMoji — проект эмодзи и иконок с открытым исходным кодом. Лицензия: CC BY-SA 4.0)