Комментарии 2
Я по работе постоянно имею дело с временными рядами (в первую очередь геофизическими, но также метео, гидрология, эконометрика и даже изредка этология). Но до сих мне пор как-то не приходилось использовать тест Дики-Фуллера, так как яркая нестационарность абсолютно всех изучаемых явлений была очевидна, что называется, невооруженным глазом (причем переход к приращениям чаще всего от нее не спасает). Я очень благодарен Вашей статье, - она мне просто "открыла глаза" по части этого самого ADF-теста. Причем для этого даже не пришлось самому его пользовать! А именно, я берусь утверждать (и готов это доказать методами матстатистики), что любой тест, который не отклоняет гипотезу о стационарности вот этих рядов (Ссылка на изображение из первой главы) и других им подобных, не годится даже в качестве принта-украшения на рулонах туалетной бумаги. То есть, если он уже есть в Вашем арсенале статметодов, то правильнее всего его оттуда выкинуть, как почти бесполезный генератор иллюзий. Если же его там еще нет - то Вам повезло, сможете потратить время на изучение чего-то более полезного с точки зрения практики работы с временными рядами ;-)
Нет-нет, я в курсе, что ADF-тест одно время широко использовался в эконометрике. Но в те времена, когда он был предложен, типичные временные ряды были немного другими (чаще всего с годовой скважностью, и лишь изредка с квартальной и месячной). С тех пор много всего в канализацию утекло... Разумеется, было бы наглостью с моей стороны пытаться опровергать классиков и нобелевских лауреатов без железобетонного на то основания... но если Вы в Вашей работе правильно применили ADF-тест к показанным в первой статье временным рядам (а навскидку очень похоже, что правильно), то никаких других комментариев, кроме слова "анахронизм", у меня к этому тесту не будет.
А если чуть-чуть серьезнее, то основную проблему я вижу в том, что реальные временные ряды почти никогда не удовлетворяют условиям применимости ADF-теста. В Википедии (да и во многих других случаях) эти условия применимости часто не формулируют явным образом, но даже там есть достаточно косвенных намеков (взять хотя бы отсылку к АР-модели), позволяющих заподозрить неладное. Ну то есть в теории, временные ряды с нужными свойствами потенциально возможны... но вот в моей достаточно обширной практике (пара сотен статей в рецензируемых изданиях) они не встречались вообще. Возможно, кому-то повезет больше... но вот мне
не встречались
Может, в этом и есть одна из причин, почему прогнозы эконометристов в реале почти всегда совсем не так хороши, как это следует (должно следовать) из внутренних критериев точности и сходимости используемых для прогноза моделей и алгоритмов?
Но как только мы выходим за границы условий применимости метода, результат становится непредсказуемым. Он может быть совершенно корректным, а может оказаться полной ерундой. Главная беда в том, что мы не сможем отличить первое от второго. В результате пять раз выводы будут правильными (так что организм мозга расслабится...) а на шестой - ОПА. И хорошо, если это будет не полная ОПА.
Как сказал один незаслуженно забытый классик, некритическое использование таких методов может приводить к ошибочным выводам, которые особенно опасны потому, что имеют видимость математической точности и строгости.
Если быть честным, то В.Ю.Урбаха классиком обычно не называют
Но лично для себя я совершенно однозначно отношу его к этой когорте и ставлю вровень с великими за ту единственную процитированную выше фразу, которую он не постеснялся написать на стр.7 своего учебника. Может, я ошибаюсь, но вроде бы он был первым, кто так просто и понятно сформулировал эту очевидную, но до сих пор не всеми осознанную мысль
И вдогонку добавлю еще про TBATS:
Сложность в том, что модель SARIMA напрямую не поддерживает более одной сезонности и считается, что её выполнение в этом случае будет не самой лучшей идеей. Отмечу, что для подобных случаев с несколькими сезонностями в данных были разработаны специальные модели, одна из которых TBATS. TBATS – это аббревиатура по заложенным в ней компонентам - Trigonometric, Box-Cox transformation, ARMA errors, Trend and Seasonal components, что по-русски можно перевести как «Тригонометрические функции - преобразование Бокса-Кокса - ошибки АРСС - тенденция - сезонные компоненты».
Я считаю изначально порочной практику, когда параметры всех составляющих временного ряда (=всех компонент, из которых он "состоит") оцениваются одновременно. Да, этот подход совершенно стандартно используется во множестве моделей и статпакетов. Однако его недостатки становятся очевидными, как только исходный сигнал начинает хотя бы немного отличаться от теоретического идеала. Например, функция распределения ошибок не гауссова. Или, боже упаси, они не стационарны. Я уж не говорю о тех случаях, когда параметры сложной модели не являются взаимно независимыми и/или в данных есть пропуски наблюдений, нарушающие априорное свойство
ортогональности параметров модели
Например, при некоторой длине сигнала две синусоиды, периоды которых укладываются в него целое (разное) количество, могут быть строго ортогональны. Но если - о, ужас! - часть наблюдений пропущена, то все: ортогональность теряется. И это только верхушка айсберга...
Главная причина популярности такого подхода заключается имхо не в том, что он так уж хорош, а скорее в желании пользователей нажать одну кнопку и получить результат. Не задумываясь о том,
через какие подводные камни модель перепрыгнула, чтобы его получить
И насколько робастны полученные оценки. И не развернулось ли у нее (модели) там что-то внутри в процессе оценивания в обратную сторону - так, что производная некоторого параметра по независимой переменной приобрела знак, обратный физически содержательному. Пока мы относимся к модели, как к черному ящику, у нас нет никаких гарантий на этот счет. Точнее, некоторые гарантии может дать теория, НО только в том случае, если исходные данные строго соответствуют заложенным в модель требованиям (постулатам). Однако на практике свойства экспериментальных рядов им практически никогда не удовлетворяют. Чаще всего простейшие тесты сразу показывают, что что-то не так. В лучшем случае очевидных опровержений нет, однако доказать точное соответствие требованиям все равно невозможно. (А неточное = прощай, строгость). В результате этого при работе с данными мониторинга теоретическая обоснованность модели/метода из очевидного преимущества превращается в нечто эфемерное-виртуальное. Поэтому мое твердое имхо заключается в том, что нет никакого смысла идти на какие-то жертвы и самоограничения при выборе методов анализа рядов данных и построении моделей сигналов ради соблюдения "математической строгости". Т.е. если она обеспечена - то это прекрасно. При прочих равных математически обоснованный метод всегда лучше эвристики. Но если за эту строгость надо платить, то тут я готов согласиться только на самую минимальную "цену"...
Впрочем, это уже совсем другая история...
На мой вкус, при работе с нетривиальными временными рядами нужно идти в обратном направлении. А именно, каждая физически содержательная составляющая сигнала должна оцениваться и изучаться отдельно от всех остальных. Даже можно сказать сильнее: при построении модели любой составляющей ряда (например, 24-часовой) ВСЕ остальные составляющие сигнала должны рассматриваться, как помехи. Идея в том, что:
1) сначала мы отфильтровываем из сигнала все, что там есть хоть сколько-нибудь предсказуемого (те же сезон и тренд, например). При этом используем такие алгоритмы фильтрации), которые в минимальной степени "портят" (искажают) 24-часовую периодичность.
2) После этого по очищенному от всех этих "помех" сигналу (который в идеальном случае должен выглядеть, как 24-часовая составляющая + шум с простыми и неизменными во времени свойствами) строим модель 24-часовой периодичности и оцениваем параметры этой модели. Разумеется, она вовсе не обязана при этом быть синусоидой или комбинацией синусоид. Подход позволяет строить такие модели, которые мы считаем наиболее физичными.
3) На следующем шаге мы строим модель следующей компоненты сигнала (например, сезонной). И так далее.
Фишка этого подхода состоит в том, что на шаге (3) мы можем очищать сигнал от суточной периодичности или тренда не просто обычной фильтрацией, а на основе ранее построенной модели этой периодичности/тренда, то есть гораздо точнее. И так далее, пока не построим модели всех физически значимых компонент.
4) А вот уже после этого можно пройтись по второму кругу еще разок, уточняя все ранее построенные модели. Так как теперь мы умеем отфильтровать "шум" (=нецелевые составляющие) гораздо лучше. Ведь у нас теперь есть отдельная модель для каждой составляющей этого шума. Итог - мы итеративно улучшаем модели всех составляющих и так далее
до сходимости
Да, в общем случае (если нет никаких ограничений на составляющие) тут могут возникнуть большие вопросы. Но для многих частных случаев (которые обычно и возникают на практике) со сходимостью все хорошо. Хотя, строгое доказательство последнего утверждения - это отдельная песня, и я далеко не уверен, что знаю к ней правильные слова...
5) Ну и заключительный шаг: теперь, когда мы знаем, из чего состоит наш сигнал (ведь у нас есть модели для каждой значимой составляющей сигнала!), нет ничего проще, чем "собрать" ряд из этих моделей и экстраполировать его вперед (=прогноз). Причем с гораздо более обоснованными оценками ошибок прогноза.
Пример реализации такого подхода для описания структуры временных рядов концентрации атмосферного CO2 на разных широтах можно найти вот в этих работах: раз, два. В частности, сезонная компонента там имеет растущую с течением времени амплитуду, что совершенно необходимо для адекватного описания данных, но непосильно никаким TBATS-моделям. Особенно с учетом того, что рост амплитуды сезонных эффектов оценивается непараметрическим трендом, который совершенно не похож на тренд концентрации СО2 (то есть мультипликативная модель (раз, два) не прокатит).
Если кому-то будет интереснее познакомиться с этими публикациями подробнее, их PDF-ки можно найти вот тут. Ну и меня тоже можно в комментах подергать (я на Хабр регулярно заглядываю).
Неувядающая классика или «чёрный ящик»: кто кого в битве за прогноз. Глава вторая. Начало