В R, использование биномиальных () и ловушка для ограничения предсказывания () значения от 0 до 1
Вопрос
У меня есть 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
.