micholeodon
micholeodon

Reputation: 85

R - 2x2 mixed ANOVA with repeated measures simple effect analysis

I would like to ask how to perform the simple main effect analysis in R correctly, in case of presence interaction effects between Group and Stage variables ?

One of my friends do same analysis in SPSS (using Bonferroni correction) and I try to reproduce his result in R.

I have data set of following structure:

ID Group Stage Y
1   I     pre  0.123
1   I     post 0.453
2   II    pre  0.676
2   II    post 0.867
3   I     pre  0.324
3   I     post 0.786
4   II    pre  0.986
4   II    post 0.112
... ... ... ...

This is 2x2 mixed ANOVA schema (1 between subject variable 'Group', 1 within subject variable 'Stage', which constitutes repated measure of y dependent variable).

I analysed it using ezANOVA function:

ezANOVA(data = dat, dv = y, wid = ID, between = Group, within = Stage, detailed = TRUE, type = "III")

I found a significant interaction Stage*Group. So I have determine simple effects using Bonferroni correction. I tried to do that with many methods. For example, if I want to find significant interactions in group I, between levels of Stage variable, I tried to use:

dataControl <- subset(dat, Group == "control" )

ezANOVA(data = dataControl, dv = y, wid = ID, within = Stage, detailed = TRUE, type = "III" )  // method 1

aov(data = dataControl, y ~ Stage + Error(ID/Stage))  // method 2

t.test(y ~ Stage, paired=TRUE)  // method 3

But every method gave me different p-value result. None of these p-values matched those calculated with SPSS. Interesingly main effects p-values and other calculation gave the same result in SPSS and R. So I conclude that I am using wrong method in simple main effect analysis.

I would be very thankful I you could help me.

Upvotes: 2

Views: 1557

Answers (1)

mike
mike

Reputation: 173

If you want R to give you the same numbers as SPSS, do this:

 #pairwise comparisons
 library(asbio)
 bonf <- pairw.anova(data$dv, data$group, method="bonf") #also try "tukey" or "lsd"
 print(bonf)
 #plot(bonf) #can plot the CFs

This will give you t(s), mean differences, upper and lower bounds, HLSD Diff Lower Upper Decision Adj. p-value decision, and adjusted p-value.

Upvotes: 1

Related Questions