R JAGS: Несоответствие размеров - PullRequest
0 голосов
/ 03 ноября 2018

Я пытаюсь запустить модель в 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 голосов
/ 05 ноября 2018

Похоже, вы не индексируете через векторы x и y, что приводит к несоответствию размеров.

Изменить эту строку:

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

к этому:

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

и вам нужно идти (если x и y имеют длину N)

...