Dear Chuck,

thanks for your reply. I think the graphs you showed me looks  
beautifully. The only problem I see with it, is that the regression- 
lines are potentially extended beyond the original data. So, I  
changed some of your suggested code.

The weird thing is, when I try to implement the working code into a  
function, it stops working. I can't figure out why, but it seems like  
the called variables are not transferred properly to the xyplot- 
function within the overall function.

I tried the following:

# using the fm2-estimated model

library(nlme)
library(lattice)
fm2 <- lme(distance ~ poly(age, 2) * Sex,
                       data = Orthodont, random = ~ 1)


newdat <- fm2$data

newdat$newpred <- predict(fm2, newdat, level = 0)

xyplot(newpred ~ age, groups=Sex, data = newdat,        panel = function(x,  
y, ...)
                        {
                        panel.superpose(x, y, type="l", ...)
                }
            )

#This works properly and is basically a simplified version of what  
you suggested, but it doesn't extent the model beyond the data it was  
based on. The following does not work though:

# now inside function

vis <- function(model, pred, grp, lvl)
        {
                newdat <- model$data

                newdat$newpred <- predict(model, newdat, level = lvl)

                xyplot(newpred ~ pred,
                groups=grp,
                data = newdat,  
                panel = function(x, y, ...)
                        {
                                panel.superpose(x, y, type="l", ...)
                        }
         )
        }

 > vis(fm2,"age","Sex",0)
Error in !all.na : invalid argument type
In addition: Warning messages:
1: NAs introduced by coercion
2: NAs introduced by coercion
 > vis(fm2,age,Sex,0)
Error in eval(expr, envir, enclos) : object "Sex" not found


I was wondering what I am missing here. Has it something to do with  
the way a lattice function behaves within a function, or am I missing  
something else here?

I hope someone can help me a bit further here.

Greetings,

Rense Nieuwenhuis



On Apr 6, 2007, at 14:24 , Chuck Cleland wrote:

> Rense Nieuwenhuis wrote:
>> Dear expeRts,
>>
>> I am trying to plot a lme-object {package nlme) in such a way, that
>> on a selected level the x-axis represents the value on a selected
>> predictor and the y-axis represents the predicted-outcome variable.
>> The graphs would than consist of several lines that each represent
>> one group. I can't find such a plotting function.
>>
>> I could write such a function myself, based on ranef() and fixef(),
>> but it would be a waste of time if such a function would already  
>> exist.
>>
>> Does any of you such a function?
>
>   I don't know of a single function with an lme object as argument,  
> but
> for what I think you have in mind, here is how you might go about it:
>
> library(nlme)
>
> fm2 <- lme(distance ~ poly(age, 2) * Sex,
>                       data = Orthodont, random = ~ 1)
>
> newdat <- expand.grid(age = 8:14, Sex = c("Male","Female"))
>
> newdat$PREDDIST <- predict(fm2, newdat, level = 0)
>
> library(lattice)
>
> xyplot(PREDDIST ~ age, groups=Sex, ylab="Model Predicted Distance",
>            data = newdat, xlab="Age",
>            panel = function(x, y, ...){
>                    panel.grid(h=6,v=6)
>                    panel.superpose(x, y, type="l", ...)},
>                    main="Orthodont Growth Model",
>                    key = simpleKey(levels(newdat$Sex),
>                                    lines=TRUE, points=FALSE)
>                    )
>
>> Regards,
>>
>> Rense Nieuwenhuis
>>
>> ______________________________________________
>> [email protected] 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.
>
> -- 
> Chuck Cleland, Ph.D.
> NDRI, Inc.
> 71 West 23rd Street, 8th floor
> New York, NY 10010
> tel: (212) 845-4495 (Tu, Th)
> tel: (732) 512-0171 (M, W, F)
> fax: (917) 438-0894
>


        [[alternative HTML version deleted]]

______________________________________________
[email protected] 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