[R-sig-ME] help with ordinal mixed model (reposted from r-help)
Ben Bolker
bbolker at gmail.com
Mon Mar 26 16:53:28 CEST 2012
[forwarded to r-sig-mixed]
Ivan Allaman <ivanalaman <at> yahoo.com.br> writes:
>
> Good afternoon, gentlemen!
(Note that we are not all gentlemen here ...)
> After several days studying and researching on categorical data
> (various forums with answers from the owner of the library - all
> incipient) how to interpret the output the function MCMCglmm, come
> to enlist the help of you, if someone has already worked with
> MCMCglmm function in the case of variables ordinal dependent. I've
> read and reread all the pdf's of the package, the coursenotes
> Jarrod, finally, I'm exhausted. To clarify the database, the
> treatment (called fases) consist of three levels (1-pre, 2-propolis
> and 3-vincris) and the ordinal variable response has three
> categories (1-normal, 2-agudo, 3 - cronico). See table!
Thank you for the reproducible example.
I'm forwarding this to r-sig-mixed-models at r-project.org,
which is really more appropriate.
Your biggest problem is that your chain is mixing really, really
badly, probably because your data set is too small/the model is
overfitted ... you may need to use some informative priors to get
things back on track, or you may need to try something simpler ...
Ben Bolker
## a few tweaks for prettier code: set factor labels right away
du <- transform(
read.table('http://dl.dropbox.com/u/33619290/Dados/Dtest.txt',
header=TRUE),
FASES=factor(FASES,
labels=c('Normal','Aguda','Crônica')),
ANIMAIS=factor(ANIMAIS),
ALT.RENAIS=ordered(ALT.RENAIS,
labels=c('Pre','Propolis','Vincr')))
summary(du)
du <- na.omit(du)
(tabela <- with(du,table(FASES,ALT.RENAIS)))
## this shows that there really isn't very much information
## in the data set ...
library(ggplot2)
ggplot(du,aes(FASES,ALT.RENAIS,group=ANIMAIS))+
geom_point()+geom_line()+facet_wrap(~ANIMAIS)
library('MCMCglmm')
#the mixed model:
set.seed(1)
mod1 <- MCMCglmm(ALT.RENAIS ~-1+FASES, random= ~ ANIMAIS,
family='ordinal',pl=TRUE,data=du)
summary(mod1)
xyplot(mod1$Sol) ## NOT mixing well
## run for longer ...
mod2 <- MCMCglmm(ALT.RENAIS ~-1+FASES, random= ~ ANIMAIS,
family='ordinal',pl=TRUE,data=du,nitt=100000)
xyplot(mod2$Sol)
xyplot(mod2$CP) ## !!!
> Then the pain starts, since the documentation is insufficient in
> this case. According to him Jarrod (forums), the a posteriori means
> of the coefficients of the covariates are the probit
> scale. According to my study, these coefficients are the scores of
> standard normal distribution. More scores should not correspond to
> cutpoints? In this case, we would have j (response variable
> categories) -1 cutpoints, ie, two cutpoints. The output shows me
> only one cutpoint. How can then calculate the probabilities with
> only one cutpoint? According to the documentation (Vignettes, page
> 22), if P (y = k) = F (yk | l (vlatente), 1) - F (yk-1 | l, 1), this
> '1' would probably be the category '1' of the dependent variable?
> Anyway gentlemen, how can I extract the probabilities for the stages
> for each category of the dependent variable? I thank everyone's
> attention.
From
https://stat.ethz.ch/pipermail/r-sig-mixed-models/2010q2/003671.html :
[for a four-category model]
If l=Xb+Zu+e, the probabilities of falling into each of the four
categories are:
## pnorm(-l)
## pnorm(cp[1]-l)-pnorm(-l)
## pnorm(cp[2]-l)-pnorm(cp[1]-l)
## 1-pnorm(cp[2]-l)
For an unknown individual in category 1 (i.e. set u=0) the prediction
would be
l = -3.605
## category 1: pnorm(-l) = pnorm(3.605) = 0.999
summary(pnorm(-mod2$Sol[,1]))
## category 2: pnorm(cp[1]-l)-pnorm(-l)
summary(pnorm(mod2$CP-mod2$Sol[,1])-pnorm(-mod2$Sol[,1]))
## category 3: pnorm(cp[1]-l) [OR pnorm(cp[1]-l,lower.tail=FALSE)]
summary(pnorm(mod2$CP,lower.tail=FALSE))
library(ordinal) ## model MUST have an intercept according to ?clm
mod3 <- clmm(ALT.RENAIS ~FASES+(1|ANIMAIS),data=du,link="probit")
summary(mod3)
This is not quite working either -- maybe the model is just plain
overfitted?
More information about the R-sig-mixed-models
mailing list