добавление прогнозов для регрессии logisti c (сгруппированная переменная) - PullRequest
0 голосов
/ 17 апреля 2020

Я пытаюсь выполнить регрессию logisti c путем группировки. Я перепробовал все перечисленные методы, но получаю следующую ошибку

Ошибка в UseMethod («прогноз») ): нет применимого метода для «предиката», примененного к объекту класса «c (« tbl_df »,« tbl »,« data.frame ') »

 # analysis ----------------------------------------------------------------
    models<-  df %>% 
    group_by(organ) %>% 
    do(model = glm(IHC ~ Dose,
                     data = .,
                     family = binomial(logit))) %>%
    ungroup

    new<-predict(models, newdata = data.frame(dose=1:10))

    Error in UseMethod("predict") : 
      no applicable method for 'predict' applied to an object of class "c('tbl_df', 'tbl', 'data.frame')"


Organ_factor     organ                        Dose IHC
1             1   Diaphragm                   0.00   0
2             2   Diaphragm inflammation      0.00   0
3             3   Heart cell                  0.00   0
4             5   Heart  mixed cell           0.00   0

1 Ответ

0 голосов
/ 17 апреля 2020

Вы можете использовать augment() из пакета метлы в сочетании с гнездом / картой / unnest.

library(purrr)
library(broom)

models <- df %>%
  group_by(organ) %>%
  nest() %>%
  mutate(model = map(data, ~ glm(IHC ~ Dose, data = ., family = binomial(logit)),
         augmented = map2(model, data, augment))

models %>%
  unnest(augmented)

Прогнозируемые значения будут в столбце .fitted.

Примечание что они будут в масштабе git: вы можете добавить type.predict = "response" в качестве аргумента функции дополнения, если хотите, чтобы они были вероятностями.

...