0

这是我第一次使用 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)
}

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

我正在尝试获取 m_bio 的值。我查看了类似这样的其他帖子:如何使用来自 rjags / JAGS 的估计值来预测值,但无法将简单回归公式 (a + b * x) 的解决方案“外推”到我的。

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

jags$BUGSoutput$mean

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

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

希望我充分传达了我的问题。感谢所有回复:)

4

0 回答 0