采用长格式摆幅的多个时间序列

时间:2019-11-17 14:53:13

标签: r fable-r tsibble

我想运行时间序列模型,以使用fable软件包来预测未来的发展。据我了解,我需要将数据保存为tsibble格式。这就是我想要做的,

  • 生成三个ID
  • 这三个id的时间戳
  • 三个随机数列
  • tsibble的身份加入所有
  • 提前一个月预测

所以我想先做一个tsibble。为此,我尝试使用以下几行来创建

ts <- tsibble(
  ids = c(rep(43, 20), rep(33, 20), rep(11, 20)),
  timest = rep(yearmonth("2010 Jan") + 0:19, each = 3),
  data = rnorm(60, mean = 10, sd = 5),
  key = ids
)

使用此标签,我要运行以下模型,

fit <- ts %>%
  model(
    arima = ARIMA(data)
  )
fit

fc <- fit %>%
  forecast(h = "1 month")
fc

但是,创建tsibble时遇到问题。我知道我不能重复,但指向key = ids应该可以解决问题。有人可以帮助我找到我正在做的错误吗?

1 个答案:

答案 0 :(得分:2)

您快到了。而不是timest = rep(yearmonth("2010 Jan") + 0:19, each = 3),您需要timest = rep(yearmonth("2010 Jan") + 0:19, times = 3)时间与ID不一致。每个都连续3次复制“ 2010 jan”,而不是整个输入重复3次。在rep ?rep

的帮助下查看详细信息
library(tsibble)

ts <- tsibble(
  ids = c(rep(43, 20), rep(33, 20), rep(11, 20)),
  timest = rep(yearmonth("2010 Jan") + 0:19, times = 3),
  data = rnorm(60, mean = 10, sd = 5),
  key = ids,
  index = timest
)