2016-11-08 8 views
2

Я занимаюсь метаанализом сети, включая несколько клинических испытаний. Ответ является биномиальным. Каждое испытание содержит несколько процедур.JAGS и WinBUGS дают разные DIC

Когда я делаю модель случайных эффектов, вывод из JAGS и WinBUGS аналогичен. Когда я делаю модель с фиксированными эффектами, компоненты DIC и pD выходят, хотя позади меня интересуют параметры, которые меня интересуют.

У меня есть аналогичные модели, которые имеют гауссовский ответ, а не биномиальный, а JAGS и WinBUGS согласны.

Код BUGS/JAGS для модели фиксированных эффектов снят с page 61 of this и отображается ниже. Тем не менее, тот же самый код работает и производит аналогичные похождения с использованием WinBUGS и JAGS, это только DIC и pD, которые заметно отличаются. Поэтому я не думаю, что этот код является проблемой.

for(i in 1:ns){ # Loop over studies 
    mu[i] ~ dnorm(0, .0001) 
    # Vague priors for all trial baselines 
    for (k in 1:na[i]) { # Loop over arms 
    r[i, k] ~ dbin(p[i, k], n[i, k]) 
     # binomial likelihood 
    logit(p[i, k]) <- mu[i] + d[t[i, k]] - d[t[i, 1]] 
     # model for linear predictor 
    rhat[i, k] <- p[i, k] * n[i, k] 
     # expected value of the numerators 
    dev[i, k] <- 
     2 * (r[i, k] * (log(r[i, k]) - log(rhat[i, k])) +  
     (n[i, k] - r[i, k]) * (log(n[i, k] - r[i, k]) + 
     - log(n[i, k] - rhat[i, k])      )) 
     # Deviance contribution 
    } 
    resdev[i] <- sum(dev[i, 1:na[i]]) 
    # summed residual deviance contribution for this trial 
} 
totresdev <- sum(resdev[]) 
    # Total Residual Deviance 

d[1] <- 0 
    # treatment effect is zero for reference treatment 
for (k in 2:nt){ 
    d[k] ~ dnorm(0, .0001) 
} # vague priors for treatment effects 

Я нашел old post описывая известную проблему, но это слишком стар для меня, чтобы думать, что это та же самая проблема.

Есть ли какие-либо известные проблемы с JAGS, сообщающими о неправильном DIC и pD? (Поиск «ошибок JAGS» не так уж и полезен.)

Я был бы благодарен за любые указатели.

ответ

3

Существует множество различных способов расчета pD, а метод, используемый JAGS, отличается от метода, используемого WinBUGS. Смотрите раздел Подробности следующего файла справки:

?rjags::dic 

В частности:

DIC (Spiegelhalter и др 2002) рассчитывается путем добавления «эффективное количество параметров» (ФД) к ожидаемому отклонению. Определение pD, используемое dic.samples, является тем, которое было предложено Plummer (2002) и требует двух или более параллельных цепей в модели.

Подробности в (длительный, но стоит прочитать) обсуждение следующей статье:

Spiegelhalter, Д. Н. Бест, Б. Карлин, А. ван дер Линде (2002) , Байесовские меры сложности модели и соответствия (с обсуждением). Журнал Королевского статистического общества серии B 64, 583-639.

В общем: все методы расчета pD (о которых я знаю) являются приближениями, и если два таких метода не согласны, то это, вероятно, потому, что предположения, стоящие за одним (или обоими) приближениями, не выполняются ,

Мэтт