[R-sig-ME] longitudinal study with baseline

array chip arrayprofile at yahoo.com
Fri Sep 3 09:26:24 CEST 2010


Hi all,

I asked some questions on how to analyze longitudinal study with only 2 time 
points (baseline and a follow-up) previously. I appreciate many useful comments 
from some members, especially Dennis Murphy who refered the following paper 
addressing specifically this type of study with only 2 time points: 
https://www.ncbi.nlm.nih.gov/pmc/articles/PMC1121605/

Basically, with only 2 time points (baseline and one follow-up), ANCOVA with 
follow-up as dependent variable and baseline as covariate should be used:

follow-up = a + b*baseline + treatment

Now I have a regular longitudinal study with 6 time points, 7 treatments 
(vehicle, A, B, C, D, F, G), measuring a response variable "y". The dataset is 
attached. I have some questions, and appreciate any suggestions on how to 
analyze the dataset.

dat<-read.table("dat.txt",sep='\t',header=T,row.names=NULL)
library(MASS)
dat$trt<-relevel(dat$trt,'vehicle')

xyplot(y~time, groups=trt, data=dat, 
ylim=c(3,10),col=c(1:6,8),lwd=2,type=c('g','a'),xlab='Days',ylab="response",
 key = list(lines=list(col=c(1:6,8),lty=1,lwd=2),
                  text = list(lab = levels(dat$trt)),
                  columns = 3, title = "Treatment"))

So as you can see that there is some curvature between glucose level and time, 
so a quadratic fit might be needed. 


dat$time2<-dat$time*dat$time

A straight fit like below seems reasonable:

fit<-lmer(y~trt*time+trt*time2+(time|id),dat)

Checking on random effects, it appears that variance component for random slope 
is very small, so a simpler model with random intercept only may be sufficient:

fit<-lmer(y~trt*time+trt*time2+(1|id),dat)

Now, I want to incorporate baseline response into the model in order to account 
for any baseline imbalance. I need to generate a new variable "baseline" based 
on glucose levels at time=0:

dat<-merge(dat, dat[dat$time==0,c('id','y')], by.x='id',by.y='id',all.x=T)
colnames(dat)[c(4,6)]<-c('y','baseline')

so the new fit adding baseline into the mixed model is:

fit<-lmer(y~baseline+trt*time+trt*time2+(1|id),dat)

Now my question is 1). Is the above model a reasonable thing to do? 2) when 
baseline is included as a covariate, should I remove the data points at baseline 
from the dataset? I am kind of unsure if it's reasonable to use the baseline 
both as a covariate and as part of the dependent variable values.

Next thing I want to do with this dataset is to do multiple comparisons between 
each treatment (A, B, C, D, F, G) vs. vehicle at a given time point, say time=56 
(the last time points) after adjusting the baseline imbalance. This seems to be 
done using Dunnet test. When I say "after adjusting baseline imbalance", I mean 
the comparisons should be done based on the difference between time=56 and 
time=0 (baseline). How can we test this? Will glht() in multcomp work for a lmer 
fit? If yes, how can I specify the syntax?

Finally, with the above model, is there anyway to estimate the difference (and 
the standard error) between time=56 and time=0 (baseline) for each treatment 
groups?

Thank you fall or your attention.

John


      
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: dat.txt
URL: <https://stat.ethz.ch/pipermail/r-sig-mixed-models/attachments/20100903/700fb364/attachment.txt>


More information about the R-sig-mixed-models mailing list