微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从复杂的 Rjags 模型预测值

如何解决从复杂的 Rjags 模型预测值

这是我第一次使用 R2Jags、MCM 链和贝叶斯模型,但我无法计算模型的预测值。 该模型基于 Hallmann 等人的研究。 2017(https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0185809),具体是基础模型(R代码见论文附录)

这是我的锯齿代码

cat("model{
## Likelihood function for the latent expected daily biomass
for (i in 1:n) {
m_bio[i] ~ dnorm(sum(y[tau1[i]:tau2[i]]),sig_sq[i])
sig_sq[i] <- 1/Var[i]
Var[i] <- sum(vr[tau1[i]:tau2[i]])
}

## Likelihood function for muHat,it's dependent function and variance
for (i in 1:ndaily) {
z[i] <- exp(y[i])
y[i] <- g_intcp + log.lambda * year[i] + c[1] * daynr[i] + c[2] * daynr2[i] +
  c[3] * daynr[i] * year[i] + c[4] * daynr2[i] * year[i] + b[loctype[i]] +
  eps[plot[i]]
vr[i] <- exp(2 * y[i] + lvar) * (exp(lvar) - 1)
} 

## Priors
g_intcp ~ dnorm(0,.01)
log.lambda ~ dnorm(0,.01)
b[1] <- 0
for( i in 2:3) {b[i] ~ dnorm(0,.01)}
for( i in 1:4) {c[i] ~ dnorm(0,.01)}
sdhat ~ dunif(0,5)
lvar <- pow(sdhat,2)
for (i in 1:nrandom) {
eps[i] ~ dnorm(0,tau.re)
}
tau.re <- pow(sd.re,-2)
sd.re ~ dunif(0,1)
}

数学方程可以在论文中找到(eqs. 2,3,4,6)

我正在尝试获取 m_bio 的值。我已经研究过类似这样的其他帖子:How to predict values using estimates from rjags / JAGS 但无法从简单回归公式 (a + b * x) 中“推断”到我的解决方案。

我将从提取每个参数的平均值开始,大致如下:

jags$BUGSoutput$mean

我被卡住的部分是矩阵乘法。当我有多个预测变量时会发生什么变化?

我也不确定在那之后我必须做什么。如果我正确理解了模型,我需要对所有三个方程(即 z[i]、y[i] 和 vr[i])进行计算,然后才能计算 m_bio(以及相关方程 sig_sq和 Var),对吗?

希望我充分表达了我的问题。感谢任何和所有回复:)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。