Очень похожий вопрос был задан здесь , но я хочу добавить столбцы для доверительного интервала. Их пример, который работает:
x <- mtcars %>%
group_by(gear) %>%
do(model = lm(mpg ~ hp + wt, data = .))
x
Source: local data frame [3 x 2]
Groups: <by row>
# A tibble: 3 x 2
gear model
* <dbl> <list>
1 3 <S3: lm>
2 4 <S3: lm>
3 5 <S3: lm>
mtcars %>%
group_by(gear) %>%
nest %>%
inner_join(x) %>%
mutate(preds = map2(model, data, predict)) %>%
unnest(data, preds)
Это работает и создает дополнительный столбец для mtcars
с прогнозируемыми значениями, сделанными с отдельной моделью для каждой группировки. Теперь, что я хотел бы сделать, это включить столбцы доверительных интервалов от predict()
mtcars %>%
group_by(gear) %>%
nest %>%
inner_join(x) %>%
mutate(preds = map2(model, data, predict, interval = "confidence")) %>%
unnest(data, preds)
Это возвращает ошибку:
Error in vec_rbind(!!!x, .ptype = ptype) : Internal error in `vec_assign()`: `value` should have been recycled to fit `x`.
Ошибка вызывается в unnest()
в последняя строка Я думаю, что проблема связана с форматом вывода predict()
, который представляет собой фрейм данных с 3 столбцами (fit, upr, lwr). Любая помощь будет оценена!