1

R の winbug でロジット回帰分析を行っています。このモデルのすべての係数を強制的に正にする必要があります。したがって、すべての係数に一様な事前確率を使用しましたが、winbugs はこれに満足していません。ばかげたエラー ウィンドウが生成されます。すべての係数に対して以前のように使用するdnorm(0.0,1.0E-4))と、問題は解決しました。以下に示すこのモデルで正のベータを取得するにはどうすればよいでしょうか?

model
{
for (i in 1:m) {
 # Linear regression on logit
 logit(p[i]) <- beta.concern2*DCEconcern2[i] + beta.concern3*DCEconcern3[i] +     beta.concern4*DCEconcern4[i] + beta.concern5*DCEconcern5[i] +
beta.breath2*DCEbreath2[i] + beta.breath3*DCEbreath3[i] + beta.breath4*DCEbreath4[i] + beta.breath5*DCEbreath5[i] + 
beta.weath2*DCEweath2[i] +beta.weath3*DCEweath3[i] +beta.weath4*DCEweath4[i] +beta.weath5*DCEweath5[i] +
beta.sleep2*DCEsleep2[i] +beta.sleep3*DCEsleep3[i] +beta.sleep4*DCEsleep4[i] +beta.sleep5*DCEsleep5[i] +
beta.act2*DCEact2[i] +beta.act3*DCEact3[i] +beta.act4*DCEact4[i]     +beta.act5*DCEact5[i]


y2[i] ~ dbern(p[i])
}
beta.concern2 ~ dunif(0,100)
beta.concern3 ~ dunif(0,100)
beta.concern4 ~ dunif(0,100)
beta.concern5 ~ dunif(0,100)
beta.breath2 ~ dunif(0,100)
beta.breath3 ~ dunif(0,100)
beta.breath4 ~ dunif(0,100)
beta.breath5 ~ dunif(0,100)
beta.weath2 ~ dunif(0,100)
beta.weath3 ~ dunif(0,100)
beta.weath4 ~ dunif(0,100)
beta.weath5 ~ dunif(0,100)
beta.sleep2 ~ dunif(0,100)
beta.sleep3 ~ dunif(0,100)
beta.sleep4 ~ dunif(0,100)
beta.sleep5 ~ dunif(0,100)
beta.act2 ~ dunif(0,100)
beta.act3 ~ dunif(0,100)
beta.act4 ~ dunif(0,100)
beta.act5 ~ dunif(0,100)
}
4

2 に答える 2

1

試す

dnorm(0, 1.0E-8)I(0, 1.0E8)

10 の代わりに 1.0 に注目してください。これが「予期された右括弧」エラーの原因でした。

于 2013-01-14T12:58:51.857 に答える
0

あなたの場合、私はハーフフラットノーマル、つまり次のようなものを好むでしょう

dnorm(0, 1.0E-8)I(0, 1.0E8)

試してみます。

編集: 追加された は、配布を からまでI(a, b)の間隔に制限するだけです。ab

于 2013-01-11T12:27:39.247 に答える