p.bound in multilevel logistic regression

Aurélien Madouasse writes:

I am currently fitting a multilevel logistic model using WinBUGS. I have adapted the example you provide in ‘Data analysis using Regression and Multilevel/Hierarchical Models’ p381-2:

y[i] ~ dbin(p.bound[i], 1)
p.bound[i] <- max(0, min(1, p[i])) logit(p[i]) <- Xbeta[i] ... I was wondering what is the aim of the p.bound variable. When I use p[i] instead WinBUGS crashes. I thought that the inverse logit was bounded between 0 and 1 so I don't see the point of constraining it to be in this interval. What do I miss?

My reply: Yes, inverse logit is bounded, but I think Bugs sometimes messes up and gets it outside of the bound. The other thing is that when you change the specification (in this case, using p.bound) it changes the sampler that Bugs uses. Maybe it’s switching from the buggy adaptive rejection sampler to the foolproof Metropolis or slice sampler.