Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Random OpenBUGS,我可以/应该在(重新)启动时更改RNG种子吗?_Random_Winbugs_Openbugs - Fatal编程技术网

Random OpenBUGS,我可以/应该在(重新)启动时更改RNG种子吗?

Random OpenBUGS,我可以/应该在(重新)启动时更改RNG种子吗?,random,winbugs,openbugs,Random,Winbugs,Openbugs,所以我正试图使用R中的OpenBUGS和R2OpenBUGS来拟合一个相当复杂的模型,短期运行模型工作,但长期运行失败。当我在R2OpenBUGS中的bugs调用中设置debug=T时,日志会显示:抱歉,模块MathRandnum中出现了一些错误。显然,为了得到收敛的估计值,我需要运行大量迭代的模型,通常它不能运行到40K次迭代 我尝试过的一件事是短期运行模型,停止,保存链,然后重新启动,这至少可以告诉我它何时失败。在这次运行中,模型在44到48K次迭代之间失败 我真的不明白MathRandnu

所以我正试图使用R中的OpenBUGS和R2OpenBUGS来拟合一个相当复杂的模型,短期运行模型工作,但长期运行失败。当我在R2OpenBUGS中的bugs调用中设置debug=T时,日志会显示:抱歉,模块MathRandnum中出现了一些错误。显然,为了得到收敛的估计值,我需要运行大量迭代的模型,通常它不能运行到40K次迭代

我尝试过的一件事是短期运行模型,停止,保存链,然后重新启动,这至少可以告诉我它何时失败。在这次运行中,模型在44到48K次迭代之间失败

我真的不明白MathRandnum模块在做什么,但它似乎是MCMc更新过程的一部分

所以我的想法是,一旦设置了OpenBUGS随机种子并给出了初始值,那么链的值及其更新过程就是确定性的。因此,对于任何给定的种子和初始值,故障将在给定的迭代中发生。因此,如果有办法在故障发生之前更改种子,那么它可能不会发生。在OpenBUGS GUI中,此时不能更改种子,需要在编译模型之后和更新之前进行更改。这就是我的问题,重新启动时是否可以更改种子?如果有可能的话,这样做会是错误的吗

或者,这个模型可能出了什么问题,我对MathRandnum所做的解释是否正确?鉴于我认为它在不同点失败,但一旦初始化,它总是在同一点失败,这是否意味着更改种子预设(它可以接受值1-14)可以修复它

我的错误模型如下

{
  # Priors
  #State model priors 

  shape.c ~ dunif(0.0001, 3) # dispersal kernel shape/scale parameters
  scale.alpha ~ dunif(0.0001, 3) #^
  tau2 <- 1/(sigma2 * sigma2)
  sigma2 ~ dunif(0, 5)
  phi ~  dunif(0, 1)
  alpha.theta ~ dnorm(0 , .01)
  #alpha.theta ~ dflat()
  beta.urb ~ dnorm(0 , .01)
  beta.wood ~ dnorm(0 , .01)
  beta.int ~ dnorm(0, .01)
  init.occ ~ dnorm(0, 1000)T(0, 1) # Strong prior! Assumption that  is absent from most sites in 2001

  for (t in 1:nyear) {
    alpha.p[t] ~ dnorm(mu.lp, tau.lp)
  }

  #Observation model priors


  mu.lp ~ dnorm(0, 0.01)                         
  tau.lp <- 1 / (sd.lp * sd.lp)                 
  sd.lp ~ dunif(0, 5)   

  dtype2.p ~ dunif(dtype2p_min,dtype2p_max) #List length factor effects
  dtype3.p ~ dunif(dtype3p_min,dtype3p_max) #

  #State model
  for (i in 1:nsite) {
    z[i,1] ~ dbern(init.occ)   # this follows from line 22
    theta[i] <- min(max(0.00000000001, thetalim[i]), 0.999999999999) # overflow constraint
    logit(thetalim[i]) <- alpha.theta + beta.urb*urban[i] + beta.wood*wood[i] + beta.int*wood[i]*urban[i]# + RE[i] #Site level environment relation
    for (t in 2:nyear) {        # This loop now starts at year 2002  
        gamma[i,t] <- min(max(0.00000000001, gammalim[i,t]), 0.999999999999) # overflow constraint
        gammalim[i,t] <- (shape.c/(2*scale.alpha*(exp(loggam(1/shape.c)))))*(exp(-1*(pow((d[i,t]/scale.alpha), shape.c)))) # dispersal kernel from  Clark 1998
        muZ[i,t] <- z[i ,t-1] * phi + (1 - z[i,t-1]) * gamma[i, t]*theta[i]   # Occupancy dynamics, 
        z[i,t] ~ dbern(muZ[i,t]) # True occupancy z at site i
    }
  }

  # Observation model
  for (j in 1:nvisit) {
    Py[j] <- z[Site[j], Year[j]] * p[j]
    logit(p[j]) <- alpha.p[Year[j]] + dtype2.p*DATATYPE2[j] + dtype3.p*DATATYPE3[j] 
    y[j] ~ dbern(Py[j])
    Presi[j] <- abs(y[j] - p[j])
    y.new[j] ~ dbern(Py[j])
    Presi.new[j] <- abs(y.new[j] - p[j])
  }

  # Bayesian Goodness-of-fit
  fit <- sum(Presi[])
  fit.new <- sum(Presi.new[])

  # Finite sample occupancy
  for (t in 2:nyear) {
    psi.fs[t] <- sum(z[1:nsite, t])/nsite
  }
{
#前科
#状态模型先验
shape.c~dunif(0.0001,3)#扩散核形状/尺度参数
标度α~dunif(0.0001,3)#^
陶2