Можно ли автоматизировать прогнозирование временных рядов?


17

Я хотел бы построить алгоритм, который мог бы анализировать любые временные ряды и «автоматически» выбирать лучший традиционный / статистический метод прогнозирования (и его параметры) для анализируемых данных временных рядов.

Было бы возможно сделать что-то подобное? Если да, можете ли вы дать мне несколько советов о том, как это можно сделать?


3
Нет, этого невозможно достичь разумно. Зачастую не хватает данных, чтобы различить две разумные модели, не говоря уже о всех возможных моделях. Достижение наилучшей модели потребовало бы, чтобы физика была известна в абсолютных терминах, и очень часто предположения моделирования даже не известны и / или не проверены / не проверены.
Карл

3
Нет. Нет способа определить, какая модель лучше. Python не имеет отношения к этой дискуссии. Тем не менее, есть попытки с хорошими результатами. Например, проект github.com/facebook/prophet . Он также имеет привязку Python.
Кагдас Озгенц

3
Я голосую, чтобы оставить открытым, потому что я думаю, что это разумный вопрос - даже если ответ «нет». Я бы предложил удалить python из заголовка, потому что он не актуален или особенно по теме здесь.
mkt - Восстановить Монику

1
Я удалил Python из заголовка, как это было предложено. Спасибо за ваши ответы.
StatsNewbie123

2
Смотрите теорему "нет бесплатного обеда".
AdamO

Ответы:


19

Во-первых, вы должны отметить, что подход, описанный IrishStat, специфичен для моделей ARIMA, а не для какого-либо общего набора моделей.

Чтобы ответить на ваш главный вопрос «Можно ли автоматизировать прогнозирование временных рядов?»:

Да, это так. В моей области прогнозирования спроса большинство коммерческих пакетов прогнозирования делают это. Несколько пакетов с открытым исходным кодом также делают это, в частности функции auto.arima () (автоматизированное прогнозирование ARIMA) Роба Хиндмана и ETS () (прогнозирование с автоматическим экспоненциальным сглаживанием) из пакета прогнозирования с открытым исходным кодом в R. Подробную информацию об этих двух функциях см. Здесь. , Также есть реализация auto.arima на Python, которая называется Pyramid , хотя, по моему опыту, она не настолько зрелая, как пакеты R.

Как коммерческие продукты, о которых я упоминал, так и пакеты с открытым исходным кодом, о которых я говорил, работают на основе идеи использования информационных критериев для выбора наилучшего прогноза: вы выбираете несколько моделей, а затем выбираете модель с самым низким AIC, BIC, AICc, и т. д .... (обычно это делается вместо проверки образца).

Однако существует серьезное предостережение: все эти методы работают в рамках одного семейства моделей. Они выбирают наилучшую возможную модель из набора моделей ARIMA или наилучшую возможную модель из набора моделей экспоненциального сглаживания.

Это гораздо сложнее сделать, если вы хотите выбирать из разных семейств моделей, например, если вы хотите выбрать лучшую модель из ARIMA, экспоненциального сглаживания и метода Theta. Теоретически, вы можете сделать это так же, как в рамках одного семейства моделей, то есть с помощью информационных критериев. Однако на практике вам необходимо точно рассчитать AIC или BIC для всех рассматриваемых моделей, и это является серьезной проблемой. Возможно, было бы лучше использовать перекрестную проверку временных рядов или выборочную проверку вместо информационных критериев, но это потребует гораздо больших вычислительных затрат (и утомителен для кода).

Пакет пророка Facebook также автоматизирует генерацию прогноза на основе общих аддитивных моделей. Подробнее см. Здесь . Однако Пророк подходит только для одной модели, хотя и очень гибкой модели с множеством параметров. Подразумеваемое предположение Пророка заключается в том, что GAM - это «единственная модель, которая управляет ими всеми», что не может быть теоретически обоснованным, но очень прагматичным и полезным для сценариев реального мира.

Еще одна оговорка, которая применима ко всем вышеупомянутым методам: по-видимому, вы хотите сделать автоматическое прогнозирование временных рядов, потому что вы хотите прогнозировать несколько временных рядов, слишком много для анализа вручную. В противном случае вы можете просто провести свои собственные эксперименты и найти лучшую модель самостоятельно. Вы должны помнить, что подход автоматического прогнозирования никогда не найдет наилучшую модель для каждого временного ряда - он даст достаточно хорошую модель в среднем по всем временным рядам, но все же возможно, что некоторые из этих временных рядов будут иметь лучшие модели, чем те, которые были выбраны автоматическим методом. Смотрите этот постдля примера этого. Проще говоря, если вы собираетесь использовать автоматическое прогнозирование - вам придется терпеть «достаточно хорошие» прогнозы вместо наилучших возможных прогнозов для каждого временного ряда.


Спасибо за такой проницательный ответ. Честно говоря, моя первоначальная идея при задании этого вопроса состояла в том, чтобы иметь возможность выбирать из разных семейств моделей.
StatsNewbie123

Что, если алгоритм должен был быть применен к более конкретной области, такой как бизнес-прогнозирование (например, для планирования производства и управления запасами)? Считаете ли вы, что это может достичь лучших результатов?
StatsNewbie123

2
@JoanaClaudino да, это было бы легче - это суть того, что делают пакеты коммерческого прогнозирования спроса. Но это проще, потому что, как правило, когда вы ограничиваете себя одним конкретным бизнес-доменом, вы можете ограничить себя одним конкретным семейством моделей (временные ряды, приходящиеся из одного бизнес-домена, будут иметь сходные характеристики с точки зрения сезонности, плотности данных и т. Д ... . поэтому можно с уверенностью предположить, что одна семья будет подходить для всех из них)
Скандер Х. - Восстановить Монику

Хорошо, теперь я понял. Спасибо еще раз за такую ​​большую помощь.
StatsNewbie123

10

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

Вы просили советы, и я считаю, что это может быть хорошим для начала.

Я бы посоветовал вам написать код для отслеживания / эмуляции этой потоковой диаграммы / рабочего процесса. «Лучшая модель» может быть найдена путем оценки заданного вами критерия ... это может быть MSE / AIC для подобранных данных или MAPE / SMAPE для скрытых данных или любой другой критерий по вашему выбору.

Помните, что детализация каждого из этих этапов может быть довольно простой, если вы не знаете о некоторых конкретных требованиях / целях / ограничениях анализа временных рядов, НО это может быть (должно быть!) Более сложным, если у вас есть более глубокое понимание / изучение / оценка сложностей / возможностей, присутствующих в тщательном анализе временных рядов.

введите описание изображения здесь

введите описание изображения здесь

Меня попросили дать дальнейшие указания относительно того, как следует автоматизировать моделирование временных рядов (или моделирование в целом). Https://stats.stackexchange.com/search?q=peeling+an+onion содержит некоторые из моих рекомендаций по «Пилинг лука» и связанные с ним задачи.

AUTOBOX фактически детализирует и показывает промежуточные шаги, поскольку он формирует полезную модель и может быть полезным учителем в этом отношении. Вся научная идея состоит в том, чтобы «добавить то, что кажется необходимым» и «удалить то, что кажется менее чем полезным». Это итеративный процесс, предложенный Боксом и Бэконом в более ранние времена.

Модели должны быть достаточно сложными (достаточно причудливыми), но не слишком сложными (причудливыми). Предположение, что простые методы работают со сложными проблемами, не согласуется с научным методом, следующим за Роджером Бэконом и множеством последователей Бэкона. Как однажды сказал Роджер Бэкон, и я часто перефразировал: «Наука - это поиск повторяющихся паттернов. Обнаружение аномалий означает выявление значений, которые не повторяют повторяющиеся закономерности. Для тех, кто знает пути Природы, легче заметить ее отклонения, и, с другой стороны, тот, кто знает ее отклонения, будет более точно описывать ее пути. Каждый изучает правила, наблюдая, когда текущие правила терпят неудачу. В духе Бэкона, определяя, когда идентифицированная в настоящее время «лучшая модель / теория» неадекватна, можно затем перейти к «лучшему представлению».

По моим словам, «Тьюки предложил Исследовательский анализ данных (EDA), который предложил схемы уточнения модели на основе доказанного недостатка модели, предложенного данными». Это сердце AUTOBOX и науки. EDA предназначена для того, чтобы увидеть, что данные могут сказать нам, помимо формальной задачи моделирования или проверки гипотез.

Лакмусовый тест программы автоматического моделирования довольно прост. Разделяет ли он сигнал и шум без чрезмерной подгонки? Эмпирические данные свидетельствуют о том, что это можно и было сделано. Точность прогнозирования часто вводит в заблуждение, потому что будущее не несет ответственности за прошлое и в зависимости от того, какое происхождение вы выбираете, результаты могут и действительно различаться.


Огромное спасибо. Ваш ответ очень полезен!
StatsNewbie123

Спасибо, IrishStat. Это проницательно. Оправдано ли нам когда-либо сохранение параметра в отличие от «удаления параметра», несмотря на то, что параметр не является статистически значимым?
ColorStatistics

1
Да. если это даст вам более «приятный ответ». Коэффициент наклона, который не отличается от 0,0, может обеспечить более реалистичный (если не статистически значимый) прогноз. В противном случае перенос избыточных коэффициентов является нелогичным и вызывает повышенную неопределенность в прогнозе отклонений. Некоторые авторы, неспособные слепо / наивно рассматривать тесты необходимости и достаточности, предполагают, что идентификация модели - это 1-шаговый процесс, в то время как Бокс и Дженкинс (и все остальные!) Заинтересованы в том, чтобы сделать модель настолько сложной, насколько это необходимо, но не слишком сложной ... читать Альберт Э., Дж. У. Тьюки и др. Об этом подробнее.
IrishStat

3
«Этот предложенный подход к автоматическому прогнозированию позволит найти лучшую модель для каждого временного ряда, адаптируя форму модели, то есть настраивая ее так же, как индивидуальный костюм». Это довольно сильное утверждение - если оно точное, это означает, что такой подход выиграет соревнования М3, М4. Есть это?
Скандер Х. - Восстановить Монику

1
@ joana-claudino Я особенно заинтересован в вашем проекте ISEG, так как я также заинтересован в разработке Python-версии предложенных мной процедур. Это, конечно, будет за пределами сайта SE.
IrishStat
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.