Click here to load reader

Meta-Analysen und Netzwerk-Meta-Analysen in · PDF fileSturtz: Meta-Analysen und Netzwerk- Meta-Analysen in WinBUGS 3 WinBUGS Examples Vol. I: Blocker: random effects meta-analysis

  • View
    220

  • Download
    3

Embed Size (px)

Text of Meta-Analysen und Netzwerk-Meta-Analysen in · PDF fileSturtz: Meta-Analysen und Netzwerk-...

  • Meta-Analysen und Netzwerk-Meta-Analysen in WinBUGS

    Sibylle Sturtz

    Institut fr Qualitt und Wirtschaftlichkeit im Gesundheitswesen (IQWiG)

  • Sturtz: Meta-Analysen und Netzwerk- Meta-Analysen in WinBUGS 2

    WinBUGS

    BUGS (Bayesian inference Using Gibbs Sampling) Flexible Software fr Bayesianische Analysen komplexer statistischerModelle unter Verwendung von MCMC MethodenProjekt wurde 1989 begonnen, aktuelle Version WinBUGS 1.4.3Erhltlich unter

    http://www.mrc-bsu.cam.ac.uk/bugs

    Lunn et al. (2000)

  • Sturtz: Meta-Analysen und Netzwerk- Meta-Analysen in WinBUGS 3

    WinBUGS Examples Vol. I: Blocker: random effects meta-analysis of clinical trials

    22 trials of beta-blockers to prevent mortality after myocardialinfarction

    Carlin(1992)

  • Sturtz: Meta-Analysen und Netzwerk- Meta-Analysen in WinBUGS 4

    riC ~ Binomial(piC, niC)riT ~ Binomial(piT, niT)logit(piC) = muilogit(piT) = mui + didi ~ Normal(d, 2)

    ri outcomeni number of patientsT treatmentC control

    Random effects modelfor study i with control C and treatment T

  • Sturtz: Meta-Analysen und Netzwerk- Meta-Analysen in WinBUGS 5

    riC ~ Binomial(piC, niC)riT ~ Binomial(piT, niT)logit(piC) = muilogit(piT) = mui + didi ~ Normal(d, 2)

    ri outcomeni number of patientsT treatmentC control

    model{for(i in 1:Num)

    {rc[i] ~ dbin(pc[i], nc[i])rt[i] ~ dbin(pt[i], nt[i])logit(pc[i])

  • Sturtz: Meta-Analysen und Netzwerk- Meta-Analysen in WinBUGS 6

    riC ~ Binomial(piC, niC)riT ~ Binomial(piT, niT)logit(piC) = muilogit(piT) = mui + didi ~ Normal(d, 2)

    ri outcomeni number of patientsT treatmentC control

    model{for(i in 1:Num)

    {rc[i] ~ dbin(pc[i], nc[i])rt[i] ~ dbin(pt[i], nt[i])logit(pc[i])

  • Sturtz: Meta-Analysen und Netzwerk- Meta-Analysen in WinBUGS 7

    model{for(i in 1:Num){

    rc[i]~dbin(pc[i], nc[i])rt[i]~dbin(pt[i], nt[i])logit(pc[i])

  • Sturtz: Meta-Analysen und Netzwerk- Meta-Analysen in WinBUGS 8

    Daten in WinBUGS

    Alle Variablen werden in einer Liste list() angegeben mitZahlen name = zahlVektoren vector = c()Matrizen matrix = structure(.Data=c(), .Dim=c(i,j))Arrays array = structure(.Data=c(), .Dim=c(i,j,k))

    Alternativ im rectangular formatrc[] nc[] rt[] nc[]3 38 3 39.....22 680 39 674END

    Alle Variablen mssen spezifiziert werden, auch wenn sie im Model nicht verwendet werdenFehlende Werte: NA

  • Sturtz: Meta-Analysen und Netzwerk- Meta-Analysen in WinBUGS 9

    Daten in WinBUGS

    list(rt = c(3,7,5,102,28,4,98,60,25,138,64,45,9,57,25,33,28,8,6,32, 27,22),

    nt = c(38,114,69,1533,355,59,945,632,278,1916,873,263,291,858,154,207,251,151,174,209,391,680),

    rc = c(3,14,11,127,27,6,152,48,37,188, 52,47,16,45,31,38,12,6,3,40, 43,39),

    nc = c(39,116,93,1520,365,52,939,471,282,1921, 583,266,293,883,147,213,122,154,134,218, 364,674),

    Num = 22)

    model{for(i in 1:Num){

    rc[i]~dbin(pc[i], nc[i])rt[i]~dbin(pt[i], nt[i])logit(pc[i])

  • Sturtz: Meta-Analysen und Netzwerk- Meta-Analysen in WinBUGS 10

    Startwerte fr die Markovketten

    Inits 1list(delta = c(0,0,0,0,0,0,0,0,0,0,

    0,0,0,0,0,0,0,0,0,0, 0,0),

    mu = c(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),

    d = 0,sigma = 1,delta.new = 0)

    Inits 2list(delta = c(1,1,1,...,1,1),

    mu = c(1,1,1,...,1,1), d = 1, sigma = 5, delta.new = -1)

    model{for(i in 1:Num){

    rc[i]~dbin(pc[i], nc[i])rt[i]~dbin(pt[i], nt[i])logit(pc[i])

  • Sturtz: Meta-Analysen und Netzwerk- Meta-Analysen in WinBUGS 11

    Model Daten

    Inits

    Anzahl der Ketten

    Kompilieren

  • Sturtz: Meta-Analysen und Netzwerk- Meta-Analysen in WinBUGS 12

    update for burn-in

    set monitor tools

    update for posterior distr.

    check convergence/ summarystats

  • Sturtz: Meta-Analysen und Netzwerk- Meta-Analysen in WinBUGS 13

    obtain results("*" fr alle Knoten gleichzeitig)

  • Sturtz: Meta-Analysen und Netzwerk- Meta-Analysen in WinBUGS 14

    WinBUGS 1.4.3:Stndiges Klicken notwendig

    R2WinBUGS:Verwendet die Script Sprache von WinBUGS

    check('C:/Programme/R/MAmodel.odc')data('C:/Programme/R/data.txt')compile(2)inits(1, 'C:/Programme/R/inits1.txt')inits(2, 'C:/Programme/R/inits2.txt')gen.inits()thin.updater(1)update(1000)set(d)set(sigma)set(delta.new)update(10000)stats(*)

    Sturtz et al.(2005)

  • Sturtz: Meta-Analysen und Netzwerk- Meta-Analysen in WinBUGS 15

    Installation und Laden des Paketes:R> install.packages("R2WinBUGS")R> library(R2WinBUGS)

    Daten in R:either a named list or a vector or list of the names of the data objects, e.g.:R> rt nt rc nc Num data

  • Sturtz: Meta-Analysen und Netzwerk- Meta-Analysen in WinBUGS 16

    Initial Values:a list with 'n.chains' elements; each element of the list is itself a list of starting values, or a function creating initial values, e.g.:

    R> inits1 inits2 inits initfoo

  • Sturtz: Meta-Analysen und Netzwerk- Meta-Analysen in WinBUGS 17

    Parameters to be monitored:character vector of the names

    R> parameters bugs(data, inits, parameters.to.save,

    model.file = "model.bug", n.chains = 3, n.iter = 2000, # includes burn-in!n.burnin = floor(n.iter/2), n.thin = max(1, floor(n.chains*(n.iter-n.burnin)/1000)), bin = (n.iter - n.burnin) / n.thin, # saving in betweendebug = FALSE, # close WinBUGS automatically?DIC = TRUE, digits = 5, codaPkg = FALSE, # read output automatically?bugs.directory = "c:/Program Files/WinBUGS14/",program=c("WinBUGS", "OpenBUGS", "winbugs", "openbugs"),working.directory = NULL, clearWD = FALSE) # deleting files when WinBUGS

    # has finished

  • Sturtz: Meta-Analysen und Netzwerk- Meta-Analysen in WinBUGS 18

    Output Analysis (1):

    read in automatically (codaPkg = FALSE)

    produces estimates for each sample (mean, sd, quantiles)

    plots a quick summary of inference and convergence & shows inferences for each set of parameters

    iterations are available

  • Sturtz: Meta-Analysen und Netzwerk- Meta-Analysen in WinBUGS 19

    Output Analysis (2):

    use the coda package (codaPkg = TRUE)

    much more flexible

    trace plots, prob. density functions, summary statistics,

    see Plummer et al. (2006)

  • Sturtz: Meta-Analysen und Netzwerk- Meta-Analysen in WinBUGS 20

    WinBUGS 1.4.3: Stndiges Klicken notwendig

    R2WinBUGSVerwendet die Scriptsprache von WinBUGS

    Basiert auf dem Austausch von TextdateienEin automatisierter interaktiver Prozess ist nicht mglich

    BRugs Thomas et al.(2006)

  • Sturtz: Meta-Analysen und Netzwerk- Meta-Analysen in WinBUGS 21

    BRugs enthlt: OpenBUGS Funktionen die die Funktionalitt von OpenBUGS innerhalb von R reproduzieren

    Funktionen zur Datenaufbereitung und schreiben von Dateien aus R2WinBUGS

    Model, Daten & Inits mssen als Dateien verfgbar sein, BRugs stellt aber Funktionen dafr bereit: writeModel(), bugsData(), bugsInits()

    Installation und Laden des Paketes:R> install.packages("BRugs")R> library(BRugs)

  • Sturtz: Meta-Analysen und Netzwerk- Meta-Analysen in WinBUGS 22

    Vorgehen analog zu WinBUGScheck the model file

    R> modelCheck("model_MA.txt") # Datei liegt im getwd()

    load data:R> modelData("data_MA.txt")ORR> modelData(bugsData(data)) # bugsData writes a file

    # "data.txt"

    compile the modelR> modelCompile(numChains=2)

  • Sturtz: Meta-Analysen und Netzwerk- Meta-Analysen in WinBUGS 23

    load initsby file

    R> modelInits("inits1.txt") # seperat fr jede Kette

    by a function

    R> initfoo modelInits(bugsInits(initfoo))

  • Sturtz: Meta-Analysen und Netzwerk- Meta-Analysen in WinBUGS 24

    update the modelR> modelUpdate(1000, thin=1)

    set sample monitor toolR> samplesSet(c("d", "delta.new", "sigma"))

    some more updatesR> modelUpdate(10000)

    output analysisR> samplesStats("*")

    mean sd MC_error val2.5pc median val97.5pc start sampled -0.2398 0.06886 0.003059 -0.37500 -0.2376 -0.1092 1001 20000delta.new -0.2391 0.18180 0.003220 -0.62180 -0.2330 0.1351 1001 20000sigma 0.1485 0.07917 0.004118 0.01709 0.1406 0.3201 1001 20000

  • Sturtz: Meta-Analysen und Netzwerk- Meta-Analysen in WinBUGS 25

    einige weitere Funktionen: dicSet()/ dicStats() # DIC samplesHistory() # plots trace of a variable samplesDensity() # plots density/histogram samplesBgr() # BGR convergence diagnostic samplesAutoC() # plots autocorrelation fnct. samplesSample() # stored samples

  • Sturtz: Meta-Analysen und Netzwerk- Meta-Analysen in WinBUGS 26

    Netzwerk Meta-AnalysenIndirect comparison: IC Effect of intervention C relative to B: dBC = dAC dABMixed treatment comparison (MTC) meta-analysis(also: multiple treatment meta-analysis, network meta-analysis)

    Caldwell et al. 2005, Lu & Ades 2006

    A

    CB

    A

    CB

    IC MTC

  • Sturtz: Meta-Analysen und Netzwerk- Meta-Analysen in WinBUGS 27

    Models for MTC: Basic & Functional Parameters

    Take A as reference treatmentTreatment effects of B,C,D relative to A:

    basic parameters mit priors

    remaining contrasts: functional parameters

    A

    CB

    DAkd ~ N(0,10000) k = B,C,D

    BC AC AB

    BD AD AB

    CD AD AC

    d = d - dd = d - dd = d - d

    Lu & Ades 2006

  • Sturtz: Meta-Analysen und Netzwerk- Meta-Analysen in WinBUGS 28

    MTC: Random Effects Model

    jk jk jkr ~ Bin(p ,n )

    Ak

    jb

    d ~ N(0,10000) k = B,C,D ~ N(0,10000) A