我是 OpenBUGS 的新手,在使用 logit() 函数拟合模型时遇到了一些问题。
阅读周围我发现一个可能的解决方案是明确指定 logit 函数而不使用 WinBUGS 自己的 logit 函数:
在更复杂的模型中,我们在使用 WinBUGS 自己的 logit 函数时经常遇到问题,例如实现收敛(实际上,即使使用相当简单的模型也可能出现问题。)。因此,通常最好通过 logit.p[i] <- log(p[i] / (1 – p[i])), p[i] <- exp(logit.p[i ]) / (1 + exp(logit.p[i])) 或 p[i] <- 1 / (1 + exp(- logit.p[i]))。
(更多信息在这里http://www.mbr-pwrc.usgs.gov/software/kerybook/AppendixA_list_of_WinBUGS_tricks.pdf第 14 点。)。
问题是我不明白该怎么做,假设我使用 WinBUGS 集成 logit 函数的原始似然函数是:
for (i in 1:n){
y[i] ~ dbern(p[i])
logit(p[i]) <- beta[1] + beta[2]*x1[i] + beta[3]*x2[i] + beta[4]*x3[i]
}
我如何明确地写出来?
非常感谢。
文森佐