我想预测服务时间内进入商店的顾客数量。我有每小时的数据,用于
因此,我假设我的时间序列实际上是规则的,但从某种意义上说是非典型的,因为我有每天10小时和每周5天。
我可以通过将非工作时间设置为零来使用此常规的24/7时间序列进行建模,但是我发现这种效率低下并且也不正确,因为没有丢失时间。相反,它们不存在。
使用我可以明确指定的旧ts
框架
myTS <- ts(x, frequency = 10)
但是,在新的tsibble/fable
框架内,这是不可能的。它每小时检测一次数据,并且期望每天24小时而不是10小时。每个后续功能使我想起时间上的隐含差异。手动覆盖interval
-Attribute的工作原理:
> 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天真[1]遇到错误。.data中包含隐式间隙时间。您应该检查数据并将隐式差距转换为如果需要,可以使用
tsibble::fill_gaps()
来明确显示缺失值。
任何帮助将不胜感激。
此问题实际上对应于this gh issue。据我所知,没有R包允许用户构造自定义时间表,例如指定某些日内和日间。几个软件包提供了一些特定的日历(例如工作日期),但是没有一个软件包提供设置日内的解决方案。当提供这样的程序包时,Tsibble将为自定义日历获得一个calendar
参数,以尊重结构性缺失。但目前尚不支持。
正如您所说,这是每小时的数据。因此,data间隔应为1小时,而不是10小时。但是,ts()
frequency
是季节性时段,每天10个小时,用于建模。