Я пытаюсь отредактировать загруженную модель метаанализа сети с моими собственными данными, она работает нормально, пока я не скомпилирую модель после загрузки моих данных. Winbugs предупреждают, что «использовал неопределенный узел d». Я пытаюсь разобраться, но я потерпел неудачу. Пожалуйста, помогите мне. Модель и мои данные показали следующее.Ошибка Winbug с использованием неопределенного узла d
# Binomial likelihood, logit link, inconsistency model
# Random effects model
model{ # *** PROGRAM STARTS
for(i in 1:ns){ # LOOP THROUGH STUDIES
delta[i,1]<-0 # treatment effect is zero in control arm
mu[i] ~ dnorm(0,.0001) # vague priors for trial baselines
for (k in 1:na[i]) { # LOOP THROUGH ARMS
r[i,k] ~ dbin(p[i,k],n[i,k]) # binomial likelihood
logit(p[i,k]) <- mu[i] + delta[i,k] # model for linear predictor
#Deviance contribution
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])))
}
# summed residual deviance contribution for this trial
resdev[i] <- sum(dev[i,1:na[i]])
for (k in 2:na[i]) { # LOOP THROUGH ARMS
# trial-specific LOR distributions
delta[i,k] ~ dnorm(d[t[i,1],t[i,k]] ,tau)
}
}
totresdev <- sum(resdev[]) # Total Residual Deviance
for (c in 1:(nt-1)) { # priors for all mean treatment effects
for (k in (c+1):nt) { d[c,k] ~ dnorm(0,.0001) }
}
sd ~ dunif(0,5) # vague prior for between-trial standard deviation
var <- pow(sd,2) # between-trial variance
tau <- 1/var # between-trial precision
} # *** PROGRAM ENDS
# ns= number of studies; nt=number of treatments
list(nt=13,ns=17)
t[,1] t[,2] t[,3] t[,4] r[,1] r[,2] r[,3] r[,4] n[,1] n[,2] n[,3] n[,4] na[] # study
9 3 7 11 9 8 6 7 20 16 14 15 4 # 1
9 7 8 NA 117 83 122 NA 229 231 247 NA 3 # 2
9 3 NA NA 8 3 NA NA 18 13 NA NA 2 # 3
9 5 NA NA 13 16 NA NA 20 20 NA NA 2 # 4
9 1 2 NA 105 103 165 NA 226 228 227 NA 3 # 5
9 2 13 NA 30 67 52 NA 96 200 195 NA 3 # 6
9 6 NA NA 7 7 NA NA 17 18 NA NA 2 # 7
7 12 NA NA 5 2 NA NA 14 12 NA NA 2 # 8
9 7 8 12 14 8 12 8 24 23 21 26 4 # 9
9 8 NA NA 5 12 NA NA 30 34 NA NA 2 # 10
9 10 NA NA 3 10 NA NA 25 25 NA NA 2 # 11
9 3 4 11 12 8 17 8 22 24 25 26 4 # 12
9 8 NA NA 8 17 NA NA 21 24 NA NA 2 # 13
1 7 NA NA 9 4 NA NA 15 15 NA NA 2 # 14
9 1 NA NA 8 1 NA NA 30 29 NA NA 2 # 15
9 3 11 NA 3 5 0 NA 21 23 8 NA 3 # 16
9 8 NA NA 13 15 NA NA 19 16 NA NA 2 # 17
END
list(d=c(NA, 0,0,0,0,0,0,0,0,0,0,0,0), sd=1)