jagsUI::jags() занимает слишком много времени для запуска простой модели смешанных эффектов

#mixed-models #rjags

Вопрос:

Во-первых, я новичок в SO, поэтому, если вопрос такого типа не имеет отношения к делу, пожалуйста, дайте мне знать, и я смогу опубликовать его где-нибудь еще.

Я пытаюсь параметризовать простые модели смешанных эффектов с помощью jags. Я хочу подогнать линейную регрессию y ~ year со случайными эффектами на склонах и перехватах для разных sites . Для воспроизводимости (и для устранения проблем с моими данными) Я передал данные радужной оболочки глаза модели.

 library(jagsUI) library(dplyr)   # data  year=iris$Sepal.Length y=iris$Sepal.Width site=iris$Species%gt;%as.numeric() n=nrow(iris) nsites=length(levels(iris$Species))  # bugs model  cat(file = "iris.bug", 'model{    for (i in n) {      y[i] ~ dnorm(mu[i], s) # likelihood of each point given estimators    B1.e1 lt;- B1   e1[site[i]] # slope of i site   mu[i] lt;- B0   e0[site[i]]   B1.e1 * year[i] # mu computation     }    # random effects  for (j in 1:nsites) {  e0[j] ~ dnorm(0, sv0)  e1[j] ~ dnorm(0, sv1)  }    # priors   s ~ dgamma(0.0001, 0.0001)    B0 ~ dnorm(0, 0.000001)  B1 ~ dnorm(0, 0.000001)    sv0 ~ dgamma(0.0001, 0.0001)  sv1 ~ dgamma(0.0001, 0.0001)     }')   # jags variables  ## list of object names p.data lt;- list("year", "y", "site", "n", "nsites")  ## inti values function initsp lt;- function() {  list(e0 = rnorm(nsites, 10, 0.5),   e1 = rnorm(nsites, 0, 0.1),   B0 = rnorm(1, 0, 0.5),  B1 = runif(1),  sv1 = runif(1),   sv0 = runif(1),   s = runif(1)) }  ## parameters of interest parametersp lt;- c("e0", "e1", "B0", "B1", "sv1", "sv0", "s" )   

Но когда я запускаю jags() , он продолжает работать слишком долго, и мне приходится сбивать Rstudio вручную (когда я нажимаю кнопку «Стоп», появляется предупреждающее сообщение о том, что сеанс R не отвечает). Значение % прогресса меняется при каждом запуске, а иногда оно даже застревает Adaptive phase..... .

 sim lt;- jags(data = p.data, initsp, parametersp, model.file = "iris.bug",  n.thin = 5, n.chains = 3, n.iter = 5000)    Processing function input.......   Done.    Compiling model graph  Resolving undeclared variables  Allocating nodes Graph information:  Observed stochastic nodes: 1  Unobserved stochastic nodes: 11  Total graph size: 469  Initializing model  Adaptive phase.....  Adaptive phase complete    No burn-in specified    Sampling from joint posterior, 5000 iterations x 3 chains     |****** | 12%   

Есть идеи, в чем может быть проблема? Я почти уверен, что это должно быть связано с моделью ошибок, но я продолжаю смотреть на нее, и мне кажется, что все в порядке. Заранее спасибо