2013-05-16 43 views
0

我WinBUGS软件代码如下:如何找到后验参数的概率WinBUGS软件

model 
{ 
    for (i in 1:N){ logit(p[i])<- alpha+ beta*x[i] 
     y[i]~ dbin(p[i], n[i]) 
    } 

    alpha~ dnorm(0,0.000001) 
    beta~ dnorm(0,0.000001) 
    pbeta<-step(beta-0) 
} 

list(N=20, 
n=c(6, 7, 6, 8, 8, 5, 6, 6, 5, 8, 6, 5, 7, 6, 6, 7,6 , 6, 7, 3), 
y=c(0,2,6,2,2,1,3,6,2,3,4,3,7,0,1,0,0,1,1,2), 
x=c(25.7, 32.3, 49.6, 35.2, 35.9, 33.2, 39.8, 51.3, 32.9, 40.9, 
43.6, 42.5, 50.4, 36.5, 34.1, 31.3, 28.3, 36.5, 37.4, 40.6)) 
list(alpha=0.1, beta=0.2) 

运行此代码后,我有α和β的后验分布。现在我想看看P(beta>0)。他们说我可以使用pbeta<- step(beta)(pbeta被视为虚拟变量:如果beta=0为0,并且如果beta>0为1)。但是当我把它放在模型中时,它给了我一个错误通知。

回答

0

我看不出你的代码有什么问题,它为我运行。错误信息是什么?

在一个不相关的问题上,如果您将协变量值集中在平均值附近,那么您的MCMC链应该更有效地收敛。

+0

谢谢你的回答,实际上,现在它运行。我不知道为什么,我做了同样的事情,但它只在一天结束时才起作用。 – Thaole