Описание того, что такое частичная автокорреляция и ее важность в анализе временных рядов
Введение
В моем предыдущем посте мы обсуждали понятие автокорреляция:
Автокорреляция — это корреляция случайных величин или данных друг с другом в разные моменты времени (лаги). Автокорреляция передает сходство данных с разным лагом, что позволяет нам вывести некоторые интересные особенности наших временных рядов, такие как сезонность и тенденция.
Если вы хотите узнать больше об автокорреляции, обязательно ознакомьтесь с моим постом, ссылку на который я дал выше!
Большинство людей слышали об автокорреляции, однако вы можете не знать о ее менее популярном родственнике функция частичной автокорреляции (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 здесь:
Ссылки и дополнительная литература
- Прогнозирование: принципы и практика: https://otexts.com/fpp2/
Свяжись со мной!
- Чтобы читать неограниченное количество историй на Medium, обязательно зарегистрируйтесь здесь! 💜
- Чтобы получать обновления, когда я публикую сообщения, подпишитесь на уведомления по электронной почте здесь! 😀
- LinkedIn👔
- Твиттер🖊
- GitHub🖥
- Kaggle🏅
(Все эмодзи разработаны OpenMoji — проект эмодзи и иконок с открытым исходным кодом. Лицензия: CC BY-SA 4.0)