Hi: Does this work for you?
xyplot(distance ~ age | Sex, data = Orthodont, groups = Subject, main = 'Individual linear regressions ~ age', type = c('g', 'r'), panel = function(x, y, ...) { panel.xyplot(x, y, ..., col = gray(0.5)) panel.lmline(x, y, ..., lwd = 3, col = 'red') }) HTH, Dennis On Wed, Jun 23, 2010 at 11:05 AM, Michael Friendly <frien...@yorku.ca>wrote: > Thanks, Deepayan > > I read your presentation and understand how this works for the case you > presented, but I can't > get it to work for my case, where I want to superimpose model fitted lines > over individual > subject regression lines. Here's what I tried > > library(nlme) > library(lattice) > > ## ------------------ > ## pooled OLS model > > ## ------------------ > > Ortho.OLS <- lm(distance ~ age * Sex, data=Orthodont) > #coef(Ortho.OLS) > > # plot individual lines > > xyplot(distance ~ age|Sex, data=Orthodont, type='r', groups=Subject, > col=gray(.50), > main="Individual linear regressions ~ age") > > grid <- expand.grid(age=8:14, Sex=c("Male", "Female")) > > fm.OLS <-cbind(grid, distance = predict(Ortho.OLS, newdata = grid)) > > Ortho <-Orthodont[c("age", "Sex", "distance")] > combined <- make.groups(original = Ortho, > OLS = fm.OLS) > str(combined) > xyplot(distance ~ age|Sex, data=combined, groups=which, col="black", lwd=2, > type = c("r", "l"), distribute.type = TRUE > ) > > This last just gives me the pooled within-Sex regression lines, which is > what I want to overlay > on the first plot. > > Further, if I try a mixed model, I get errors trying to get the predicted > values in a similar form > > > Ortho.MLM <- lme(distance ~ age * Sex, data=Orthodont, > random = ~ 1 + age | Subject, > correlation = corAR1 (form = ~ 1 | Subject)) > > fm.MLM <-cbind(grid, distance = predict(Ortho.MLM, newdata = grid)) > > > fm.MLM <-cbind(grid, distance = predict(Ortho.MLM, newdata = grid)) > Error in predict.lme(Ortho.MLM, newdata = grid) : > Cannot evaluate groups for desired levels on "newdata" > > > > > Deepayan Sarkar wrote: > >> On Tue, Jun 22, 2010 at 9:30 AM, Michael Friendly <frien...@yorku.ca> >> wrote: >> >> >>> Consider the following plot that shows separate regression lines ~ age >>> for >>> each subject in the Pothoff-Roy Orthodont data, >>> with separate panels by Sex: >>> >>> library(nlme) >>> #plot(Orthodont) >>> xyplot(distance ~ age|Sex, data=Orthodont, type='r', groups=Subject, >>> col=gray(.50), >>> main="Individual linear regressions ~ age") >>> >>> I'd like to also show in each panel the pooled OLS regression line for >>> each >>> Sex in the corresponding panel, >>> generated by the following model: >>> >>> Ortho.OLS <- lm(distance ~ age * Sex, data=Orthodont) >>> >>> Sex is a factor, with Male=0, so the coefficients are: >>> >>> >>>> coef(Ortho.OLS) >>>> >>>> >>> (Intercept) age SexFemale age:SexFemale >>> 16.3406250 0.7843750 1.0321023 -0.3048295 >>> >>> I anticipate wanting to fit other models to these data, and also >>> displaying >>> the model-predicted >>> regression lines in the same or similar plot, e.g., for a simple linear >>> mixed model: >>> >>> Ortho.MLM <- lme(distance ~ age * Sex, data=Orthodont, >>> random = ~ 1 + age | Subject, >>> correlation = corAR1 (form = ~ 1 | Subject)) >>> >>> >> >> Have a look at >> >> http://user2007.org/program/presentations/sarkar.pdf >> >> -Deepayan >> >> > > > -- > Michael Friendly Email: friendly AT yorku DOT ca Professor, Psychology > Dept. > York University Voice: 416 736-5115 x66249 Fax: 416 736-5814 > 4700 Keele Street Web: http://www.datavis.ca > Toronto, ONT M3J 1P3 CANADA > > ______________________________________________ > R-help@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide > http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. > [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.