Выход модели равен list
str(result[[1]])
#List of 18
# $ coef : Named num 54.3
# ..- attr(*, "names")= chr "intercept"
# $ sigma2 : num 1454
# $ var.coef : num [1, 1] 131
# ...
, а 'result' также равен list
. Если мы сохраняем модель в виде столбца в «data.frame», то сохраняем ее как list
df1 <- data.frame(gr = names(result), model_result = I(result))
С tibble
мы можем напрямую создать list
столбец без каких-либо I
library(tibble)
df1 <- tibble(gr = names(result), model_result = result)
df1
# A tibble: 2 x 2
# gr model_result
# <chr> <named list>
#1 a <ARIMA>
#2 b <ARIMA>
Извлеките каждый элемент с помощью [[
df1$model_result[[1]]
#Series: df[df$gr == sample_name, ]$val
#ARIMA(0,0,0) with non-zero mean
#Coefficients:
# mean
# 54.3000
#s.e. 11.4378
#sigma^2 estimated as 1454: log likelihood=-50.07
#AIC=104.14 AICc=105.86 BIC=104.75
и примените forecast
forecast::forecast( df1$model_result[[1]], h = 3)
#Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
#11 54.3 5.439989 103.16 -20.42494 129.0249
#12 54.3 5.439989 103.16 -20.42494 129.0249
#13 54.3 5.439989 103.16 -20.42494 129.0249
Если мы хотим получить forecast
для всех элементов, используйте map
library(purrr)
map(df1$model_result, ~ forecast::forecast(.x, h = 3))