Ich arbeite derzeit an einer Meta-Analyse von Überlebensdaten über mehrere klinische Studien.WinBUGS Weibull Netzwerk Meta-Analyse
Um dies zu tun, habe ich Code aus einer veröffentlichten Analyse mit der gleichen Methode. Wenn ich diesen Code mit den Daten der veröffentlichten Analyse ausführe, kann ich die Ergebnisse nicht replizieren. Tatsächlich stimmen die Ergebnisse nicht mit irgendeiner vernünftigen Schätzung überein.
Der Code selbst (ohne die Daten) sollte korrekt sein, da er direkt von den Autoren stammt. Ich nehme an, das Problem hat w/initial Werte oder Parameter, wie die Probenahme ausgeführt wird, aber nach dem Spielen w/viele Anfangswerte, die Länge der Burn in, Ausdünnung, etc ... Ich habe keine aussagekräftigen Ergebnisse erhalten .
Ich würde mich freuen, jemand Vorschläge über das Ausführen (Anfangswerte, etc ...), damit es richtig ausgeführt wird. Wenn es im Code Probleme gibt oder wenn die Daten so eingerichtet sind, dass sie nicht mit dem Code übereinstimmen, wäre es hilfreich, dies zu wissen.
Als eine Randnotiz, mache ich die Analysen mit R2WinBUGs, obwohl ich die gleiche Art von Problemen mit WinBUGs allein bekommen haben.
ein bisschen mehr Hintergrund auf der Methode:
Der Weg, um dies durch Abschätzen des Unterschiedes in der Form und Größe zwischen Behandlungen über mehrere Studien unter Verwendung von Zufallseffekten Parametern einer reparametrisierten Weibull-Verteilung funktioniert, ist.
Die Weibull-Verteilung ist so umparametriert, dass der Logarithmus der Hazard Rate ein + b * log (t) ist, wobei a ein Skalierungsparameter und b ein Shape-Parameter ist. Daraus können Sie die Wahrscheinlichkeit Funktion einer bestimmten Anzahl von Fehlern aus einer bestimmten Anzahl von Patienten über ein Intervall berechnen.
Leider ist der Artikel öffentlich, aber wenn Sie den Zugriff hier ist der Link zu erreichen: http://onlinelibrary.wiley.com/doi/10.1002/jrsm.25/abstract;jsessionid=2BA8F0D9BEF9A33F84975618D33F8DD9.f03t03?userIsAuthenticated=false&deniedAccessCustomisedMessage=
Eine kurze Zusammenfassung der Variablen in das Modell eingegeben:
NT: Anzahl der separaten Behandlungen enthalten.
N: Anzahl der Zeilen im Hauptdatensatz. NS: Anzahl von Studien
s: Studie, dass die Datenzeile entspricht (dies ist nummeriert 1: 6)
r: Anzahl der Patienten in Intervall für diese Behandlung versagt/Studie
n : bei Risikopatienten zu Beginn der Intervallzahl der für diese Behandlung /Studie
t: Behandlung, die diese Datenzeile entspricht (nummeriert von 1: 3)
b: Gibt an, welche treatme nt ist die Baseline, mit der andere verglichen werden (für jede Zeile auf 1 gesetzt).
bs: Behandlung, die der Steuerarm dieser Studie ist
bt: Behandlung, die die Forschung Arm dieser Studie ist
WinBUGS Code (einschließlich Daten):
#Winbugs code for random effects networks meta-analysis model
Model
{
for (i in 1:N)
{ # N=number of data points in dataset
#likelihood
r[i]~ dbin(p[i],n[i])
p[i]<-1-exp(-h[i]*dt[i]) # hazard h over interval [t,t+dt] # expressed as deaths per unit person-time (e.g. months)
#random effects model
log(h[i])<-nu[i]+log(time[i])*theta[i]
nu[i]<-mu[s[i],1]+delta[s[i],1]*(1-equals(t[i],b[i]))
theta[i]<-mu[s[i],2]+ delta[s[i],2]*(1-equals(t[i],b[i]))
}
for(k in 1 :NS)
{ # NS=number of studies in dataset
delta[k,1:2]~dmnorm(md[k,1:2],omega[1:2,1:2])
md[k,1]<-d[ts[k],1]-d[bs[k],1]
md[k,2]<-d[ts[k],2]-d[bs[k],2]
}
# priors
d[1,1]<-0
d[1,2]<-0
for(j in 2 :NT)
{ # NT=number of treatments
d[j,1:2] ~ dmnorm(mean[1:2],prec2[,])
}
for(k in 1 :NS)
{
mu[k,1:2] ~ dmnorm(mean[1:2],prec2[,])
}
omega[1:2, 1:2] ~ dwish(R[1:2,1:2],2)
}
# Winbugs data set
list(N=242, NS=6, NT=3,
mean=c(0,0),
prec2 = structure(.Data = c(
0.0001,0,
0,0.0001), .Dim = c(2,2)),
R = structure(.Data = c(
0.01,0,
0,0.01), .Dim = c(2,2))
)
s[] r[] n[] t[] b[] time[] dt[]
1 15 152 3 1 3 3
1 11 140 3 1 6 3
1 8 129 3 1 9 3
1 9 121 3 1 12 3
1 9 112 3 1 15 3
1 3 83 3 1 18 3
1 4 80 3 1 21 3
1 5 76 3 1 24 3
1 2 71 3 1 27 3
1 2 41 3 1 30 3
1 1 39 3 1 33 3
1 3 38 3 1 36 3
1 2 35 3 1 39 3
1 1 33 3 1 42 3
1 3 32 3 1 45 3
1 3 29 3 1 48 3
1 2 26 3 1 51 3
1 1 24 3 1 54 3
1 1 23 3 1 57 3
1 1 22 3 1 60 3
1 10 149 1 1 3 3
1 11 140 1 1 6 3
1 9 128 1 1 9 3
1 5 119 1 1 12 3
1 6 114 1 1 15 3
1 3 72 1 1 18 3
1 5 70 1 1 21 3
1 4 65 1 1 24 3
1 7 61 1 1 27 3
1 2 34 1 1 30 3
1 2 32 1 1 33 3
1 3 30 1 1 36 3
1 2 27 1 1 39 3
1 2 25 1 1 42 3
1 1 23 1 1 45 3
1 2 22 1 1 48 3
1 1 19 1 1 51 3
1 2 19 1 1 54 3
1 1 17 1 1 57 3
1 0 16 1 1 60 3
2 4 125 2 1 3 3
2 4 121 2 1 6 3
2 2 117 2 1 9 3
2 5 114 2 1 12 3
2 2 109 2 1 15 3
2 3 107 2 1 18 3
2 2 104 2 1 21 3
2 4 94 2 1 24 3
2 4 90 2 1 27 3
2 3 81 2 1 30 3
2 4 78 2 1 33 3
2 3 61 2 1 36 3
2 5 58 2 1 39 3
2 1 48 2 1 42 3
2 2 47 2 1 45 3
2 3 41 2 1 48 3
2 0 38 2 1 51 3
2 3 29 2 1 54 3
2 3 26 2 1 57 3
2 2 18 2 1 60 3
2 0 16 2 1 63 3
2 1 10 2 1 66 3
2 0 9 2 1 69 3
2 0 3 2 1 72 3
2 0 3 2 1 75 3
2 0 3 2 1 78 3
2 15 196 1 1 3 3
2 9 179 1 1 6 3
2 10 170 1 1 9 3
2 9 162 1 1 12 3
2 9 153 1 1 15 3
2 5 141 1 1 18 3
2 5 136 1 1 21 3
2 10 121 1 1 24 3
2 5 111 1 1 27 3
2 7 92 1 1 30 3
2 7 85 1 1 33 3
2 4 71 1 1 36 3
2 6 67 1 1 39 3
2 4 53 1 1 42 3
2 5 49 1 1 45 3
2 6 36 1 1 48 3
2 3 30 1 1 51 3
2 2 26 1 1 54 3
2 2 24 1 1 57 3
2 0 13 1 1 60 3
2 1 13 1 1 63 3
2 1 11 1 1 66 3
2 1 10 1 1 69 3
2 0 6 1 1 72 3
2 0 6 1 1 75 3
2 0 6 1 1 78 3
3 6 113 2 1 3 3
3 4 105 2 1 6 3
3 3 101 2 1 9 3
3 1 97 2 1 12 3
3 9 96 2 1 15 3
3 4 84 2 1 18 3
3 2 80 2 1 21 3
3 4 74 2 1 24 3
3 3 70 2 1 27 3
3 2 59 2 1 30 3
3 0 57 2 1 33 3
3 6 51 2 1 36 3
3 2 45 2 1 39 3
3 1 37 2 1 42 3
3 3 36 2 1 45 3
3 1 27 2 1 48 3
3 1 26 2 1 51 3
3 2 25 2 1 54 3
3 7 116 1 1 3 3
3 6 111 1 1 6 3
3 4 105 1 1 9 3
3 3 99 1 1 12 3
3 9 96 1 1 15 3
3 5 85 1 1 18 3
3 5 80 1 1 21 3
3 3 68 1 1 24 3
3 7 65 1 1 27 3
3 8 48 1 1 30 3
3 4 40 1 1 33 3
3 2 33 1 1 36 3
3 0 31 1 1 39 3
3 1 28 1 1 42 3
3 2 27 1 1 45 3
3 3 20 1 1 48 3
3 1 17 1 1 51 3
3 0 16 1 1 54 3
4 10 167 2 1 3 3
4 5 149 2 1 6 3
4 6 145 2 1 9 3
4 3 138 2 1 12 3
4 4 135 2 1 15 3
4 5 128 2 1 18 3
4 2 122 2 1 21 3
4 2 120 2 1 24 3
4 7 104 2 1 27 3
4 9 98 2 1 30 3
4 5 89 2 1 33 3
4 2 57 2 1 36 3
4 2 55 2 1 39 3
4 4 53 2 1 42 3
4 2 49 2 1 45 3
4 2 26 2 1 48 3
4 1 24 2 1 51 3
4 1 23 2 1 54 3
4 1 11 2 1 57 3
4 0 10 2 1 60 3
4 0 10 2 1 63 3
4 2 164 1 1 3 3
4 5 153 1 1 6 3
4 7 148 1 1 9 3
4 6 141 1 1 12 3
4 12 135 1 1 15 3
4 6 119 1 1 18 3
4 4 113 1 1 21 3
4 3 109 1 1 24 3
4 5 98 1 1 27 3
4 2 94 1 1 30 3
4 2 92 1 1 33 3
4 4 55 1 1 36 3
4 3 50 1 1 39 3
4 1 48 1 1 42 3
4 2 47 1 1 45 3
4 1 22 1 1 48 3
4 1 21 1 1 51 3
4 0 20 1 1 54 3
4 1 7 1 1 57 3
4 0 6 1 1 60 3
4 0 6 1 1 63 3
5 12 152 2 1 3 3
5 7 135 2 1 6 3
5 9 128 2 1 9 3
5 8 120 2 1 12 3
5 7 112 2 1 15 3
5 1 77 2 1 18 3
5 3 76 2 1 21 3
5 2 73 2 1 24 3
5 4 71 2 1 27 3
5 5 45 2 1 30 3
5 3 40 2 1 33 3
5 2 37 2 1 36 3
5 3 35 2 1 39 3
5 3 32 2 1 42 3
5 3 32 2 1 45 3
5 1 32 2 1 48 3
5 9 149 1 1 3 3
5 4 131 1 1 6 3
5 5 127 1 1 9 3
5 8 122 1 1 12 3
5 11 114 1 1 15 3
5 5 76 1 1 18 3
5 5 71 1 1 21 3
5 5 66 1 1 24 3
5 6 61 1 1 27 3
5 3 35 1 1 30 3
5 4 32 1 1 33 3
5 1 28 1 1 36 3
5 1 27 1 1 39 3
5 6 26 1 1 42 3
5 5 26 1 1 45 3
5 0 26 1 1 48 3
6 22 179 2 1 3 3
6 13 151 2 1 6 3
6 3 138 2 1 9 3
6 5 135 2 1 12 3
6 1 130 2 1 15 3
6 5 104 2 1 18 3
6 7 99 2 1 21 3
6 6 92 2 1 24 3
6 6 66 2 1 27 3
6 7 60 2 1 30 3
6 4 53 2 1 33 3
6 0 30 2 1 36 3
6 2 29 2 1 39 3
6 3 27 2 1 42 3
6 1 24 2 1 45 3
6 0 16 2 1 48 3
6 1 15 2 1 51 3
6 0 14 2 1 54 3
6 1 14 2 1 57 3
6 0 14 2 1 60 3
6 13 178 1 1 3 3
6 7 160 1 1 6 3
6 7 153 1 1 9 3
6 10 146 1 1 12 3
6 10 136 1 1 15 3
6 2 97 1 1 18 3
6 5 95 1 1 21 3
6 3 90 1 1 24 3
6 5 57 1 1 27 3
6 2 52 1 1 30 3
6 6 50 1 1 33 3
6 3 37 1 1 36 3
6 1 34 1 1 39 3
6 2 33 1 1 42 3
6 4 31 1 1 45 3
6 0 17 1 1 48 3
6 0 17 1 1 51 3
6 1 17 1 1 54 3
6 0 16 1 1 57 3
6 0 16 1 1 60 3
END
ts[] bs[]
3 1
2 1
2 1
2 1
2 1
2 1
END
Hallo Ho, danke für Ihren Kommentar. Ich habe das Modell mit retidan bereits umgeschrieben und es stimmt mit veröffentlichten Ergebnissen zu einem sehr kleinen Unterschied überein. Vereinbart, dass WinBUGS obselete ist, werden hoffentlich mehr Akademiker den Wechsel vornehmen. – jrdnmdhl