首页 > 解决方案 > JAGS 中正常密度的零技巧

问题描述

在 Alain F. Zuur 等人的《GLM 和 GLMM 初学者指南》一书的第 200-202 页中,引入了零技巧方法,它是拟合 JAGS 中任何分布的有效方法。该技术需要对密度函数取对数。对于正态密度,它的对数形式在书中出现如下: 在此处输入图像描述

JAGS 代码如下:

cat("
model{
#1A. Diffuse normal priors for the regression
# coefficients
for (i in 1:K) { beta[i] ~ dnorm(0, 0.0001) }
#1B. half-Cauchy(25) prior for the variance
num ~ dnorm(0, 0.0016)
denom ~ dnorm(0, 1)
sigma <- abs(num / denom)
#2. Likelihood
C <- 10000
for (i in 1:N){
Zeros[i] ~ dpois(Zeros.mean[i])
Zeros.mean[i] <- -L[i] + C
l1[i] <- -0.5 * log(2 * 3.1415) –
0.5 * log(sigma)
l2[i] <- -0.5 * pow(Biomass[i]-mu[i],2)/sigma
L[i] <- l1[i] + l2[i]
mu[i] <- eta[i]
eta[i] <- inprod(beta[],X[i,])
}
}
",fill = TRUE)

作者明确建模sigma为遵循半柯西(25)分布,因此很明显sigma代码中的 代表标准偏差而不是方差。这表明sigma^2应该在代码中使用对数密度公式所示的。但是,对象 l1[i] 使用0.5 * log(sigma)代替0.5 * log(sigma^2),类似地,l2[i] 包括sigma代替sigma^2分母。

我想知道为什么公式和相应的代码似乎对待sigma不同。

标签: rbayesianjags

解决方案


推荐阅读