[R] Gibbs sampler

Duncan Murdoch murdoch.duncan at gmail.com
Fri Nov 11 10:36:09 CET 2011


On 11-11-10 1:28 PM, Gyanendra Pokharel wrote:
> I have the following code,
> gibbs<-function(m,theta = 0.25, lambda =0.55, n =1){
>      alpha<- 1.5
>      beta<- 1.5
>      gamma<- 1.5
>      x<- array(0,c(m+1, 3))
>      x[1,1]<- theta
>      x[1,2]<- lambda
>      x[1,3]<- n
>      for(t in 2:(m+1)){
>          x[t,1]<- rbinom(1, x[t-1,3], x[t-1,1])
>          x[t,2]<-rbeta(1, x[t-1,1] + alpha, x[t-1,3] - x[t-1,1] + beta)

Are you certain that x[t-1,3] - x[t-1,1] + beta will always be positive? 
  If it is negative, rbeta will return NaN.

Duncan Murdoch

>          x[t,3]<- rpois(1,(1 - x[t-1,1])*gamma)
>      }
>      x
> }
> gibbs(100)
>
> it returns only 1 or 2 values of theta, some times NaN, this may be if any
> theta is greater than 1, which is used as the probability for the next
> rbinom(), so returns NaN. Can some one suggest to solve this problem?
>
> 	[[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.



More information about the R-help mailing list