2013-02-24 3 views
0

다음 형식의 모델에서 분포를 정의하고자합니다. P (x = 10) = 0.10, P (x = 15) = 0.20, P (x = 20) = 0.70WinBUGS - 단계별 균일 분포 정의

WinBUGS FAQ에서는 균일 한 우선 순위를 가지며 필요한 정수 값을 취할 수있는 범주 형 변수로 자체 이산 균일 분포를 구성 할 수 있다고 말합니다. 이 설명서의 첫 번째 부분에있는 blockerht 예제를 참조하십시오. 그들은 같은 것을 할 모델 사양에서

"자유의 알 수없는 학위를 가진 계층 t 분포": 나는 예를 보았다

는, 나는이 하나라고 생각

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

을 어느 이산 유니폼을 정의합니다. 그러나 나는 내가 필요한 형식을 얻는 방법을 모른다. 누구든지 나를 도울 수 있습니까?

+0

"단계별 균일 배포"란 의미를 정의해야합니다. 이것이 없으면 우리가 대답 할 수없는 나쁜 질문입니다. 당신이 그것을 고칠 때까지 질문을 downvoting. – 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[])