MSTS和预报功能

MSTS and forecast function

我的数据是每小时进入急诊室的病人数量,也就是说我每天有 24 个点的数据,如下面的table。

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. 是的,这些季节性周期对于每小时数据是正确的。但是你最好使用 fable 包,它比 forecast 包更擅长处理每小时数据。 fable 中使用的底层数据结构是 tsibble。有关每小时数据的示例,请参阅 https://cran.rstudio.com/web/packages/tsibble/vignettes/intro-tsibble.html tsibble

  2. MAPE 是百分比误差。当分母为零时,您会得到 Inf。当特定时间的患者为零时,您的情况就会发生这种情况。