Re: [R] xyplot: adding pooled regression lines to a paneled type="r" plot

From: Dennis Murphy <djmuser_at_gmail.com>
Date: Wed, 23 Jun 2010 23:55:51 -0700

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 <friendly_at_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 <friendly_at_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_at_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_at_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. Received on Thu 24 Jun 2010 - 06:58:38 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Thu 24 Jun 2010 - 18:50:35 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.

list of date sections of archive