Эта цепочка содержит неинициализированные переменные
Я получаю "эта цепочка содержит неинициализированные переменные", когда загружаю модули для 3 цепочек с прикрепленной моделью. Я нажимаю "gen init", чтобы продолжать. Это правильно делать? Это не происходит с фиксированной моделью, но, как правило, происходит со случайными моделями. Пожалуйста, порекомендуйте.
#BUGS model
model{
for(i in 1:ns){
w[i,1] <- 0
delta[i,1] <- 0
mu[i] ~ dnorm(0,.0001)
for (k in 1:na[i]) {
r[i,k] ~ dpois(theta[i,k])
theta[i,k] <- lambda[i,k]*E[i,k]
log(lambda[i,k]) <- mu[i] + delta[i,k]
dev[i,k] <- 2*((theta[i,k]-r[i,k]) + r[i,k]*log(r[i,k]/theta[i,k]))
}
resdev[i] <- sum(dev[i,1:na[i]])
for (k in 2:na[i]) {
delta[i,k] ~ dnorm(md[i,k],taud[i,k])
md[i,k] <- d[t[i,k]] - d[t[i,1]] + sw[i,k]
taud[i,k] <- tau *2*(k-1)/k
w[i,k] <- (delta[i,k] - d[t[i,k]] + d[t[i,1]])
sw[i,k] <- sum(w[i,1:k-1])/(k-1)
}
}
for (c in 1:(nt-1)) {
for (k in (c+1):nt) {
lhr[c,k] <- (d[k]-d[c])
log(hr[c,k]) <- lhr[c,k]
}
}
totresdev <- sum(resdev[])
d[1]<-0
for (k in 2:nt){
d[k] ~ dnorm(0,.0001)
}
sd ~ dunif(0,5)
tau <- pow(sd,-2)
}
#data
list(ns=9, nt=9)
t[,1] t[,2] t[,3] t[,4] E[,1] E[,2] E[,3] E[,4] r[,1] r[,2] r[,3] r[,4] na[]
1 2 3 4 224 226 221 223 19 11 15 7 4
2 5 NA NA 818 806 NA NA 83 73 NA NA 2
2 7 NA NA 412 429 NA NA 51 37 NA NA 2
1 2 7 NA 4572 4563 4599 NA 869 730 736 NA 3
1 7 NA NA 68 137 NA NA 8.8 13.7 NA NA 2
1 6 NA NA 125 131 NA NA 4 5 NA NA 2
2 8 9 NA 131 128 130 NA 10.6 20.2 18.1 NA 3
1 2 8 NA 256 255 254 NA 79 73 48 NA 3
2 8 NA NA 152 147 NA NA 38 24 NA NA 2
END
#inits
list(d=c(NA, 0, 0, 0, 0, 0, 0, 0, 0), sd=1, mu=c(0, 0, 0, 0, 0, 0, 0, 0, 0))
list(d=c( NA, -1, -1, -1, -1, -1, -1, -1, -1), sd=4, mu=c(-3, -3, -3, -3, -3, -3, -3, - 3, -3))
list(d=c( NA, 2, 2, 2, 2, 2 ,2, 2, 2), sd=2, mu=c(-3, 5, -1, -3, 7, -3, -4, -3, -3))
1 ответ
Это сообщение появляется, если вы не указали начальные значения для неизвестного параметра. В вашем случае это будут случайные эффекты. Обычно нормально разрешить WinBUGS генерировать начальные значения для случайных эффектов. Как правило, если предыдущий расплывчатый, вы должны указать свои собственные начальные значения (чтобы избежать проблем с переполнением чисел в начале выборки). Если предыдущий является информативным (как это было бы для случайного эффекта, если вы инициализировали параметры распределения случайных эффектов при разумных значениях), вы можете позволить WinBUGS сделать это.