Как узнать лучшую формулу FASSTER

Моя структура данных представлена ​​на изображении ниже и имеет почасовые интервалы. Мне нужно спрогнозировать спрос.

# A tsibble: 23,400 x 6 [1h] <UTC>
          Date           Demand WeekDay DaysAfterHoliday Influenza MAX_Temperature
        <dttm>            <int>   <int>            <int>     <dbl>           <dbl>
 1 2017-05-01 00:00:00    122       1                0      1               19.2
 2 2017-05-02 01:00:00    124       2                1      3.04            25.3

...

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

Для сезонности я могу использовать FASSTERдля обработки праздничных эффектов. Я прочитал страницу документации r по этой и некоторой презентации, но в этих случаях сезонность и формула прогноза передаются функции следующим образом:

# NOT RUN {
cbind(mdeaths, fdeaths) %>%
  as_tsibble %>%
  model(FASSTER(mdeaths ~ fdeaths + poly(1) + trig(12)))

# }

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

Заранее спасибо!

1 ответ

Решение

Пакет fasster в настоящее время не предоставляет никаких возможностей для автоматического выбора модели (https://github.com/tidyverts/fasster/issues/50).

Чтобы определить подходящую спецификацию более быстрой модели, вы можете начать с графического исследования ваших данных, чтобы определить их структуру. Некоторые вопросы, которые вы можете рассмотреть, включают:

  • Ваши данные сезонные? Какие сезонные периоды требуются?
    Включите сезонность в термины Фурье черезfourier(period, K) или season(period). Обычно используяfourier() термины лучше, поскольку можно указать количество гармоник (K) позволяет контролировать плавность сезонности и уменьшать параметры модели.
  • Ваши данные включают уровень или местные тенденции?
    Включите уровень сpoly(1) или тенденция с poly(2).
  • Существуют ли потенциальные экзогенные регрессоры (хороший пример - температура в спросе на электроэнергию).
    Включите экзогенные регрессоры так же, как и вlm().
  • Есть ли закономерности в вашем перемежаются данных в предсказуемых способов (например, сезонности в будние дни и в выходные дни).
    Использование%S%для переключения между этими шаблонами. Например, чтобы иметь разный сезонный график для будних и выходных дней, вы можете рассмотретьday_type %S% (fourier("day", K = 7)), где day_type - это переменная в вашей модели, которая указывает, является ли день будним или выходным.

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

Другие вопросы по тегам