[R-sig-ME] trouble getting data scale predictions from a binomial MCMCglmm model

Kari Ruohonen kari.ruohonen at utu.fi
Wed Mar 23 13:19:29 CET 2011


Hi,
I have fitted a binomial model (logit link) with MCMCglmm by fixing the
unit variance to 1 as discussed in the CourseNotes of MCMCglmm.

Now, I would like to get predictions on the data scale. I know there is
a predict function that does this but I need to be able to predict
outside R. With the usual X%*%b where X is the model matrix and b the
vector of coefficients I get predictions on the link scale. The
predictions I get match those from the predict.MCMCglmm method with the
type="terms" option. However, I cannot figure out how to get the
predictions on the data scale. CourseNotes discuss and give an example
of scaling the coefficients suitably with c2 <- (16*sqrt(3)/(15*pi))^2
and then dividing with (sqrt(1+c2*residual var)) to obtain estimates
under residual variance =0 but I cannot figure out how to apply this to
the case of predictions.

Here is a small example based on one in the CourseNotes:

treatment<-gl(2,25)
y<-rbinom(50,1,c(.5,.001)[treatment])
data.bin<-data.frame(treatment=treatment,y=y)
prior.m2c.3<-list(R=list(V=1,fix=1),G=list(G1=list(V=1,nu=.002)))
m2c.3<-MCMCglmm(y~treatment,data=data.bin,family="categorical",prior=prior.m2c.3,verbose=FALSE)

# the next predictions correspond to those from predict.MCMCglmm with "
# type="terms"
preds.link<-m2c.3$X%*%summary(m2c.3$Sol)$statistics[,1]

# but these do not correspond those with type="response"
preds.data<-plogis(preds.link[,1]/sqrt(1+c2*1))

I am obviously missing something and would be grateful to someone
helping me out.

Many thanks, Kari




More information about the R-sig-mixed-models mailing list