2016-09-06 19 views
2

OpenBUGSを初めて使用しましたが、logit()関数を使用してモデルをフィッティングする際に問題が発生しました。より複雑なモデルでWinBUGS/OpenBUGSで明示的にlogit関数を指定する

が使用しているとき、私たちはかなり頻繁に問題を経験している:私の周りに読ん

は、このための1つの可能な解決策はWinBUGS自身ロジット関数を使用せずに、ロジット関数を指定明示的になることがわかりました例えば、 コンバージェンスを実現するWinBUGS独自のロジット関数(実際には、かなり単純な モデルでも問題が発生する可能性があります)。したがって、変換は、logit.p [i] < --log(p [i] /(1 - p [i]))、p [i] を明示的に指定する方が良い場合があります。<- exp(logit.p [i])/(1 + exp(logit.p [i]))またはp [i] <-1 /(1 + exp(- logit.p [i]))である。

(詳細はhttp://www.mbr-pwrc.usgs.gov/software/kerybook/AppendixA_list_of_WinBUGS_tricks.pdf、ポイント14)。

問題は、私は、のは、私のオリジナル尤度関数と仮定してみましょうことを行う方法を理解していないということです、WinBUGS統合ロジット関数を使用して、だった:私は、明示的なことを書く方法

for (i in 1:n){ 
    y[i] ~ dbern(p[i]) 
    logit(p[i]) <- beta[1] + beta[2]*x1[i] + beta[3]*x2[i] + beta[4]*x3[i] 
    } 

ありがとうございました。

同僚にヴィンチェンツォ

答えて

2

おかげで、私は、明示的OpenBUGSにロジット関数を指定する方法を発見した作業コードは、以下の通りです:

for (i in 1:n){ 
y[i] ~ dbern(logit.p[i]) 
logit.p[i] <- 1/(1 + exp(-p[i])) 
p[i] <- beta[1] + beta[2]*x1[i] + beta[3]*x2[i] + beta[4]*x3[i] 
} 
関連する問題