r - 如何使用 tsibble 和 fable 指定服务时间的间隔或频率?

标签 r time-series forecasting fable-r tsibble

我想预测在服务时间内进入商店的顾客数量。我有每小时的数据

  • 周一至周五
  • 8:00 至 18:00

因此,我认为我的时间序列实际上是有规律的,但在某种意义上是非典型的,因为我每天 10 小时每周 5 天。 p>

我可以通过将非服务时间设置为零来对这个常规的 24/7 时间序列进行建模,但我发现这样做效率低下而且也不正确,因为时间并没有丢失。相反,它们并不存在。

使用旧的ts框架,我能够明确指定

myTS <- ts(x, frequency = 10)

但是,在新的tsibble/fable框架内这是不可能的。它检测每小时的数据,预计每天 24 小时,而不是 10 小时。每个后续函数都会提醒我隐含的时间间隙。手动覆盖interval-属性有效:

> attr(ts, "interval") <- new_interval(hour = 10)
> has_gaps(ts)
# A tibble: 1 x 1
.gaps
<lgl>
1 FALSE

但对建模没有影响:

model(ts,
      snaive = SNAIVE(customers ~ lag("week")))

我仍然收到相同的错误消息:

1 error encountered for snaive [1] .data contains implicit gaps in time. You should check your data and convert implicit gaps into explicit missing values using tsibble::fill_gaps() if required.

如有任何帮助,我们将不胜感激。

最佳答案

这个问题实际上对应的是this gh issue 。据我所知,没有 R 包允许用户构建自定义计划,例如指定某些日内和日期。有几个软件包提供了一些特定的日历(例如营业日期),但没有一个提供设置日内的解决方案。当此类包可用时,Tsibble 将获得自定义日历的 calendar 参数,以尊重结构缺失。但目前不支持这一点。

正如您所说,这是每小时数据。因此数据间隔应为 1 小时,而不是 10 小时。但是,ts() 频率 是季节性周期,每天 10 小时,用于建模。

关于r - 如何使用 tsibble 和 fable 指定服务时间的间隔或频率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60597646/

相关文章:

r - 批处理模式引用参数解析

r - 使用 `accumulate` 将列表中的数据帧反连接到原始先前的数据帧

在 R 中逐行读取 csv 文件并创建一个特征?

r - R : padding at user-defined interval中的padr

R:Holt-Winters 每日数据(预测包)

r - geom_point 不接受 0 作为值

r - 获取 R 中帮助文档的(网络)URL?

python - lstm预测结果延迟现象

python - 如何更改 ARMAX.predict 的 maxlag?

python - ARIMA 预测 : Cannot cast ufunc subtract output from dtype ('float64' ) to dtype ('int64' ) with casting rule 'same_kind'