MSTS и функция прогноза - PullRequest
1 голос
/ 17 января 2020

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

str(data)
'data.frame': 21840 obs. of 2 variables:
$ Date: POSIXct, format: "2017-05-01 00:00:00" "2017-05-01 01:00:00" ...
$ Freq: int 3 2 2 0 0 0 0 2 4 7 ...

data
Date Freq
1 2017-05-01 00:00:00 3
2 2017-05-01 01:00:00 2
3 2017-05-01 02:00:00 2
4 2017-05-01 03:00:00 0
5 2017-05-01 04:00:00 0
....

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

У меня возникли некоторые проблемы с функцией msts и прогнозом:

msts_cons<-msts(data$Freq, seasonal.periods = c(24,168)) -> Мой первый вопрос о сезонных периодах: они правильные? Первый соответствует ежедневной сезонности, а второй - еженедельной. Есть ли функция поиска другой сезонности? Кроме того, как я могу указать правильное начало (2017-05-01 00:00:00) и дату окончания (2019-31-31 23:00:00), если мои данные ежечасные?

accuracy(fmcast,teste$Freq)
ME RMSE MAE MPE MAPE MASE ACF1
Training set 0.007965302 2.468848 1.840179 NaN Inf 0.6851999 0.0009135862
Test set 0.226633926 2.622561 1.940317 -Inf Inf 0.7224869 NA

Когда я запускаю автопрогноз для моих данных, MAPE бесконечен, это происходит потому, что некоторые из моих реальных значений равны 0, верно?

Также в функции прогноза значение h - это количество прогнозов, которые я хочу, верно? Так что для прогнозирования месяца почасовых записей мне нужно h=720?

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

1 Ответ

1 голос
/ 18 января 2020
  1. Да, эти сезонные периоды верны для почасовых данных. Но вам, вероятно, лучше использовать пакет fable, который намного лучше обрабатывает почасовые данные, чем пакет forecast. Базовая структура данных, используемая в fable, представляет собой tsibble. См. https://cran.rstudio.com/web/packages/tsibble/vignettes/intro-tsibble.html для примера почасовых данных как tsibble.

  2. MAPE - процентная ошибка. Когда знаменатель равен нулю, вы получаете Inf. Это произойдет в вашем случае, когда в течение определенного c часа нет нуля пациентов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...