В R, использование биномиальных () и ловушка для ограничения предсказывания () значения от 0 до 1

StackOverflow https://stackoverflow.com//questions/9610318

  •  09-12-2019
  •  | 
  •  

Вопрос

У меня есть GLM, Family= Binomial (Link= Logit) Модель, которую я применяю в рамках функции прогнозирования (), увиденной ниже.Предсказные значения выходят за пределы ноль и 1, но я хотел бы сохранить их в качестве вероятностей.Таким образом, я использую биномиальную () $ Inverse Command, которую можно использовать в функции Применить.

Это работало просто в первый раз, когда я пробел его, но после закрытия r вниз и начинает снова, теперь я получаю эту ошибку:

     Error in get(as.character(FUN), mode = "function", envir = envir) : 
     object 'ilogit' of mode 'function' was not found"
.

Я боролся с этим в течение нескольких часов, поскольку этот код нормально работал.У кого-нибудь есть идея о том, что я делаю не так?Есть ли лучший способ сделать это?

Мой код ниже.Я также пробовал другие вариации, но не могу заставить его работать.

    ## predicted probabilities 
    pp <- predict(logit_model,
            newdata=data,
            type="link",
            se.fit=T)

   ilogit <- binomial()$inverse
   yhat_prob <- lapply(pp,ilogit) #converts to probabilities
.

Это было полезно?

Решение

Если вы хотите, чтобы вероятности, вы можете иметь их напрямую с type="response", как объяснено в документации, ?pregict.glm.

Для сообщения об ошибке вы получаете, вам, вероятно, понадобится binomial()$linkinv.

> str( binomial() )
List of 12
 $ family    : chr "binomial"
 $ link      : chr "logit"
 $ linkfun   :function (mu)  
 $ linkinv   :function (eta)  
 $ variance  :function (mu)  
 ...
.

Недостаток ошибки, вероятно, был из-за некоторых загруженных вами пакета, который определил функцию ilogit.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top