0

我正在尝试在 JAGS 中运行模型,但出现以下错误:

Error in jags.model(model.file, data = data, inits = init.values, n.chains = n.chains,  : 
RUNTIME ERROR:
Cannot insert node into m[1]. Dimension mismatch

我指定的模型是

model = "model
    {
      for (i in 1:N) {
        z[i] ~ dnorm(m[i],tau)
        m[i] <- beta0 + beta1*x + beta2*y
      }
      beta0 ~ dnorm(0.0,1.0E-3)
      beta1 ~ dnorm(0.0,1.0E-3)
      beta2 ~ dnorm(0.0,1.0E-3)
      tau ~ dgamma(0.01,0.01)
    }"

然后我指定数据和初始值。最后,我运行模型。

data = list(z = wolfcamp$data, x = wolfcamp$coords[,1], y = wolfcamp$coords[,2], N = length(wolfcamp$data))

parameters=c("beta0","beta1","beta2","tau")
init1 = list(beta0 = 0, beta1 = 0, beta2 = 0, tau = 0)
init2 = list(beta0 = 1, beta1 = 1, beta2 = 1, tau = 1)
initial.values=list(init1, init2)

model1=jags(data=data, inits=initial.values,
            parameters.to.save=parameters,
            model.file=textConnection(model),
            n.chains=2,
            n.burnin=1000,
            n.iter=11000)

你能帮助我吗?你知道我为什么会收到这个错误吗?提前致谢。

4

1 回答 1

2

看起来您没有通过向量x和进行索引y,这会导致尺寸不匹配。

更改此行:

m[i] <- beta0 + beta1*x + beta2*y

对此:

m[i] <- beta0 + beta1*x[i] + beta2*y[i]

你应该很高兴(只要xy是长度N

于 2018-11-05T14:45:15.940 回答