Эта цепочка содержит неинициализированные переменные

Я получаю "эта цепочка содержит неинициализированные переменные", когда загружаю модули для 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 сделать это.

Другие вопросы по тегам