Я пытаюсь изучить байесовский анализ на основе книги «Выполнение байесовского анализа данных: учебное пособие с R, JAGS и Stan (2015)».Сообщение об ошибке Rjags: несоответствие измерений
В этой книге есть примеры. Итак, я пытаюсь воспроизвести этот пример в R. Однако в этом примере у меня есть сообщение об ошибке.
Конкретно, это данные примера.
data
y s
1 1 Reginald
2 0 Reginald
3 1 Reginald
4 1 Reginald
5 1 Reginald
6 1 Reginald
7 1 Reginald
8 0 Reginald
9 0 Tony
10 0 Tony
11 1 Tony
12 0 Tony
13 0 Tony
14 1 Tony
15 0 Tony
y<-data$y
s<-as.numeric(data$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(2,2)
}
}
"
writeLines(modelString, con="TEMPmodel.txt")
library(rjags)
library(runjags)
jagsModel=jags.model(file="TEMPmodel.txt",data=dataList)
В этом случае у меня появилось сообщение об ошибке.
Error in jags.model(file = "TEMPmodel.txt", data = dataList) :
RUNTIME ERROR:
Cannot insert node into theta[1...2]. Dimension mismatch
Я не знаю, что я совершил ошибку в этом коде. Пожалуйста, дайте мне совет.
Заранее спасибо.
Не используйте повторно 's' во втором цикле. Просто используйте другой узел, например. 'K'. Замените 's' во втором цикле на' k', и все должно быть хорошо. – nicola
На самом деле, я не могу воспроизвести. Пример работает для меня. – nicola