如何在多个回归模型之后的循环中 运行 ggpredict()?

How to run ggpredict() in a loop following multiple regression models?

目的是得到几个回归模型的预测概率的输出。首先我运行几个回归模型使用下面的代码:

library(dplyr)
library(tidyr)
library(broom)
library(ggeffects)

mtcars$cyl=as.factor(mtcars$cyl)

df <-  mtcars %>%
  group_by(cyl) %>%
  do(model1 = tidy(lm(mpg  ~ wt + gear + am , data = .),  conf.int=TRUE)) %>%   
  gather(model_name, model, -cyl) %>%                        ## make it long format
  unnest() 

我想获得预测变量权重 (wt) 的预测概率。如果我想 运行 手动为每个不同的气缸 (cyl) 编写代码,它将如下所示:

#Filter by number of cylinders
df=filter(mtcars, cyl==4)
#Save the regression
mod= lm(mpg  ~ wt + gear + am, data = df)
#Run the predictive probabilities
pred <- ggpredict(mod, terms = c("wt"))

这将是第一个圆柱体 cyl==4 的代码,然后我们必须 运行 第二个 (cyl==6) 和第三个 (cyl==8).这有点麻烦。我的目标是像我在上面的第一个代码中对回归分析所做的那样将其自动化。另外,我想以与第一个代码相同的格式获得这些结果。换句话说,它们应该采用可以在之后绘制的格式。有人可以帮我吗?

重新运行内部带有 ggpredict() 的模型:

df <- mtcars %>%
  group_by(cyl) %>%
  do(model1 = ggpredict(lm(mpg ~ wt + gear + am, data= .), terms = c("wt"))) %>%
  gather(model_name, model, -cyl) %>% unnest_legacy()

然后您可以针对 'predicted' 绘制 wt(在 'x' 列中)。请注意,您会收到有关这些数据的警告消息。