繁体   English   中英

贝叶斯Beta回归模型-锯齿错误:无效的父值

[英]Bayesian Beta regression Model — Error in jags: Invalid parent value

我试图通过R在尖齿中运行贝叶斯池化模型并收到错误消息

我从遇到类似问题的人那里发现,它可能由先验值,负值,对数的对数,语法错误等触发。我已经消除了所有这些问题,但错误仍然存​​在。

## just for the prediction
pred.jac <- seq(min(test.bayes$Latitude), max(test.bayes$Latitude), 10)

data = list(
  jac = test.bayes$Jaccard,
  lat = test.bayes$Latitude,
  pred.jac = pred.jac)


inits = list(
  list(alpha = 1, beta = 2.5, sigma = 50),
  list(alpha = 2, beta = 1.5, sigma = 20),
  list(alpha = 3, beta = 0.75, sigma = 10))



{
  sink("BetaPooledJAGS.R")
  cat("
      model{

      # priors
      alpha ~ dnorm(0, 0.0001)
      beta ~ dnorm(0, 0.0001)
      sigma ~ dunif(0, 10)


      # likelihood


      for (i in 1:length(jac)) {
      mu[i] <- alpha + beta * lat[i]
      a[i] <- ((1 - mu[i]) / (sigma^2) - 1 / mu[i]) * mu[i]^2
      b[i] <- alpha * (1 / mu[i] - 1)
      jac[i] ~ dbeta(a[i], b[i])


      }

      # predicted jaccard as derived quantities
      for (i in 1:length(pred.jac)) {
      mu_pred[i] <- alpha + beta * lat[i]
      mu_pred1[i] <- exp(mu_pred[i])
      }

      }

      ",fill = TRUE)
  sink()
}


n.adapt = 3000
n.update = 5000
n.iter = 5000
jm.pooled = jags.model(file="BetaPooledJAGS.R", data = data, n.adapt = n.adapt, inits = inits, n.chains = length(inits))

运行代码时,出现以下错误:

jags.model中的错误(文件=“ BetaPooledJAGS.R”,数据=数据,n.adapt = n.adapt ,:节点jac [1]中的错误父值无效

这是指向我的数据子集的链接。

https://fil.email/IuwgYhKs

如果lat为正数,则使用这些缩写的b将得到b负值,并且在beta分布,JAGS和更常见的情况下b必须> 0。

例如,使用inits[[1]]缩写:

mu = 1 + 2.5*lat假设lat为正,则mu > 1

b = 1 * (1/mu-1)并且如果mu>11/mu < 1 mu>1 ,所以1/mu - 1 < 0

因此b = 1*-ve所以b<0

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM