У меня есть код в OpenBUGS, но ошибка "переменная CR не определена"

model
{
for( i in 1 : N ) {   
dgf[i] ~ dbin(p[i],n[i])    
logit(p[i]) <- a[subject[i]] + beta[1] * CR[i] 
}

for (j in 1:94)
{
a[j]~dnorm(beta0,prec.tau)
}
beta[1] ~ dnorm(0.0,.000001)
beta0 ~ dnorm(0.0,.000001)
prec.tau ~ dgamma(0.001,.001)
tau<-sqrt(1/prec.tau)
}

список ( n=c(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1), dgf=c(0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,1,1,0,0,1,1,0,0,0,1,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0), тема =c(1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,30,30,31,31,32,32,33,33,34,34,35,35,36,36,37,37,38,38,39,39,40,40,41,41,42,42,43,43,44,44,45,45,46,46,47,47,48,48,49,49,50,50,51,51,52,52,53,53,54,54,55,55,56,56,57,57,58,58,59,59,60,60,61,61,62,62,63,63,64,64,65,65,66,66,67,67,68,68,69,69,70,70,71,71,72,72,73,73,74,74,75,75,76,76,77,77,78,78,79,79,80,80,81,81,82,82,83,83,84,84,85,85,86,86,87,87,88,88,89,89,90,90,91,91,92,92,93,93,94,94), CR=c(NA,NA,1,41,0,85,1,13,6,65, NA, NA, 2,13,1,61,7,31,3,8,1,65, 2.32,1.13,2.3,0.99,1.5,1.32,3.95,7.2,2.97,0.83,1.55 Н.А., 6.5,0.89,1.2,1.52,7,8.68,7.41 Н.А., 0,86 Н.А., 1,92 Н.А., 1,31, 7.8,1.78 Н.А., 1.67, Н. А., Н. А., Н. А., Н. А., Н. А., 2.25,0.98,0.82,3.94,1.14,12,2.58,2.42,2.59, Н. А., Н. А., Н. А., Н. А., 6.6,3.22 Н.А., 2.02,2.43,1.96,0.82,1.64,1.81,1.53,1.01,5.21,8.33,1.14,1.49,6,5.6,2,3.33,4.08, Н. А., Н. А., 1.14,1.25,0.85,5.42,0.85,0.65, 1.02,1.33,1.1,1.12, Н. А., Н. А., 1.53,1.76,2,0.85,2.9,5,4.09,2.68,0.98,1.48,0.66,0.57,5.72,2.34,0.93,2.39,1.39,1.44,4.77, 2.39,1.79,1.2,0.81,1.25,4.69,1.22,1.92,1.48,2.46, Н. А., Н. А., 2.53,1.12,1.74,3.45,1.22,1.27,2.61,1.75,0.82 Н.А., 1.4, Н.А., 5.1, 1.24,1.5,1.94,1.24,1.04,1.24 Н.А., 2,39 Н.А., 2.07,2.19,1.6,6,6.38, 1.17,1.2,5.62,6.39,1.82,1.31 Н.А., 1.18,3.71,2.03,5.4,2.17 Н.А., 1.94,1.57,1.44,1.35,1.63,1.24,1.54,1.5, Н. А., Н. А., Н. А., Н.А., 1,44, NA, 2,19,7,98,2,15, 1,71, 1,45, NA, 0,98,2,37,1,58), N = 188)

Я знаю, что ошибка из-за "NA" в переменной "CR", но я не знаю, как ее решить. Я буду признателен за любую помощь.

1 ответ

У вас есть 2 варианта:

1) Удалите недостающий CR и соответствующие элементы n, dgf и subject (и соответственно уменьшите N).

2) Определите стохастическое отношение для CR в вашей модели, чтобы модель оценивала недостающий CR и использовала эти оценки в логистической регрессии. Что-то вроде:

for(i in 1:N){
   CR[i] ~ dnorm(CR_mu, CR_tau)
}
CR_mu ~ dnorm(0, 10^-6)
CR_tau ~ drama(0.001, 0.001)

CR_mu и CR_tau, вероятно, не представляют интереса, но их можно отслеживать, если хотите.

Обратите внимание, что оба подхода предполагают, что CR отсутствует случайным образом (а не, например, не подвергнут цензуре) - если CR отсутствует случайно, это даст вам предвзятые результаты.

Matt

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