No one replied to my second question: how to get standard errors or confidence intervals for the estimated fixed effects from lme(). AFAICS, intervals() only gives CIs for coefficients.

My working example is:

library(nlme)
library(lattice)

Ortho <- Orthodont
Ortho$year <- Ortho$age - 8  # make intercept = initial status

Ortho.mix1 <- lme(distance ~ year * Sex, data=Ortho,
       random = ~ 1 + year | Subject, method="ML")
anova(Ortho.mix1)

# get predicted values
grid <- expand.grid(year=0:6, Sex=c("Male", "Female"))
grid$age <- grid$year+8  # plot vs. age
fm.mix1 <-cbind(grid, distance = predict(Ortho.mix1, newdata = grid, level=0))

xyplot(distance ~ age, data=fm.mix1, groups=Sex, type="b",
   par.settings = list(superpose.symbol = list(cex = 1.2, pch=c(15,16))),
auto.key=list(text=levels(fm.mix1$Sex), points = TRUE, x=0.05, y=0.9, corner=c(0,1)),
   main="Linear mixed model: predicted growth")

> intervals(Ortho.mix1)
Approximate 95% confidence intervals

Fixed effects:
                  lower      est.      upper
(Intercept)    21.607212 22.615625 23.6240383
year            0.619660  0.784375  0.9490904
SexFemale      -3.041252 -1.406534  0.2281834
year:SexFemale -0.562889 -0.304830 -0.0467701
attr(,"label")
[1] "Fixed effects:"

Random Effects:
 Level: Subject
                          lower       est.    upper
sd((Intercept))        1.0710615  1.7045122 2.712600
sd(year)               0.0281228  0.1541351 0.844783
cor((Intercept),year) -0.9358505 -0.0311195 0.927652

Within-group standard error:
 lower    est.   upper
1.07081 1.31004 1.60272
>


Peter Ehlers wrote:
On 2010-07-02 9:37, Michael Friendly wrote:
I have two questions related to plotting predicted values for a linear
mixed model using xyplot:

1: With a groups= argument, I can't seem to get the key to appear inside
the xyplot. (I have the Lattice book,
but don't find an example that actually does this.)
2: With lme(), how can I generate confidence bands or prediction
intervals around the fitted values? Once
I get them, I'd like to add them to the plot.
Example:

library(nlme)
library(lattice)
Ortho <- Orthodont
Ortho$year <- Ortho$year - 8 # make intercept = initial status

Ortho.mix1 <- lme(distance ~ year * Sex, data=Ortho,
random = ~ 1 + year | Subject, method="ML",
# correlation = corAR1 (form = ~ 1 | Subject)
)
Ortho.mix1

# predicted values
grid <- expand.grid(year=0:6, Sex=c("Male", "Female"))
grid$age <- grid$year+8 # plot vs. age
fm.mix1 <-cbind(grid, distance = predict(Ortho.mix1, newdata = grid,
level=0))

xyplot(distance ~ age, data=fm.mix1, groups=Sex, type="b", pch=c(15,16),
cex=1.2,
auto.key=list(text=c("Male", "Female"), points = TRUE, x=8, y=26),
main="Linear mixed model: predicted growth")

Can someone help?

-Michael


Michael,

the x,y location should be specified in the unit square
(and you might want to set the 'corner' component).

 Ortho$year <- Ortho$age - 8 ##fix typo
 xyplot(distance ~ age, data=fm.mix1, groups=Sex,
        type="b", pch=c(15,16), cex=1.2,
        auto.key=list(text=c("Male", "Female"),
                      points = TRUE,
                      x=0.1, y=0.8, corner=c(0,1)))

See description of 'key' in ?xyplot.

  -Peter Ehlers


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