R 中的预测:UseMethod 模型函数错误
Forecasting in R: UseMethod model function error
我正在尝试 运行 在月度 tsibble 数据集上使用不同的预测建模方法。它的 head() 看起来像:
# A tsibble: 6 x 2 [1M]
month total
<mth> <dbl>
1 2000 Jan 104.
2 2000 Feb 618.
3 2000 Mar 1005.
4 2000 Apr 523.
5 2000 May 1908.
6 2000 Jun 1062.
并具有以下结构:
tsibble [212 x 2] (S3: tbl_ts/tbl_df/tbl/data.frame)
$ month: mth [1:212] 2000 Jan, 2000 Feb, 2000 Mar, 2000 Apr, 2000 May, 2000 Jun, 2000 Jul, 2000 Aug, 2000 Sep, 2000 Oct, 2000 Nov...
$ total: num [1:212] 104 618 1005 523 1908 ...
- attr(*, "key")= tibble [1 x 1] (S3: tbl_df/tbl/data.frame)
..$ .rows: list<int> [1:1]
.. ..$ : int [1:212] 1 2 3 4 5 6 7 8 9 10 ...
.. ..@ ptype: int(0)
- attr(*, "index")= chr "month"
..- attr(*, "ordered")= logi TRUE
- attr(*, "index2")= chr "month"
- attr(*, "interval")= interval [1:1] 1M
..@ .regular: logi TRUE
数据集是从 2000/01 到 2017/08 的月度数据,没有缺失值或时间段。我正在尝试 运行 模型,例如:
df %>%
model(STL(total ~ season(window=9),robust=T)) %>%
components() %>% autoplot()
fit <- df %>%
model(ANN =ETS(total ~ error("A") + trend("A") + season()))
但是对于任何类型的模型,我都尝试 运行 我每次都会得到完全相同的错误。我正在寻找更正 tsibble 结构的建议,以允许这些模型函数工作。
Error in UseMethod("model") :
no applicable method for 'model' applied to an object of class "c('tbl_ts', 'tbl_df', 'tbl', 'data.frame')"
编辑:包括可重现的例子:
a = c(sample(1:1000,212))
df.ts <- ts(a, start=c(2000,1),end=c(2017,8),frequency=12)
df <- df.ts %>% as_tsibble()
感谢您提供的示例,我能够毫无错误地得到它 运行,如下所示:
library(tidyverse)
library(fpp3)
a = c(sample(1:1000,212))
df.ts <- ts(a, start=c(2000,1),end=c(2017,8),frequency=12)
df <- df.ts %>% as_tsibble()
df %>%
model(STL(a ~ season(window=9),robust=T)) %>%
components() %>% autoplot()
fit <- df %>%
model(ANN =ETS(a ~ error("A") + trend("A") + season()))
report(fit)
下面是分解的样子:
模型报告如下:
正如 Russ Conte 和 Rob Hyndman 所发现的,所使用的示例代码本身没有任何错误。
我认为两个包之间存在重叠问题,因为我的问题在删除并重新安装预测包后得到解决。
我正在尝试 运行 在月度 tsibble 数据集上使用不同的预测建模方法。它的 head() 看起来像:
# A tsibble: 6 x 2 [1M]
month total
<mth> <dbl>
1 2000 Jan 104.
2 2000 Feb 618.
3 2000 Mar 1005.
4 2000 Apr 523.
5 2000 May 1908.
6 2000 Jun 1062.
并具有以下结构:
tsibble [212 x 2] (S3: tbl_ts/tbl_df/tbl/data.frame)
$ month: mth [1:212] 2000 Jan, 2000 Feb, 2000 Mar, 2000 Apr, 2000 May, 2000 Jun, 2000 Jul, 2000 Aug, 2000 Sep, 2000 Oct, 2000 Nov...
$ total: num [1:212] 104 618 1005 523 1908 ...
- attr(*, "key")= tibble [1 x 1] (S3: tbl_df/tbl/data.frame)
..$ .rows: list<int> [1:1]
.. ..$ : int [1:212] 1 2 3 4 5 6 7 8 9 10 ...
.. ..@ ptype: int(0)
- attr(*, "index")= chr "month"
..- attr(*, "ordered")= logi TRUE
- attr(*, "index2")= chr "month"
- attr(*, "interval")= interval [1:1] 1M
..@ .regular: logi TRUE
数据集是从 2000/01 到 2017/08 的月度数据,没有缺失值或时间段。我正在尝试 运行 模型,例如:
df %>%
model(STL(total ~ season(window=9),robust=T)) %>%
components() %>% autoplot()
fit <- df %>%
model(ANN =ETS(total ~ error("A") + trend("A") + season()))
但是对于任何类型的模型,我都尝试 运行 我每次都会得到完全相同的错误。我正在寻找更正 tsibble 结构的建议,以允许这些模型函数工作。
Error in UseMethod("model") :
no applicable method for 'model' applied to an object of class "c('tbl_ts', 'tbl_df', 'tbl', 'data.frame')"
编辑:包括可重现的例子:
a = c(sample(1:1000,212))
df.ts <- ts(a, start=c(2000,1),end=c(2017,8),frequency=12)
df <- df.ts %>% as_tsibble()
感谢您提供的示例,我能够毫无错误地得到它 运行,如下所示:
library(tidyverse)
library(fpp3)
a = c(sample(1:1000,212))
df.ts <- ts(a, start=c(2000,1),end=c(2017,8),frequency=12)
df <- df.ts %>% as_tsibble()
df %>%
model(STL(a ~ season(window=9),robust=T)) %>%
components() %>% autoplot()
fit <- df %>%
model(ANN =ETS(a ~ error("A") + trend("A") + season()))
report(fit)
下面是分解的样子:
模型报告如下:
正如 Russ Conte 和 Rob Hyndman 所发现的,所使用的示例代码本身没有任何错误。
我认为两个包之间存在重叠问题,因为我的问题在删除并重新安装预测包后得到解决。