2016-10-27 7 views
1

Я хочу, чтобы переменной внутри модели JAGS присваивалось значение с вероятностью p [i] и другое значение с вероятностью 1-p [i]. p [i] - переменная в модели.Вероятностная инструкция ifelse в JAGS

Я пробовал следующее, но я не уверен, что это уместно. Я боюсь, что одно значение (0 или 1) будет отнесено к субъекту i, и это значение всегда останется неизменным: для данного субъекта i значения в векторе a [i] всегда будут равны 20 или 30 . Вместо этого я хотел бы получить вектор, содержащий 20 и 30 с вероятностью 20, равным p [i].

for (i in 1:n) { 
    m[i] ~ dbin(p[i],1) 
    a[i] <- ifelse(m[i]==1, 20, 30)  
    } 
+0

ОШИБКИ язык - что и зазубрин читает - это модель декларативный язык который был вдохновлен R и должен был выглядеть и чувствовать себя как R, а не быть на самом деле подмножеством языка R, который является процедурным языком. Таким образом, функция R 'ifelse' не является частью языка BUGS. –

ответ

3

Вы могли бы что-то сделать.

for(i in 1:n){ 
m[i] ~ dbern(p[i]) 
a[i] <- (m[i] * 20) + ((1 - m[i]) * 30) 
} 

Когда Бернулли след занимает 1 по вероятности p, a становится 20. Когда она принимает 0 становится 30.

 Смежные вопросы

  • Нет связанных вопросов^_^