Как определить оптимальный горизонт прогноза временных рядов?

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


Ответы (3 шт):

Автор решения: Pak Uula

Я бы сказал, нет такого.

Начать нужно с того, что вы называете оптимальным горизонтом. На расстоянии менее горизонта расхождение с предсказанием должно быть не более 10%? или 20%? Или ещё как?

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

→ Ссылка
Автор решения: CrazyElf

Это сильно зависит от природы данных. Например, если вы предсказываете курс акций, то вряд ли найдёте модель лучше, чем "следующее значение = предыдущему значению", т.е. оптимальный горизонт тут - один шаг. Или вы предсказываете покупки какого-то товара, например, новогодних игрушек. Понятно, что тут силён сезонный фактор и продажи новогодних игрушек в декабре будет проще предсказать, чем в июне. В декабре оно будет примерно такое же, как в декабре прошлого года, а в июне - скорее всего, совершенно случайное (но небольшое). Кто-то решил сделать кому-то подарок в виде новогодних игрушек заранее - и вот продажи их в июне выросли на 100%. Как такое предсказать? Да никак. В общем: "Know your data", как говорится.

→ Ссылка
Автор решения: JeeyCi

если данные стационарны - то любой, но при увеличении горизонта будет увеличиваться и доверительный интервал для прогноза -- какой Д.И. вам комфортен, на такой интервал В.Р. и делайте прогноз

если данные не стационарны - прогноз можно сделать только на 1 шаг вперёд

чтобы нестационарные данные привести к стационарным - можно использовать первые разности вместо самих данных, т.е. np.diff(x)

→ Ссылка