各位大侠:

我有以下贝叶斯R代码:

<br />
N <- 1000<br />
x <- 1:N<br />
epsilon <- rpois(N, 10)<br />
y <- 2*x +3 + epsilon</p>
<p>model<-"<br />
model {<br />
	for (i in 1:N){<br />
		y[i] ~ dnorm(y.hat[i], tau)<br />
		y.hat[i] <- a + b * x[i]<br />
	}<br />
	a ~ dnorm(0, .0001)<br />
	b ~ dnorm(0, .0001)<br />
	tau ~ dnorm(0,100)<br />
	#tau <- pow(sigma, -2)<br />
	#sigma ~ dunif(0, 100)<br />
}<br />
"<br />
N=length(x)<br />
jags <- jags.model(textConnection(model),<br />
                   data = list(x = x,y = y, N = N),<br />
                   n.chains = 3,<br />
                   n.adapt = 100)</p>
<p>update(jags, 1000)</p>
<p>jags.samples(jags,<br />
             c('a', 'b'),<br />
             1000)<br />
</p>

报错如下:

Compiling model graph

Resolving undeclared variables

Allocating nodes

Graph Size: 4007

Initializing model

Deleting model

错误于jags.model(textConnection(model), data = list(x = x, y = y, N = N), :

Error in node y[1000]

Invalid parent values

请问是什么原因?

谢谢!

可将prior改为:

tau <- 1/(sigma * sigma)

sigma ~ dunif(0, 10)