我有一组数据,其形式如下:
library(tidyverse)
library(readxl)
library(tsibble)
library(tsibbledata)
library(purrr)
library(lubridate)
library(fable)
library(fabletools)
library(tidymodels)
library(feasts)
data <- tibble(Date=yearweek(mdy("5/6/2022","5/14/2022","5/21/2022")),
value=c(3,5,7))
ts_data <- tsibble(data)
new_test_data <- tibble(`Formula ID` = c(1),
`Formula Name` = c("Flubber"),
data=list(data),data_ts=list(ts_data))
这给了我tibble,看起来如下:
公式ID | 公式名称 | 数据数据 | |
---|---|---|---|
1 | Flubber | 2个变量 | 2变量
也许这有助于您入门。要估计ARIMA或任何其他模型,必须使用model()
作为其第一个参数,该参数采用数据集和一个或多个模型规范,例如ARIMA
。此外,当使用map
在数据集的列表列上循环时,必须将单个元素或数据集传递给model()
,而不是列表列本身。
library(tidyverse)
library(lubridate)
library(fabletools)
library(fable)
library(tsibble)
new_test_data <- new_test_data %>%
mutate(model = map(data_ts, ~ model(.x, ARIMA(value))))
new_test_data$model |> map(report)
#> Series: value
#> Model: ARIMA(1,0,0) w/ mean
#>
#> Coefficients:
#> ar1 constant
#> 0 5.0000
#> s.e. 1 0.9428
#>
#> sigma^2 estimated as 8: log likelihood=-5.73
#> AIC=17.46 AICc=-6.54 BIC=14.75
#> [[1]]
#> # A mable: 1 x 1
#> `ARIMA(value)`
#> <model>
#> 1 <ARIMA(1,0,0) w/ mean>