Ноль трюк для нормальной плотности в JAGS - PullRequest
0 голосов
/ 08 июня 2018

На странице 200-202 книги "Руководство для начинающих по GLM и GLMM" Алена Ф. Зуура и др. Был представлен метод нулевого трюка, который послужил мощным способом подгонки любого распределения в JAGS.Этот метод требует логарифма функции плотности.Для нормальной плотности форма логарифма в книге выглядит следующим образом: enter image description here

Код 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 по-разному.

...