标签: fable-r

tidyverts 中的分层建模/协调问题

我正在尝试按照Rob Hyndman 的 Rstudio.conf 研讨会的方式进行分层预测,但遇到了一些问题。这是我的代码:

library(dplyr)
library(tsibbledata)
library(tsibble)
library(fable)

aus_retail_2013_tr <- aus_retail %>%
    filter(Month <= yearmonth("2013 Dec"))
aus_retail_2013_vl <- aus_retail %>%
    filter(Month > yearmonth("2013 Dec"))

hmod <- aus_retail_2013_tr %>%
    aggregate_key(State*Industry, Turnover=sum(Turnover)) %>%
    model(ar=ARIMA(log(Turnover))) %>%
    reconcile(ar_adj=min_trace(ar))

fcasts_hmod <- forecast(hmod, aus_retail_2013_vl)

fcasts_hmod %>%
    filter(is_aggregated(Industry), State == "Victoria") %>%
    autoplot()
Run Code Online (Sandbox Code Playgroud)

该图的输出如下。

在此处输入图片说明

我的主要问题是:

  • 和解实际上似乎根本没有改变预测。图片表明arar_adj线是相同的。
  • 预测仅针对 2014 年至 2015 年的时间段,而我知道完整数据集到 2018 年。

我该如何解决这些问题?后一个可能是因为并非所有时间序列都涵盖整个时期,但我怎样才能reconcile不跳过缺失的时期?

这是 dplyr 0.8.5、fable 0.2.0、fabletools 0.1.3 和 tsibble 0.8.6。我在 Ubuntu/R 3.6.3 和 Windows 10/R 4.0.0 …

r forecasting fable-r tidyverts

7
推荐指数
1
解决办法
474
查看次数

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

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

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

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

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

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

myTS <- ts(x, frequency = 10)
Run Code Online (Sandbox Code Playgroud)

然而,在新的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
Run Code Online (Sandbox Code Playgroud)

但对建模没有影响:

model(ts,
      snaive = SNAIVE(customers ~ lag("week")))
Run Code Online (Sandbox Code Playgroud)

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

snaive [1] 遇到 1 个错误。数据包含隐式时间间隙。您应该检查数据并tsibble::fill_gaps()根据需要使用将隐式间隙转换为显式缺失值。

任何帮助,将不胜感激。

r time-series forecasting tsibble fable-r

6
推荐指数
1
解决办法
1078
查看次数

寓言:从 ARIMA 模型中提取 p,d,q 规范

我一直在使用 tidy 预测包寓言(它非常有用)。

我想知道是否有一种简单的方法可以从 mable 中提取 p、d、q 值。

以本指南中的数据为例https://www.mitchelloharawild.com/blog/fable/

library(tidyverse)
library(tsibble)
library(fable)

tourism_state <- tourism %>% 
  group_by(State) %>% 
  summarise(Trips = sum(Trips))

fit <- tourism_state %>% 
  model(arima = ARIMA(Trips))
Run Code Online (Sandbox Code Playgroud)
> fit
# A mable: 8 x 2
# Key:     State [8]
  State                                 arima
  <chr>                               <model>
1 ACT                          <ARIMA(0,1,1)>
2 New South Wales    <ARIMA(0,1,1)(0,1,1)[4]>
3 Northern Territory <ARIMA(1,0,1)(0,1,1)[4]>
4 Queensland                   <ARIMA(2,1,2)>
5 South Australia    <ARIMA(1,0,1)(0,1,1)[4]>
6 Tasmania           <ARIMA(0,0,3)(2,1,0)[4]>
7 Victoria           <ARIMA(0,1,1)(0,1,1)[4]>
8 Western Australia            <ARIMA(0,1,3)>
Run Code Online (Sandbox Code Playgroud)

我知道规格存储在 model[[1]]$fit$spec 下,但如果我有大量模型,我无法找到提取它们的方法

理想情况下我想要

  State                                 arima …
Run Code Online (Sandbox Code Playgroud)

r arima fable-r

5
推荐指数
1
解决办法
125
查看次数

与表格分开报告模型

我如何才能从 mable 中单独报告每个模型。

示例代码(来自https://otexts.com/fpp3/holt-winters.html

library(fabletools)
library(fable)
library(forecast)
library(tsibble)
library(feasts)

aus_holidays <- tourism %>%
  filter(Purpose == "Holiday") %>%
  summarise(Trips = sum(Trips))

fit <- aus_holidays %>%
  model(
    additive = ETS(Trips ~ error("A") + trend("A") + season("A")),
    multiplicative = ETS(Trips ~ error("M") + trend("A") + season("M"))
  )
fc <- fit %>% forecast(h = "3 years")

fc %>%
  autoplot(aus_holidays, level = NULL) + xlab("Year") +
  ylab("Overnight trips (millions)") +
  scale_color_brewer(type = "qual", palette = "Dark2")
Run Code Online (Sandbox Code Playgroud)

在上面的示例中,我想分别报告加法模型和乘法模型。我尝试过report(fc$additive),但这不起作用。或者,我可以一次安装一个模型,并且report(fc).

r forecasting tsibble fable-r

4
推荐指数
1
解决办法
590
查看次数

R 库 Forecast::auto.arima 与 fable:ARIMA 有什么区别?

在线文档表明,底层算法与估计 (s)Arima 模型相同。在一些测试中,使用 Kaggle 数据集,我有不同的模型:ARIMA 函数向我显示 sArima、auto.arima 仅 Arima 模型。

auto.arima(tsbble_item1_store1$sales)
Run Code Online (Sandbox Code Playgroud)

Best model: ARIMA(5,1,2)
Run Code Online (Sandbox Code Playgroud)

tsbble_item1_store1 %>%
               model(arima = ARIMA(sales))
Run Code Online (Sandbox Code Playgroud)

# A mable: 1 x 2
# Key:     store [1]
 store                    arima
<dbl>                  <model>
1     1 <ARIMA(1,1,3)(0,0,2)[7]>
Run Code Online (Sandbox Code Playgroud)

我有非常不同的模型。顺便说一句,Arima 的寓言函数向我展示了一个更好的模型,因为它控制季节性,而 auto.arima 函数则没有,而且数据显示明显的季节性。

当两个函数尝试估计模型时,有人知道默认参数的主要区别吗,因为我不明白文档?

抱歉,如果我有一些错误

提前致谢

祝你有美好的一天

MC

r forecasting arima fable-r

3
推荐指数
1
解决办法
984
查看次数

fable 封装的 ARIMA 算法可以并行工作吗?

我正在尝试使用 fable 包创建 1000 家商店的预测。包是否fable像函数一样并行工作forecast

非常感谢

r forecasting arima forecast fable-r

2
推荐指数
1
解决办法
759
查看次数

标签 统计

fable-r ×6

r ×6

forecasting ×5

arima ×3

tsibble ×2

forecast ×1

tidyverts ×1

time-series ×1