2013-02-24 2 views
0

Я хочу определить распределение в моей модели вида: P (x = 10) = 0,10, P (x = 15) = 0,20, P (x = 20) = 0,70WinBUGS - Определение поэтапного равномерного распределения

В FAQ по WinBUGS говорится, что возможно построить собственное дискретное равномерное распределение как категориальную переменную с равномерным предыдущим и которое может принимать необходимые целочисленные значения. См. Пример blockerht в первой части руководства.

Я посмотрел пример, я думаю, что это одна: «Иерархическая распределение Стьюдента с неизвестными степенями свободы»

В спецификации модели они делают что-то вроде:

for (n in 1:Nbins) { 
    prior[n] <- 1/Nbins; # Uniform prior on v 
} 
k ~ dcat(prior[]); 

Какие определяет дискретную однородность. Но я не знаю, как добраться до формы, в которой я нуждаюсь. Может кто-нибудь мне помочь?

+0

Вы должны определить, что вы имеете в виду под «ступенчатым равномерным распределением». Без этого это плохой вопрос, на который мы не можем ответить. Доложите свой вопрос, пока вы его не исправите. – TMS

ответ

3

Если я правильно понимаю ваш вопрос, вам не нужно петлю ...

#BUGS script to obtain distribution 
m1<-"model{ 
    ind ~ dcat(p[]) 
    pmix <- x[ind] 
}" 
writeLines(m1,"m1.txt") 

#simulate from the distribution  
library("R2OpenBUGS") 
m1.bug<-bugs(data = list(x=c(10, 15, 20), p=c(0.1,0.2,0.7)), 
      inits = NULL, 
      param = "pmix", 
      model = "m1.txt", 
      n.iter = 1100, n.burnin = 100, n.chains = 1, n.thin=1, DIC=FALSE) 

hist(m1.bug$sims.list$pmix) 

должен работать ...

enter image description here

+0

Я хотел бы попробовать, как образец из этого пользовательского равномерного распределения. Как я могу это сделать? Так вы построили эту гистограмму? – JEquihua

+0

@JEquihua, он уже выбран из распределения, которое он показывает, определяя 'pmix <- x [ind]'. 'pmix' - это переменная, на которую вы смотрите. Он дает вам 10, 15 или 20 на основе определенных вами вероятностей. Но будьте осторожны с терминами, которые вы используете; это не [равномерное распределение] (http://en.wikipedia.org/wiki/Uniform_distribution)! Это дискретно, а равномерное распределение непрерывно. – TMS

1

Я учусь, как сделать это сам. Интересно, можете ли вы это сделать:

prior[10] <- .1 
prior[15] <- .2 
prior[20] <- .7 
x ~ dcat(prior[]) 
Смежные вопросы