我在 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 示例)在我的机器上运行良好。
我知道这可能是一个很难解决的问题(请参阅此处),但我仍然希望有人能够提供帮助。
谢谢!