Dennis Murphy wrote:
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')
                })

Perfectly.  Thanks to you and to Deepayan for the help on this.

HTH,
Dennis

On Wed, Jun 23, 2010 at 11:05 AM, Michael Friendly <frien...@yorku.ca <mailto: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 <mailto: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 <mailto: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.




--
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.

Reply via email to