[R-sig-ME] lmer predicted and fitted values differ
ONKELINX, Thierry
Thierry.ONKELINX at inbo.be
Wed Nov 24 15:15:59 CET 2010
Dear Amy,
Here is a solution. It should work with nested random effects. Untested
with random slopes and crossed random effects.
Best regards,
Thierry
library(lme4)
cbpp$Obs <- factor(seq_len(nrow(cbpp)))
(gm1 <- glmer(cbind(incidence, size - incidence) ~ period + (1 |
herd/Obs), family = binomial, data = cbpp))
str(gm1)
predict.lmerBin <- function(object, X, Zt){
if(missing(X)){
X <- object at X
}
b <- fixef(object)
if(missing(Zt)){
Zt <- as.matrix(object at Zt)
}
z <- unlist(ranef(object))
plogis(X %*% b + t(Zt) %*% z)
}
all.equal(as.vector(predict.lmerBin(gm1)), fitted(gm1))
PS Replying to all should keep the thread intact.
------------------------------------------------------------------------
----
ir. Thierry Onkelinx
Instituut voor natuur- en bosonderzoek
team Biometrie & Kwaliteitszorg
Gaverstraat 4
9500 Geraardsbergen
Belgium
Research Institute for Nature and Forest
team Biometrics & Quality Assurance
Gaverstraat 4
9500 Geraardsbergen
Belgium
tel. + 32 54/436 185
Thierry.Onkelinx at inbo.be
www.inbo.be
To call in the statistician after the experiment is done may be no more
than asking him to perform a post-mortem examination: he may be able to
say what the experiment died of.
~ Sir Ronald Aylmer Fisher
The plural of anecdote is not data.
~ Roger Brinner
The combination of some data and an aching desire for an answer does not
ensure that a reasonable answer can be extracted from a given body of
data.
~ John Tukey
> -----Oorspronkelijk bericht-----
> Van: Amy Wade [mailto:a.s.wade at reading.ac.uk]
> Verzonden: woensdag 24 november 2010 14:44
> Aan: ONKELINX, Thierry; r-sig-mixed-models at r-project.org
> Onderwerp: lmer predicted and fitted values differ
>
> Theirry,
>
> Thanks for that clarification. I would like to predict data
> for the existing levels of the random effects.
>
>
> Many thanks,
> Amy
>
> P.S. not sure how to continue a thread - hope this works....
>
>
>
>
>
> .......................................
> Amy S. I. Wade
> Centre for Agri-Environmental Research
> University of Reading
>
>
>
>
>
> -----Original Message-----
> From: ONKELINX, Thierry [mailto:Thierry.ONKELINX at inbo.be]
> Sent: 24 November 2010 12:47
> To: Amy Wade; r-sig-mixed-models at r-project.org
> Subject: RE: [R-sig-ME] lmer predicted and fitted values differ
>
> Dear Amy,
>
> The functions that you used take only the fixed effects into account.
> While fitted() takes both the fixed and the random effects
> into account.
>
> What do you want to predict? The 'average' data (all random
> effect levels = 0)? Data for existing levels of the random
> effects? Data for new levels of the random effects?
>
> Best regards,
>
> Thierry
>
> --------------------------------------------------------------
> ----------
> ----
> ir. Thierry Onkelinx
> Instituut voor natuur- en bosonderzoek
> team Biometrie & Kwaliteitszorg
> Gaverstraat 4
> 9500 Geraardsbergen
> Belgium
>
> Research Institute for Nature and Forest team Biometrics &
> Quality Assurance Gaverstraat 4 9500 Geraardsbergen Belgium
>
> tel. + 32 54/436 185
> Thierry.Onkelinx at inbo.be
> www.inbo.be
>
> To call in the statistician after the experiment is done may
> be no more than asking him to perform a post-mortem
> examination: he may be able to say what the experiment died of.
> ~ Sir Ronald Aylmer Fisher
>
> The plural of anecdote is not data.
> ~ Roger Brinner
>
> The combination of some data and an aching desire for an
> answer does not ensure that a reasonable answer can be
> extracted from a given body of data.
> ~ John Tukey
>
>
> > -----Oorspronkelijk bericht-----
> > Van: r-sig-mixed-models-bounces at r-project.org
> > [mailto:r-sig-mixed-models-bounces at r-project.org] Namens Amy Wade
> > Verzonden: woensdag 24 november 2010 13:29
> > Aan: r-sig-mixed-models at r-project.org
> > Onderwerp: [R-sig-ME] lmer predicted and fitted values differ
> >
> > Hello,
> >
> >
> >
> > I am trying to predict response values for a model with new,
> > unmeasured parameter values. It is an lmer model
> constructed using the
> > lme4 package. I realise there is not a 'predict.lmer()' function or
> > similar for lmer models.
> > Having searched on the internet I found 3 possible methods for
> > calculating predicted values given unmeasured values for a given
> > parameter in the model.
> >
> >
> >
> >
> > This is my model:
> >
> > data.m2<-data.frame(pods.bind,FUNGICIDE,N.TENTS,Day,HUMIDITY,P
> > LOT,TREE)
> > #where 'pods.bind' is cbind(Black.pods,healthy.pods)
> >
> > m2<-lmer(pods.bind~FUNGICIDE+N.TENTS*Day+HUMIDITY*Day+(1|PLOT/
> > TREE),family="
> > quasibinomial")
> >
> >
> >
> >
> >
> > Here are the possible methods:
> >
> > #1
> >
> > mm = model.matrix(terms(m2),data.m2)
> >
> > data.m2$pods.bind = mm %*% fixef(m2)
> >
> > predicted.1<-exp(data.m2$pods.bind)/(1+exp(data.m2$pods.bind))
> >
> >
> >
> > #2
> >
> > predict.lmerBin <- function(object, X){
> >
> > if(missing(X))
> >
> > X <- object at X
> >
> > b <- fixef(object)
> >
> > plogis(X %*% b)
> >
> > }
> >
> > predicted.2<-predict.lmerBin(m2)
> >
> >
> >
> > #3
> >
> > predicted.3<-exp(model.matrix(terms(m2),data.m2)%*%fixef(m2))
> >
> >
> >
> >
> >
> > All three methods result in exactly the same predicted values.
> > However, when I plug in the real data I get different
> values than I do
> > for fitted(). This makes me doubt the validity of my
> predicted values.
> > Could anybody explain why the predicted values, using these
> methods,
> > differ from the fitted values?
> >
> >
> >
> > Thanks for your help.
> >
> >
> >
> > Amy
> >
> >
> >
> > ..............................................................
> > ..............
> > ...............
> >
> > Amy S. I. Wade
> >
> > Centre for Agri-Environmental Research
> >
> > University of Reading
> >
> >
> >
> >
> > [[alternative HTML version deleted]]
> >
> > _______________________________________________
> > R-sig-mixed-models at r-project.org mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-sig-mixed-models
> >
>
>
More information about the R-sig-mixed-models
mailing list