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

Введение

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

В этой статье я хочу рассмотреть некоторые основные и простые модели прогнозирования. Несмотря на свою простоту, эти модели могут дать хорошие результаты на практике и послужить хорошей основой для повторения.

Средний прогноз

Первая модель, которую мы рассмотрим, — это усредненный прогноз. Эта модель просто предполагает, что все будущие значения равны среднему значению всех предыдущих наблюдений:

Где h — шаг времени в будущем, для которого мы прогнозируем, T — длина временного ряда, y_t – наблюдаемое значение в момент времени t и y_bar — среднее значение наблюдаемых значений. Для этой модели у нас должны быть некоторые прошлые данные для расчета прогноза.

Мы можем реализовать это на Python, используя набор данных авиапассажиров США:

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

Судя по приведенному выше графику, прогноз явно не очень хорош, поскольку он не улавливает тенденцию или сезонность в данных и явно значительно занижает прогноз.

Наивное прогнозирование

Вторая модель, наивное прогнозирование, устанавливает будущий прогноз равным последнему наблюдаемому значению:

Эта модель считается эталоном для любого прогноза и часто используется для моделирования фондового рынка и финансовых данных из-за ее неустойчивого характера. Наивную модель также можно назвать моделью случайного блуждания без дрейфа.

Это также лежит в основе показателя ошибки средняя абсолютная масштабированная ошибка (MASE). Это показатель точности, который выбирают многие профессиональные прогнозисты, поскольку он не зависит от масштаба, интерпретируем и симметричен. Вы можете прочитать больше о MASE в моем предыдущем посте здесь:



Пример построения и выполнения метода наивного прогноза показан ниже в Python:

Это лучше, чем средний прогноз, поскольку он в некоторой степени уловил тенденцию и не так сильно занижает прогноз. Однако в нем по-прежнему отсутствует годовая сезонная изменчивость.

Сезонное наивное прогнозирование

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

Математически модель записывается так:

Где m — это сезонность данных. Таким образом, для месячных данных с годовой сезонностью m=12квартальные данные будут иметь m=4и недельные данные будут иметь m=52.

Ниже представлена ​​реализация сезонной наивной модели на Python для нашего набора данных о пассажирах авиакомпаний США:

Поскольку наша модель имеет довольно очевидный и большой компонент сезонности, наивная сезонная модель работает довольно хорошо. Тем не менее, он не полностью отразил тенденцию данных, поскольку мы ожидаем, что пассажиропоток будет увеличиваться со временем.

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





Дрейфовая модель

Последняя модель, которую мы рассмотрим, — это модель дрейфа. Это также расширение наивного прогноза, где мы позволяем прогнозу либо линейно увеличиваться, либо уменьшаться во времени в зависимости от временного шага, h,масштабируется по среднему историческому тренду:

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

Эта модель является примером стохастического дрейфа. Другие модели, такие как геометрическое броуновское движение и случайное блуждание. >» также используйте стохастический дрейф.

Ниже представлена ​​реализация модели drift в Python:

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

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

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

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

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



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

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

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