我最近正在对一组生物学数据进行Bayesian分析。我是按照一篇论文提供的语言去做的,然而到了openbugs这一步,总是过不去,提示“错误于FUN(X[[1L]], ...) : 第一个参数不对”。因为刚刚接触到Bayesian分析,一时难以搞清楚到底哪部出错了。请各位老师帮忙看一下问题出在哪里?非常感谢!
R命令如下:
library(R2WinBUGS)
data <- list(n=20,neurogen = data01$neurogen,behave = data01$reversals,cond = data01$condition)
model <- function(){
for(i in 1:n)
{
neurogen ~ dnorm(mean.neurogen, s2.neurogen)
mean.neurogen <- a1 + B1*cond
behave ~ dnorm(mean.behave, s2.behave)
mean.behave <- a2 + B4*cond + B5*neurogen
}
a1 ~ dnorm(0, 1.0E-5)
a2 ~ dnorm(0, 1.0E-5)
B1 ~ dnorm(0, 1.0E-5)
B4 ~ dnorm(0, 1.0E-5)
B5 ~ dnorm(0, 1.0E-5)
s2.neurogen ~ dgamma(0.001, 0.001)
s2.behave ~ dgamma(0.001, 0.001)
med.eff <- B1*B5
}
write.model(model, "model.txt")
parms <- c("a1","a2","B1","B4","B5","s2.neurogen","s2.behave","med.eff")
inits <- list(
list(a1=rnorm(1), a2=rnorm(1), B1=rnorm(1), B4=rnorm(1,0,0.5),
B5=rnorm(1), s2.neurogen=rnorm(1,1,0.05), s2.behave=rnorm(1,1,0.05)),
list(a1=rnorm(1), a2=rnorm(1), B1=rnorm(1), B4=rnorm(1,0,0.5),
B5=rnorm(1), s2.neurogen=rnorm(1,1,0.05), s2.behave=rnorm(1,1,0.05)),
list(a1=rnorm(1), a2=rnorm(1), B1=rnorm(1), B4=rnorm(1,0,0.5),
B5=rnorm(1), s2.neurogen=rnorm(1,1,0.05), s2.behave=rnorm(1,1,0.05))
)
library(R2OpenBUGS)
m1 <- openbugs(model.file="model.txt", data=data, inits=inits,
parameters.to.save=parms,
n.chains=3, n.iter=500000, n.thin=10)
R运行后的显示如下
> library(R2OpenBUGS)
载入程辑包:‘R2OpenBUGS’
The following object(s) are masked from ‘package:R2WinBUGS’:
as.bugs.array, attach.all, attach.bugs, bugs, bugs.data, bugs.log, detach.all, detach.bugs, monitor, read.bugs, write.model
警告信息:
程辑包‘R2OpenBUGS’是用R版本3.1.1 来建造的
> m1 <- openbugs(model.file="model.txt", data=data, inits=inits,
+ parameters.to.save=parms,
+ n.chains=3, n.iter=500000, n.thin=10)
Loading required package: BRugs
Welcome to BRugs connected to OpenBUGS version 3.2.3
model is syntactically correct
错误于FUN(X[[1L]], ...) : 第一个参数不对
此外: 警告信息:
1: package ‘BRugs’ was built under R version 3.1.1
2: In readChar(modelFile, 10^3) : 在non-UTF-8 MBCS语言环境里只能读取字节


雷达卡


京公网安备 11010802022788号







