Сколько значений временного ряда стоит учитывать при прогнозировании?
На форуме Математического бюро пользователь Евгений задал вопрос, который стеснительные читатели несколько раз к ряду задавали мне в почте: «Почему вы берете ряды такой большой длины, ведь, как правило, для построения регрессионной модели достаточно от 50 значений?» Мне бы хотелось подробнее ответить на данный вопрос в нашем блоге.
История вопроса
Полвека назад, когда прогнозирование временных рядов только-только начинало свое существование, Бокс и Дженкинс написали грандиозную книгу «Анализ временных рядов, прогноз и управление», которая и по сей день фигурирует во всех списках литературы и моя диссертация — не исключение.
В этой книге исследуются временные ряды от нескольких десятков до нескольких сотен значений, анализируются, а далее для ряда из них строится модель прогнозирования. За упомянутые десятилетия системы хранения данных совершили грандиозный скачок — теперь в базах данных мы имеем тысячи, десятки и сотни тысяч, миллионы значений различных временных рядов. И ровно с этими массивами приходится иметь дело аналитику и математику. Пол века назад было очень сложно себе представить, как выполнить обработку временного ряда в 100 000 значений длиной. Словом, развитие технологий серьезно усложнило задачу прогнозирования временных рядов. В своем автореферате я писала:
— В настоящее время компаниями осуществляется накопление исторических значений экономических и физических показателей в базах данных, что существенно увеличивает объемы входной информации для задачи прогнозирования. Вместе с тем, развитие аппаратных и программных средств предоставляет все более мощные вычислительные платформы, на которых возможна реализация сложных алгоритмов прогнозирования. Кроме того, современные подходы к экономическому и техническому управлению предъявляют все более жесткие требования к точности прогнозирования. Таким образом, задача прогнозирования временных рядов усложняется одновременно с развитием информационных технологий.
Так сколько же значений нужно при прогнозировании?
При прогнозировании работа с временным рядом делится на несколько этапов. Остановимся на них подробнее.
Подготовительный этап: анализ временного рядаНа первом этапе, когда происходит анализ параметров временного ряда, ознакомление с ним, требуется использовать все имеющиеся значения ряда. На данном этапе происходит предварительная обработка данных: интерполяция пропущенных значений и корректировка (фильтрация) заведомо некорректных значений. Далее, очищенный от пропусков и неясных всплесков и провалов временной ряд анализируется: для него определяются основные характеристики — среднее значение, дисперсия и т. д.
Если у математика большой опыт в прогнозировании временных рядов или он давно работает с временными рядами одной предметной области, то часто бывает достаточно «пристального взгляда» на график значений временного ряда.
Основной этап работы с временным рядомКогда выполнен анализ временного ряда, необходимо сделать постановку задачи прогнозирования данного ряда, а также выбрать модель прогнозирования. О том, как выбрать модель прогнозирования временного ряда и какая из существующих моделей лучше, я уже писала. А уже после этого определяется сколько значений будет в модели учитываться, исходя из постановки задачи прогнозирования, имеющихся значений, а также требований модели.
Например, очень сложно провести корректное обучение нейронной сети на 50 значениях временного ряда, учитывая, что после этого необходимо оставить те значения, где полученная сеть будет тестироваться — так называемый, тестовый период. Другой пример: очень сложно провести идентификацию ARIMAX моделей и на 100 значений — современным регрессионные модели куда сложнее, а идентификация их куда более громоздкая, чем моделей, описанных Боксом и Дженкинсом. И для первой, и для второй модели прогнозирования, которые являются наиболее популярными, требуется от нескольких сотен до нескольких тысяч значений только для проведения идентификации модели. Для разработанной мною модели прогнозирования по выборке максимального подобия указано, что «длина временного ряда должна составлять не менее 500P - 700P», где P — время упреждения, то есть количество требуемых прогнозных значений ряда. Иначе применение модели по выборке максимального подобия не имеет смысла!
Кроме того, постановка задачи прогнозирования может быть такова, что вам и 1000 значений не хватит. Например, мы делаем прогноз значений цены и объемов энергопотребления на месяц вперед в почасовом разрешении, то есть прогнозируем каждый месяц на
700 значений вперед. Чтобы построить такой прогноз нужна солидная история, в частности, у нас учитываются все имеющиеся значения временного ряда, а это составляет более 50 000 значений для каждого ряда. А прогнозов таких мы делаем 19 штук ежемесячно.
Вывод
На первом этапе необходимо исследование всех имеющихся в распоряжении значений временного ряда. Далее, количество значений, принимаемых в расчет, будет обуславливаться двумя важнейшими факторами: постановкой задачи прогнозирования и выбранной моделью прогнозирования. В случае регрессионной модели (я тут имею в виду и регрессию, и авторегрессию) в настоящее время и при современных вычислительных мощностях 50 значениями обойтись очень сложно.