1

Rのベイジアンモデルで使用する次のJAGSモデルがあります。変数「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 の式をどのように記述すればよいですか?

4

1 に答える 1