прогнозирование линейной регрессии по группе с dplyr - PullRequest
1 голос
/ 14 мая 2019

Построение этого вопроса: Добавление столбца прогнозируемых значений во фрейм данных с помощью dplyr

Если я введу код в принятом ответе:

library(dplyr)
library(purrr)
library(tidyr)

# generate the inputs like in the question
example_table <- data.frame(x = c(1:5, 1:5),
                            y = c((1:5) + rnorm(5), 2*(5:1)),
                            groups = rep(LETTERS[1:2], each = 5))

models <- example_table %>% 
  group_by(groups) %>% 
  do(model = lm(y ~ x, data = .)) %>%
  ungroup()
example_table <- left_join(tbl_df(example_table ), models, by = "groups")


# generate the extra column
example_table %>%
  group_by(groups) %>%
  do(modelr::add_predictions(., first(.$model))) %>% mutate(model = NULL)

Я получаю прогнозы, хранящиеся в списке:

   x         y groups                                             pred
1  1  1.798848      A 1.645775, 2.233358, 2.820940, 3.408523, 3.996105
2  2  2.936818      A 1.645775, 2.233358, 2.820940, 3.408523, 3.996105
3  3  1.513431      A 1.645775, 2.233358, 2.820940, 3.408523, 3.996105
4  4  3.300870      A 1.645775, 2.233358, 2.820940, 3.408523, 3.996105
5  5  4.554734      A 1.645775, 2.233358, 2.820940, 3.408523, 3.996105
6  1 10.000000      B                                   10, 8, 6, 4, 2
7  2  8.000000      B                                   10, 8, 6, 4, 2
8  3  6.000000      B                                   10, 8, 6, 4, 2
9  4  4.000000      B                                   10, 8, 6, 4, 2
10 5  2.000000      B                                   10, 8, 6, 4, 2

Есть ли способ, чтобы каждая строка (y ~ x) имела 1 прогнозируемое значение? А не список для всей группы?

1 Ответ

0 голосов
/ 14 мая 2019

Был конфликт с xts посылкой.Это решило это:

example_table %>%
  group_by(groups) %>%
  do(modelr::add_predictions(., dplyr::first(.$model))) %>% mutate(model = NULL)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...