我有一个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
有帮助吗?

解决方案

如果你想要的概率,你可以让他们直接与 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