【问题标题】:MSTS and forecast functionMSTS和预测功能
【发布时间】:2020-01-17 17:12:13
【问题描述】:

我的数据是每小时进入急诊室的患者人数,这意味着我每天有 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

提前致谢。

【问题讨论】:

  • 那么如何在 msts 中定义正确的开始日期/小时和结束日期?

标签: r time-series forecasting


【解决方案1】:
  1. 是的,这些季节性周期对于每小时数据是正确的。但是您可能最好使用fable 包,它在处理每小时数据方面比forecast 包要好得多。 fable 中使用的底层数据结构是tsibble。请参阅 https://cran.rstudio.com/web/packages/tsibble/vignettes/intro-tsibble.html 以获取每小时数据的示例,例如 tsibble

  2. MAPE 是一个百分比错误。当分母为零时,您将得到Inf。当特定小时内有零个患者时,这将发生在您的情况下。

【讨论】:

  • 要将此 data.frame 转换为 tsibble 我使用:dados = as_tsibble(data, index = Date) > dados # A tsibble: 23,400 x 4 [1h] <UTC> Date Freq <dttm> <int> 1 2017-05-01 00:00:00 3 2 2017-05-01 01:00:00 2 3 2017-05-01 02:00:00 2 但是当我尝试书中fit <- dados %>% model(Freq ~TSLM()) 中的示例时,模型为空:> fit1 # A mable: 1 x 1 TSLM(Demand ~ trend()) <model> 1 <TSLM> 我认为问题在于缺失键入“dados”。在这种情况下,关键是什么?提前谢谢你。
  • 请将此作为一个不同的问题提出,并提供一个可重复的示例。
猜你喜欢
  • 2017-08-22
  • 2019-09-07
  • 2017-10-20
  • 1970-01-01
  • 2019-01-22
  • 1970-01-01
  • 2019-07-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多