我有一个GLM,family = binomial(link = logit)模型,我在predict()函数中应用,如下所示。预测值超过零和1,但我希望将它们保持为概率。所以我使用了binomial()$ inverse命令,然后可以在apply函数中使用它。
第一次运行它时效果很好,但在关闭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
答案 0 :(得分:4)
如果您需要概率,可以直接使用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
函数。