我的数据是进入急诊室的每小时患者人数,这意味着我每天有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
吗?
谢谢。
答案 0 :(得分:1)
是的,这些季节周期适用于每小时数据。但是使用fable
软件包可能会更好,因为它比forecast
软件包在处理每小时数据方面要好得多。 fable
中使用的基础数据结构是tsibble
。有关每小时数据作为tsibble
的示例,请参见https://cran.rstudio.com/web/packages/tsibble/vignettes/intro-tsibble.html。
MAPE是百分比错误。当分母为零时,得到Inf
。在特定情况下,当一个小时内有零个患者时,就会发生这种情况。