Работа с отсутствующими данными в модели экспоненциального сглаживания

14

Похоже, не существует стандартного способа справиться с отсутствующими данными в контексте семейства моделей экспоненциального сглаживания. В частности, реализация R, называемая ets в пакете прогноза , кажется, просто берет самую длинную подпоследовательность без пропущенных данных, и книга «Прогнозирование с экспоненциальным сглаживанием» Hyndman et al. похоже не говорит о пропущенных данных вообще.

Я хотел бы сделать немного больше, если мои пользователи прямо просят меня об этом (и если недостающие данные не появляются слишком близко друг к другу или в слишком много периодов, которые находятся точно в одном сезоне). В частности, я имею в виду следующее. Во время симуляции всякий раз, когда я сталкиваюсь с отсутствующим значением , я текущий прогноз точки на , так что . Это, например, сделает точку данных не учитываемой для процесса оптимизации параметров.YTY~TYTεTзнак равно0

Как только у меня будет подходящее соответствие для параметров, я могу оценить стандартное отклонение ошибок (предполагается, что оно нормальное со средним значением 0 ) и убедиться, что использование значений для εT сгенерированных из этого распределения, не уменьшает вероятность в большой степени. Я бы использовал такие значения для прогнозирования (используя симуляцию).

Есть ли известные подводные камни с этим методом?

Эрик П.
источник
Рассматривали ли вы использование гауссовского процесса с экспоненциальным ковариационным ядром? Похоже, естественный способ обработки отсутствующих данных и получения доверительных интервалов. R имеет пакет GPFit, который вы можете посмотреть.
LE Rogerson

Ответы:

2

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

Ваша схема применяется к одиночному экспоненциальному сглаживанию (SES), но, конечно, вы можете применить ту же обработку к трендовым или сезонным компонентам. Для сезонных, вам нужно будет вернуться к полному сезонному циклу, так же как и для обновления.

Конечно, другой альтернативой будет просто интерполировать пропущенные значения. Это опция в более новых версиях ets(..., na.action="na.interp").

Из того, что я мало знаю о моделях пространства состояний, не должно быть слишком сложно просто рассматривать пропущенные данные как ненаблюдаемые. Я не уверен, почему это не реализовано в forecastпакете. Быстрый поиск по блогу Роба Хиндмана не принес ничего полезного.

Стефан Коласса
источник