我想预测在服务时间内进入商店的顾客数量。我有每小时的数据
- 周一至周五
- 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/