Как закодировать пропущенное начальное значение купе в ODE, используя openbugs - PullRequest
0 голосов
/ 10 февраля 2019

Я хочу вывести параметры в обыкновенных дифференциальных уравнениях (модель отделения инфекционных заболеваний), используя openBUGS.Однако я не знаю начальную стоимость одного из отсеков.Как мне кодировать отсутствующее значение отсека в openBUGS?

Ниже приведен код, который я написал.

В коде два отсека модели «C» для отсека Начальное значение C [2] ячейка является пропущенным значением.

Конечно, этот код не может быть инициализирован: (

(сообщение об ошибке: множественные определения узла C [2])

IНе удалось решить проблему. Заранее спасибо.

     model  
     {   
    # Observed value. 
     for (i in 1:n.grid) {
     Ca[i] ~dbin(p, Com[i,2])
     }
      ## ODE
      Com[1:n.grid, 1:dim] <- ode(init[1:dim], grid[1:n.grid], 
      D(C[1:dim], t),  0, tol)

      D(C[1],t)<-alpha * C[1] - mu * C[1] - beta * C[2]
      D(C[2],t)<-beta * C[2] - kappa * C[2]
      #prior
      C[2] ~ dunif(0,10)
      alpha ~ dbeta(2,5)
      mu ~ dbeta(2,5)
      kappa ~ dnorm(0,0.11)
      beta ~ dbeta(2,5)
    }



    ### data
    list(
      n.grid = 20, dim = 2, tol = 1.0E-3,
      init = c(10000, NA,0),
      grid = c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20),
      Ca= c(1,3,5,7,9,11,12,13,14,15,16,33,45,67,78,89,90,100,130,134),
      p = 0.95
    )
    ### initial values for sampler ###
    list( alpha = 0.5, mu = 0.4, kappa = 0.2, beta = 0.3)
...