2016-11-08 4 views
2

Ich mache eine Netzwerk-Meta-Analyse mit mehreren klinischen Studien. Die Antwort ist binominal. Jede Studie enthält mehrere Behandlungen.JAGS und WinBUGS geben unterschiedliche DIC

Wenn ich ein zufälliges Effektmodell mache, ist die Ausgabe von JAGS und WinBUGS ähnlich. Wenn ich ein Fixed-Effects-Modell mache, sind die DIC- und PD-Komponenten weit entfernt, obwohl die Seiten der Parameter, an denen ich interessiert bin, ähnlich sind.

Ich habe ähnliche Modelle, die Gaussian Antwort haben, nicht Binomial, und JAGS und WinBUGS sind in Übereinstimmung.

Der BUGS/JAGS-Code für das Fixed-Effects-Modell wurde von page 61 of this entfernt und erscheint unten. Derselbe Code läuft jedoch und erzeugt ähnliche Seiten mit WinBUGS und JAGS, nur DIC und PD unterscheiden sich deutlich. Also ich denke nicht, dass dieser Code das Problem ist.

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 

Ich fand ein old post ein bekanntes Problem zu beschreiben, aber das ist zu alt für mich ist es das gleiche Problem zu denken.

Gibt es bekannte Probleme mit JAGS, die falsche DIC und pD melden? (Suche nach "JAGS Bugs" ist nicht allzu hilfreich.)

Ich wäre dankbar für alle Hinweise.

Antwort

3

Es gibt verschiedene Möglichkeiten, pD zu berechnen, und die von JAGS verwendete Methode unterscheidet sich von der von WinBUGS verwendeten Methode. Siehe den Abschnitt Details der folgenden Hilfedatei:

?rjags::dic 

Im Einzelnen:

DIC (Spiegelhalter et al 2002), indem Sie die „effektive Anzahl der Parameter“ (PD) auf die erwartete Abweichung berechnet wird. Die Definition von pD, die von dic.samples verwendet wird, ist die von Plummer (2002) vorgeschlagene Definition und erfordert zwei oder mehr parallele Ketten im Modell.

Die Details sind in der (lang, aber es lohnt Lesung) Diskussion der folgenden Papiere:

Spiegelhalter, D., N. Best, B. Carlin und A. van der Linde (2002) , Bayes'sche Maße für Modellkomplexität und -fit (mit Diskussion). Zeitschrift der Königlichen Statistischen Gesellschaft Reihe B 64, 583-639. Normalerweise sind alle Methoden zur Berechnung von pD (von denen ich weiß) Annäherungen, und wenn zwei solche Methoden nicht übereinstimmen, liegt es wahrscheinlich daran, dass die Annahmen für eine (oder beide) Approximation (en) nicht erfüllt sind .

Matt

Verwandte Themen