1

我在 R 版本 3.3.2(2016-10-31)上的 OpenBUGS 中设置多元正态(MANOVA 样)回归时遇到问题,平台:x86_64-pc-linux-gnu(64 位),在以下条件下运行: 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 示例)在我的机器上运行良好。

我知道这可能是一个很难解决的问题(请参阅此处),但我仍然希望有人能够提供帮助。

谢谢!

4

0 回答 0