mat[,“偏差]]中的rjags错误:下标超出范围

mat[,“偏差]]中的rjags错误:下标超出范围,r,jags,rjags,R,Jags,Rjags,我使用包“jagsUI”在R中运行一个模型,该模型开始运行一段时间,但随后我得到了消息 “mat[,”偏差“]中的错误:下标超出范围 此外:警告信息: 按顺序.params(samples,parameters.to.save,DIC,verbose=verbose): JAGS没有监控越轨行为。” 我从未遇到过这个错误,之前我认为这可能是JAGS的DIC模块的问题,所以我确保在运行模型时加载该模块。有没有关于这可能是什么原因的建议 这是我的密码: #write out model writeL

我使用包“jagsUI”在R中运行一个模型,该模型开始运行一段时间,但随后我得到了消息

“mat[,”偏差“]中的错误:下标超出范围 此外:警告信息: 按顺序.params(samples,parameters.to.save,DIC,verbose=verbose): JAGS没有监控越轨行为。”

我从未遇到过这个错误,之前我认为这可能是JAGS的DIC模块的问题,所以我确保在运行模型时加载该模块。有没有关于这可能是什么原因的建议

这是我的密码:

#write out model
writeLines("

       model {                                  #Open overall model bracket

       ############################################################
       #Priors
       ############################################################

       omega ~ dunif(0,1)

       alpha.lam~dnorm(0,0.1)

      Beta_FEDR[1] <- 0
      Beta_FEDR[2]~dnorm(0,0.1)
      Beta_FEDR[3]~dnorm(0,0.1)
      Beta_FEDR[4]~dnorm(0,0.1)
      Beta_FEDR[5]~dnorm(0,0.1)
      Beta_FEDR[6]~dnorm(0,0.1)
      Beta_FEDR[7]~dnorm(0,0.1)


       # i obs random effect
       for (i in 1:N) {
       eps[i]~dnorm(0,tau.disp)#I(-20,20)  #random observation effect
       }

       #hyperprior on random observation effects precision
       tau.disp ~ dgamma(0.1,0.001)


       ############################################################
       #Likelihood specification
       ############################################################

       for (i in 1:N){                                          # Open i likelihood bracket; corresponds to obs
       #n observations

       w[i] ~ dbern(omega)
       NREKN[i] ~ dpois(eff.lambda[i]) 
       eff.lambda[i] <- w[i]*lambda[i]

       log(lambda[i]) <- alpha.lam + Beta_FEDR[FEDR[i]] +eps[i]

       # Fit assessments

       residual[i] <- NREKN[i] - eff.lambda[i]
       predicted[i] <- eff.lambda[i]
       sq[i] <- pow(residual[i],2)


       # Generate replicate datasets
       NREKN.new[i] ~ dpois(eff.lambda[i])
       sq.new[i] <- pow(NREKN.new[i]-predicted[i],2)


       } # close i likelihood bracket

       ############################################################
       #Derived quantities
       ############################################################
       # Add up discrepancy measures
       fit <- sum(sq[])
       fit.new <- sum(sq.new[])
       test <- step(fit.new-fit)
       bpvalue <- mean(test)
       } #close model

       ", con = here("Shorebird_aquaculture_project","REKN_Models", 
      "ZIP_DistOnlyModel.txt"))

#Identify filepath of model file;
modfile <- here("Shorebird_aquaculture_project","REKN_Models", 
"ZIP_DistOnlyModel.txt")

sink(file=here("Shorebird_aquaculture_project","OutputFiles","REKN","outputDistOnlyModel.txt"))

 #create JAGS model object 'out' using the jags function of package jagsUI             

out <- jags(data = data,
 parameters.to.save = params,
 inits = initsFunction,
 model.file = modfile,
 modules=c('glm','dic'),
 n.chains = 2,
 n.adapt = 100,
 n.iter = 30000,
 n.burnin = 10000,
 n.thin = 2,
 parallel=TRUE,
 seed=as.integer(Sys.time()),
 n.cores=2)

sink()
#写出模型
书写线(“
模型{#开放式整体模型支架
############################################################
#前科
############################################################
ω~dunif(0,1)
α.lam~dnorm(0,0.1)
Beta_FEDR[1]我不能肯定地说(所以这可能应该是一个评论,而不是一个答案),但我只是遇到了这个确切的错误消息,并且能够解决它

原来我忘了在输入数据中包含响应变量

只有当我使用
parallel=F
运行时,我才得到错误消息
没有观察到的随机节点
。我猜这条消息在并行运行时被抑制,并且我们观察到的错误在“缺失数据”错误之前被触发


我意识到这晚了6个月,但可能对其他人有用。

谢谢@Matt Tyers,问题在于模型中的因变量规范。我将“NREKN”作为因变量,但在数据文件中它被编码为“REKN”,这是我的一个蹩脚错误part@Matt谢谢!!我收到了错误信息“未能为偏差设置跟踪监视器“没有观察到的随机节点”,原因是我还忘了在输入数据中包含响应变量!