我正在做一个项目,在我的数据集中按组创建一系列 ARIMA 模型。这是我可重现的例子:
#Load libraries
library(dplyr)
library(workflows)
library(tidyr)
library(recipes)
library(parsnip)
library(tidymodels)
library(modeltime)
#Set up parameters
df <-mtcars
rec_carb_list <- list()
num_carbs <- length(unique(df$carb))
#Nest data by carb value
df_nest <- df %>%
nest(df_full = c(-carb))
#Create recipes
for (i in 1:num_carbs){
rec_carb_list[[i]] <- recipe(mpg ~ disp, data = df_nest$df_full[[i]])
}
#Assign recipes to workflows
wfl_list <- workflow()
for (i in 1:num_carbs){
wfl_list[[i]] <- workflow() %>%
add_recipe(rec_carb_list[[i]]) %>%
add_model(
arima_reg() %>%
set_engine(engine='auto_arima')
)
}
#Assign workflows to data
df_nest$workflow <- NA
for (i in 1:num_carbs){
df_nest$workflow[[i]] <- wfl_list[[i]]
}
我遇到的问题是倒数第二步。当我查看
View(wfl_list)
时,我看到了 pre、post、fit 和 trained 的预期组件,但我得到了两个额外的组件。食谱似乎没有正确映射。
我知道我可以通过不使用 for 循环并将每个配方单独分配给工作流程来解决这个问题,但在我使用的实际数据中,我有 > 6000 个组。
有人能帮我弄清楚将食谱分配给工作流程步骤有什么问题吗?
谢谢!