OpenBUGS中的内部“陷阱”错误

时间:2017-03-21 16:12:05

标签: bayesian jags winbugs openbugs

我在R版本3.3.2(2016-10-31),平台:x86_64-pc-linux-gnu(64位)上的OpenBUGS中设置多变量法线(MANOVA样)回归时遇到问题,运行于:Ubuntu 14.04.5 LTS。

我的模特是:

model
{
  ### Likelihood
  for(i in 1:nfish){ 
    CC[i, 1:ngen] ~ dmnorm(mu[i, 1:ngen], Sigma.inv[1:ngen, 1:ngen])
    for(j in 1:ngen){
    mu[i, j] <- CC.y[i] + beta0[j] + beta1[j] * Sdl[i]
    }
  }
  ### Priors
  for(i in 1:ngen){
        beta0[i] ~ dnorm(0.0, 0.01)
        beta1[i] ~ dnorm(0.0, 0.01)
  }
     Sigma.inv[1:ngen, 1:ngen] ~ dwish(R[,], ngen)
    Sigma[1:ngen, 1:ngen] <- inverse(Sigma.inv[,])
}

数据样本:

bugs.data <- list(CC = matrix(c(-3.75, -4.40,  -1.60,
                -3.75, -4.41,  -1.71,
                -8.67, NA,  -5.23,
                -8.92, -9.29,  -5.12,
                -8.69, -9.22,  -9.48,
                -9.87, -9.80, -18.32,
                -4.71, -5.01,  NA,
                -4.69, -5.09,  -1.67,
                -3.62, -2.86,  -0.26,
                -3.93, -2.88,  -0.21), ncol = 3),
    CC.y = c(0.77,  0.82,  0.12,  0.08,  1.69,  1.69, -1.20, -1.15,  1.45,  1.46), 
    Sdl = c(0.96, 0.96, 0.76, 0.76, 0.40, 0.40, 0.97, 0.97, 0.27, 0.27), 
    nfish = 10, 
    ngen = 3, 
    R = matrix(c(3,0,0,0,3,0,0,0,3),ncol = 3));

Inits(编译模型时发生错误时未使用):

inits <- function()   {list(beta0 = rnorm(3, -3.0,  1.0), beta1 = rnorm(3, 1.0,  0.2), Sigma.inv = matrix(rep(runif(1, 0, 1), 9), ncol = 3))}

然后开始采样时:

> modelCheck("MVNmodel.bugs")
model is syntactically correct
> modelData("data.txt")
data loaded
> modelCompile(numChains = 3)
Error in handleRes(res) : 
  Internal "trap" error in OpenBUGS, or non-existent module or procedure called.

使用BRugs或R2OpenBUGS从R连接openBUGS时遇到同样的问题。这也不是在数据中具有NA的问题。注意Lunn等人的多变量正常“Jaws”例子。 (Jaws example)在我的机器上正常运行。

我知道这可能是一个难以解决的问题(See here),但我仍然希望有人能够提供帮助。

谢谢!

0 个答案:

没有答案