[R] post hoc comparison in repeated measure

array chip arrayprofile at yahoo.com
Thu May 11 01:03:18 CEST 2006


I haven't heard from anyone with my previous post. I
guess I should post my dataset and my code here:

The dataset has one factor as treatment with 4 levels
(treatment1, treatment2, treatment3 and control), and
another factor as time (36 time points). On average
Each treatment group has 10 subjects with each
followed up at each time points. The response variable
is numeric, serum protein amount. So the between
subject factor is treatment, and the within subject
factor is time. I ran a 2-way ANOVA without
interaction with repeated measures considering time as
the within subject factor:

dat<-read.table("dat.txt", sep='\t', header=T,
row.names=1)

attach(dat)
## run aov:
fit<-aov(x~as.factor(treatment)+as.factor(Time)+Error(as.factor(animal)))
summary(fit)

## it should produce a ANOVA table as follow:

Error: as.factor(animal)
                     Df  Sum Sq Mean Sq F value 
Pr(>F)  
as.factor(treatment)  3 1405900  468633  3.0584
0.04051 *
Residuals            36 5516274  153230               
  
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.'
0.1 ' ' 1 

Error: Within
                  Df   Sum Sq  Mean Sq F value   
Pr(>F)    
as.factor(Time)   35  7298866   208539  22.796 <
2.2e-16 ***
Residuals       1365 12487181     9148                
     
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.'
0.1 ' ' 1 

As you can see, the treatnment effect is marginally
significant. So I decided to do all pairwise
comparisons on treatments at each time point using t
tests. I tried 2 ways to do the t tests: one is the
regular t tests, i.e. only using the data in
comparison at each time point for t test computation,
then yes, I do see a lot of significant comparisons;
the 2nd approach is to use the MSE from ANOVA (i.e.
153230) as the error term for t test calculation; then
I don't see any significant comparisons which I think
is inconsistent with the marginally significant p
value (0.04) for treatment main effect. Below is my
code, did I do something wrong here, or my assumption
above is not right: significant main effect doesnot
necessarily mean at least one pairwise comparisons
must be significant.

## to do pairwise regular t test:
pval<-list()
for (j in seq(5,180,5) ) {
pval[[as.character(j)]]<-pairwise.t.test(dat2$x[dat2$Time==j],dat2$treatment[dat2$Time==j],pool.sd=F,var.equal=T,p.adjust.method='none')$p.value
}
sort(unlist(pval)[!is.na(unlist(pval))])

## as you can see, there are indeed many significant
pairwise comparisons

## to do pairwise t tests using MSE from ANOVA
pval <- NULL
for (i in 1:3) {
    for (k in (i+1):4) {
    for (j in seq(5,180,5) ) {
       
        ## ANOVA post test
        pval <- c(pval,
2*(1-pt(abs(mean(x[Time==j&treatment==k])-mean(x[Time==j&treatment==i]))/sqrt(153230*(1/sum(treatment[Time==j]==i)+1/sum(treatment[Time==j]==k))),
df=sum(treatment[Time==j]==i)+sum(treatment[Time==j]==k)-2)))

    }
    }
}   
sort(pval)
## As you can see, none of the p values is significant

Can anyone explain?

Thanks

BTW, is there a R function that can do post hoc
comparison on repeated measure ANOVA (from avo()
with Error term)?



__________________________________________________


-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: dat.txt
Url: https://stat.ethz.ch/pipermail/r-help/attachments/20060510/a4bcaa69/attachment-0003.txt 


More information about the R-help mailing list