R JAGS:尺寸不匹配

时间:2018-11-03 18:39:12

标签: r jags r2jags

我试图在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)

你能帮我吗?您知道我为什么会收到此错误吗? 预先感谢。

1 个答案:

答案 0 :(得分:2)

您似乎没有通过向量xy进行索引,这会导致尺寸不匹配。

更改此行:

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

对此:

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

而且您应该走的很好(只要xy的长度为N