[R-sig-ME] How to calculate predictions

Stuart Luppescu slu at ccsr.uchicago.edu
Mon Feb 27 23:42:48 CET 2012


On Mon, 2012-02-27 at 14:20 -0700, Jake Westfall wrote:
> 1) Yes2) ?fitted

I don't think fitted is what I want. According to the docs, fitted
returns the fitted conditional means of the responses. I want the
predicted value when age-11 is 4, (age-11)^2 is 16, old4gr has the
appropriate value, and all the individual random effects are included.

> > From: slu at ccsr.uchicago.edu
> > To: r-sig-mixed-models at r-project.org
> > Date: Mon, 27 Feb 2012 15:02:31 -0600
> > Subject: [R-sig-ME] How to calculate predictions
> > 
> > Hello, I have modeled student math growth curves with lmer with a model
> > like this. It predicts math achievement by age (centered at age 11) with
> > a linear and quadratic term, with both these and the intercept varying
> > randomly across students:
> > 
> > math.lme3 <- lmer(data=allmathgains, math ~ I(age-11) + I((age-11)^2) +
> > old4gr + (I(age-11) + I((age-11)^2) | sid))
> > 
> > where sid is the student ID and old4gr take a value of 1 if the student
> > is old for grade, 0 otherwise. I want to get a prediction of each
> > student's achievement at age 15. I have done this kind of thing:
> > 
> > random.effects3 <- ranef(math.lme3)
> > fixed.effects3 <- fixef(math.lme3)
> > 
> > ## Just try it for the first 100 students for now
> > test <- random.effects3$sid[1:100,]
> > test2 <- cbind(as.numeric(rownames(test)),
> >                test[,1]+fixed.effects3[1],
> >                test[,2]+fixed.effects3[2],
> >                test[,3]+fixed.effects3[3])
> >  
> > test3 <- cbind(test2, allmathgains[1:100, "old4gr"])
> >  
> > to.predict <- as.data.frame(cbind(rep(1, 100), rep(4, 100), rep(16,
> > 100)))
> > to.predict2 <- cbind(to.predict, allmathgains[1:100, "old4gr"])
> > 
> > my.predictions <- numeric(100)
> > for (i in 1:100) {
> >   my.predictions[i] <- test3[i, 2:5] %*% t(as.matrix(to.predict2[i,]))
> > }
> > 
> > My questions: 
> > 1) Is my idea to add each random effect to the fixed effects (to make
> > data.frame test2) correct? 
> > 2) Is there a more efficient way of doing this? This is a big issue
> > because I am working with a data set of about 240,000 students. 
> > 
> > Thanks in advance.
> > -- 
> > Stuart Luppescu -=- slu .at. ccsr.uchicago.edu        
> > University of Chicago -=- CCSR 
> > 才文と智奈美の父 -=-    Kernel 3.2.1-gentoo-r2                
> > For the S system, which has forever altered the way
> >  people analyze, visualize, and manipulate data
> >  .... S is an elegant, widely accepted, and
> >  enduring software system, with conceptual
> >  integrity, thanks to the insight, taste, and
> >  effort of John Chambers.    -- Association for
> >  Computing Machinery       ACM/Software System
> >  Award citation (1998)
> > 
> > _______________________________________________
> > R-sig-mixed-models at r-project.org mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-sig-mixed-models
>  		 	   		  


-- 
Stuart Luppescu -=- slu .at. ccsr.uchicago.edu        
University of Chicago -=- CCSR 
才文と智奈美の父 -=-    Kernel 3.2.1-gentoo-r2                
My institution has a particularly diabolical policy
 on intellectual property, especially on software. 
 -- Ross Ihaka       R-help (August 2003)




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