我正在进行网络荟萃分析,包括几项临床试验。回复是二项式的。每项试验都包含几种治疗方法。
当我做一个随机效果模型时,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是否存在任何已知问题? (搜索&#34; JAGS错误&#34;并非所有有用的。)
我很感激任何指示。
答案 0 :(得分:3)
有许多不同的方法来计算pD,JAGS使用的方法与WinBUGS使用的方法不同。请参阅以下帮助文件的“详细信息”部分:
?rjags::dic
具体做法是:
DIC(Spiegelhalter等2002)通过将“有效参数数量”(pD)与预期偏差相加来计算。 dic.samples使用的pD的定义是Plummer(2002)提出的定义,并且在模型中需要两个或更多并行链。
详情请参阅以下文章(冗长但值得一读):
Spiegelhalter,D.,N。Best,B。Carlin和A. van der Linde(2002),贝叶斯模型复杂度和拟合度量(讨论)。皇家统计学会杂志B 64,583-639。
一般而言:所有计算pD的方法(我所知道的)都是近似值,如果两个这样的方法不一致,那么可能是因为一个(或两个)近似值背后的假设没有得到满足。
马特