I have a 2x2x2 mixed factorial design with one between-subjects factor (C) and two within-subjects factors (A and B). I analyzed the data with a mixed ANOVA and now want to calculate t-test equivalent for each effect. Please see below for a simulated dataset in R.
If there was no between factor, i.e. the design was fully 2x2 within (factor A and B), I can use the ANOVA contrasts for each effect
- main effect factor A (1,1,-1,-1)
- main effect factor B (1,-1,1,-1)
- interaction AxB (1,-1,-1,1)
and test the resulting difference scores with separate one-sample t-tests against mu=0. This yields equivalent results (same df, t²=F, same p-values) to the full 2x2 within ANOVA.
If a between factor is present, I managed to obtain equivalent t-test results for all ANOVA effects that include the between factor C by performing independent sample t-tests on the DV (main effect of C) and on the difference scores as calculated above (interactions CxA,CxB,CxAxB).
My problem is, that the main effects of the within factors A and B and their interaction AxB, if tested with t-tests against mu=0 as for a full within design, are not anymore equivalent to the effects obtained in the mixed ANOVA.
My question is, why the results form the t-test and the ANOVA slightly diverge and how I can calculate these three t-test in a way that is equivalent to the mixed ANOVA?
Thank you very much for your help!
I used the R-function mixedDesign() by Sven Hohenstein, Reinhold Kliegl, 2009-2015 to simulate the dataset (can be downloaded here http://read.psych.uni-potsdam.de/pmr2/index.php?option=com_content&view=article&id=167:contrast-coding&catid=13:r-playground&Itemid=15)
#Matrix with means for each cell M.means=matrix(c(0.35,0.55,0.4,0.7,0.35,0.55,0.35,0.55),nrow=2, ncol=4, byrow=T) #matrix with SDs M.sd=matrix(c(0.245,0.272,0.317,0.286,0.245,0.272,0.245,0.272),nrow=2, ncol=4, byrow=T) #list of matrices with correlations of within-subject factors M1.cor=matrix(c(1.00,0.2,0.5,0,0.2,1.00,0,0.3,0.5,0,1.00,0,0,0.3,0,1.00),nrow=4, ncol=4, byrow=T) M2.cor=matrix(c(1.00,0.2,0.9,0.2,0.2,1.00,0.2,0.9,0.9,0.2,1.00,0.2,0.2,0.9,0.2,1.00),nrow=4, ncol=4, byrow=T) R1=list(M1.cor,M2.cor) #simulate dataset set.seed(1) data=mixedDesign(B=2, W=c(2,2),n=100, M=M.means, SD=M.sd, R=R1,long=T) names(data)=c('C','id','A','B','DV') head(data) C id A B DV 1 A1 1 a1 b1 0.6617092 2 A1 1 a1 b2 0.9309685 3 A1 1 a2 b1 0.7898644 4 A1 1 a2 b2 0.6968670 5 A1 2 a1 b1 0.8381598 6 A1 2 a1 b2 0.6567378 #mixed ANOVA results library(ez) ezANOVA(data,DV,wid=id,within=.(A,B),between=C,type=3) $`ANOVA` Effect DFn DFd F p p<.05 ges 2 C 1 198 3.692938 5.607905e-02 0.008569437 3 A 1 198 16.299148 7.727887e-05 * 0.008569437 5 B 1 198 99.193180 3.358257e-19 * 0.148958640 4 C:A 1 198 16.299148 7.727887e-05 * 0.008569437 6 C:B 1 198 1.224607 2.698010e-01 0.002156218 7 A:B 1 198 5.205633 2.357750e-02 * 0.002156218 8 C:A:B 1 198 5.205633 2.357750e-02 * 0.002156218 #to get equivalent t-tests: #set contrasts for effects library(dplyr) #set contrasts for effects data=data%>%mutate(c_C=ifelse(C=='A1',1,-1),#main effect factor C c_A=ifelse(A=='a2',1,-1),#main effect factor A c_B=ifelse(B=='b2',1,-1),#main effect factor B CxA=c_C*c_A,#interaction CxA CxB=c_C*c_B,#interaction CxB AxB=c_A*c_B,#interaction AxB CxAxB=c_C*c_A*c_B)#interaction CxAxB #copy DV data$DV_copy=data$DV #multiply DV with contrasts data1=data%>%ungroup()%>%mutate_at(c('c_C','c_A','c_B','CxA','CxB','AxB','CxAxB'),funs(.*DV)) #aggregate data (one line per id) data1=data1%>%group_by(id,C)%>%summarise_at(c('DV','c_C','c_A','c_B','CxA','CxB','AxB','CxAxB'),sum) #all ANOVA effects as t-tests t.test(DV~C,data1,var.equal=T)#matches ANOVA t.test(data1$c_A,mu=0)#no match t.test(data1$c_B,mu=0)#no match t.test(c_A~C,data1,var.equal=T)#matches ANOVA t.test(c_B~C,data1,var.equal=T)#matches ANOVA t.test(data1$AxB,mu=0)#no match t.test(AxB~C,data1,var.equal=T)#matches ANOVA