我最近开始尝试使用 OpenBUGS 和 R 进行一些贝叶斯建模R2OpenBUGS
。
我关注了 David Eagles 的安装 wine 和 OpenBUGS 的一个很好的链接,那里发布的学校示例运行良好。
然后,我尝试运行我拥有的一些代码,并在the model is syntactically correct
告诉我数据未正确加载后不断收到错误消息。
经过几天的故障排除后,似乎当数据文件超过一定长度时,最高位(您通常list
在 OpenBUGS 中突出显示以加载数据)丢失并且 OpenBUGS 无法加载数据。
我的 OpenBUGS 程序的屏幕截图,其中包含已加载的列表部分已被切断的数据
这张图片显示,在我的 data.txt 文件的顶部,不再有一个list{
基本上停止了我运行模型的所有尝试。
为了确认这一点,我运行了一个简单线性回归的示例,其中我将点数设置为 1000,然后设置为 100:
# Load in paths for running OpenBUGS through wine
source("/Users/dp323/Desktop/R/scripts/Where_is_my_OpenBUGS.R")
# set up model
linemodel <- function() {
for (j in 1:N) {
Y[j] ~ dnorm(mu[j], tau) ## Response values Y are Normally distributed
mu[j] <- alpha + beta * (x[j] - xbar) ## linear model with x values centred
}
## Priors
alpha ~ dnorm(0, 0.001)
beta ~ dnorm(0, 0.001)
tau ~ dgamma(0.001, 0.001)
sigma <- 1/sqrt(tau)
}
# set up data ####
linedata <- list(Y = c(1:100), x = c(1:100), N = 100, xbar = 3)
# set initial values ####
lineinits <- function() {
list(alpha = 1, beta = 1, tau = 1)
}
# run bugs ####
lineout <- bugs(data = linedata, inits = lineinits, parameters.to.save = c("alpha", "beta", "sigma"), model.file = linemodel, n.chains = 1, n.iter = 10000, OpenBUGS.pgm = OpenBUGS.pgm, WINE = WINE, WINEPATH = WINEPATH, useWINE = T, debug = T)
该模型运行良好,linedata <- list(Y = c(1:100), x = c(1:100), N = 100, xbar = 3)
但在加载数据阶段时崩溃了linedata <- list(Y = c(1:1000), x = c(1:1000), N = 1000, xbar = 3)
。
我已经用谷歌搜索了 wine 和 OpenBUGS 的数据文件大小限制,但没有发现任何有用的信息。
任何人有任何关于尝试什么/从哪里开始/以前体验过的建议?