首页 > 解决方案 > R中不同分组的分组线性回归预测

问题描述

我正在尝试基于数据集中的特定组构建模型,并使用生成的模型通过遵循组限制来预测不同数据集的拟合。换句话说,使用下面的示例,使用原始数据的子集:cyl==4 构建的模型应仅用于预测新数据集(data1)的子集:cyl==4。任何人都可以帮助解决这个有趣的问题吗?

我试图用来data1%>% group_by(cyl)指定新数据,但这没有帮助

谢谢

library(broom)
library(dplyr)
library(purrr)


data1 <- head(mtcars,20)

x<-mtcars %>%
  group_by(cyl) %>%
  summarise(fit = list(lm(wt ~ mpg)), 
            data = list(cur_data())) %>%
  mutate(col   = map(fit, augment, newdata = data1%>% group_by(cyl)))```

标签: rgroup-byregression

解决方案


这是一个快速的方法来做到这一点

library(dplyr)
models = mtcars %>% group_by(cyl) %>% do(model = lm(wt ~ mpg, data = .))

然后访问各个模型

library(broom)
tidy(models$model[[1]])

做同样的另一种方法 -

models <- mtcars %>%
  nest_by(cyl) %>%
  mutate(mod = list(lm(mpg ~ disp, data = data)))

推荐阅读