如何在服务时间内使用小节和寓言来指定间隔或频率?

问题描述 投票:3回答:1

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

  • 星期一至星期五
  • 8:00至18:00

因此,我假设我的时间序列实际上是规则的,但从某种意义上说是非典型的,因为我有每天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()来明确显示缺失值。

任何帮助将不胜感激。

r time-series forecasting fable-r tsibble
1个回答
0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.