1

以下に示すように、predict()関数内で適用するGLM、family = binomial(link = logit)モデルがあります。予測値は0と1を超えていますが、確率として保持したいと思います。そこで、apply関数で使用できるbinomial()$inverseコマンドを使用します。

これは、最初に実行したときは問題なく機能しましたが、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
4

1 に答える 1

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ます。

于 2012-03-07T23:04:10.893 に答える