我有以下 JAGS 模型用于 R 中的贝叶斯模型。我正在尝试估计变量“R”的后验分布。除了 R 之外的所有变量都应该是确定性节点。每个变量 s_A、z_A、z_W 和 d 都是向量。而 tau_s 是一个 data.frame。因此,预计 TTD_aquifer 和 O2s_all 是每个 i 的向量。
model {
for (i in 1:N){
y[i] ~ dnorm(mu[i], tau)
mu[i] <- sum(O2s_all)/2
tau_s_bar[i] = (s_A[i]*z_A[i])/R[i]*log(z_A[i]/(z_A[i]-z_W[i]))
TTD_aquifer <- t((d[i]*sqrt(tau_s_bar[i]))/sqrt(4*3.14*d[i]*t(tau_s[,i]^3))*exp(-1*((d[i]*tau_s_bar[i])/(4*t(tau_s[,i])))*
(1-t(tau_s[,i])/tau_s_bar[i])^2))
O2s_all <- t(O2_o[i]-k_o[i]*t(tau_s[,i]))*TTD_aquifer
# prior on R
R[i] ~ dlnorm(-2, 1/(0.6)^2)
}
# prior on tau and sigma
tau <- pow(sigma, -2)
sigma ~ dunif(0, 100)
}
当我在 jags.model() 中运行它时,我收到以下错误:RUNTIME ERROR: Invalid vector argument to exp。所以看起来我不能像在 R 中那样将向量输入到 exp() 中。作为确定性示例,TTD_aquifer 和 O2s_all 的方程在 R 中运行良好。我应该如何在 JAGS 中编写 TTD_aquifer 方程以避免 exp 问题?