Ошибка с функцией jags.model, вызванная полем inits - PullRequest
0 голосов
/ 10 октября 2018

Я только начал изучать, как использовать пакет rjags в R, но натолкнулся на ошибку, которую не могу исправить после запуска функции jags.model ().Ошибка «Ошибка в setParameters (init.values ​​[[i]], i): ОШИБКА ВРЕМЕНИ: Несоответствие размеров в значениях, предоставленных для тета» Проблема, по-видимому, связана с данными inits, поскольку при исключении списка списков вфункция.Вот кодЯ создал список списков в соответствии с инструкциями, но он по-прежнему является причиной ошибки.

library(rjags)    
myData = read.csv("z6N8z2N7.csv")
      newData = data.frame(y=c(1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1), s = rep("Mike", 32))
      newMyData = rbind(myData, newData)
      y = newMyData$y
      s = as.numeric(newMyData$s)
      Ntotal = length(y)
      Nsubj = length(unique(s))
      dataList = list(
        y = y,
        s = s,
        Ntotal= Ntotal,
        Nsubj = Nsubj
      )
      modelString =
        "model{
      for (i in 1:Ntotal) {
      y[i] ~ dbern(theta[s[i]])
      }
      for (s in 1:Nsubj) {
      theta[s] ~ dbeta(1, 1)
      }
      }
      "
      writeLines( modelString, con ="TEMPmodel.txt" )
      thetaInit = as.numeric(sum(newMyData %>% filter(s == unique(newMyData$s)[1]) %>% select(1))  / 
        count(newMyData %>% filter(s == unique(newMyData$s)[1]) %>% select(1)))
      thetaInit2 = as.numeric(sum(newMyData %>% filter(s == unique(newMyData$s)[2]) %>% select(1))  / 
        count(newMyData %>% filter(s == unique(newMyData$s)[2]) %>% select(1)))
      thetaInit3 = as.numeric(sum(newMyData %>% filter(s == unique(newMyData$s)[3]) %>% select(1))  / 
        count(newMyData %>% filter(s == unique(newMyData$s)[3]) %>% select(1)))

      initsList = list( list(theta = thetaInit), list(theta = thetaInit2), 
                        list(theta = thetaInit3))
      jags.model = jags.model(file = "TEMPmodel.txt",
                                    data = dataList, #inits = initsList,
                                     n.chains = 3, n.adapt = 5000)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...