dear all,
i'm trying to reproduce an spss-anova in R.
It is an 2x3x3 repeated measures desingn with repeated contrasts.
In R i've coded a contrast matrix for all factors and made a
split in the aov summary - but I can't get the repeated interaction
contrasts.
The output from SPSS looks like this:
TaskSw * CongNow * CongBefore: SS df Mean Square F Sig.
1 vs. 2 1 vs. 2 1 vs. 2 13944,50 1 13944,50 0.37 0.56
2 vs. 3 4278,12 1 4278,12 0.31 0.59
2 vs. 3 1 vs. 2 7140,12 1 7140,12 0.17 0.68
2 vs. 3 53301,131 1 53301,13 1.38 0.27
The output from R looks like this:
Error: Subj:TaskSw:CongNow:CongBefore
Df Sum Sq Mean Sq F value Pr(>F)
4 18823 4706 1.8804 0.1417
rep vs. se.con vs. inc.con vs. inc 1
inc vs. neu. 1
con vs. inc.inc vs. neu 1
inc vs. neu. 1
Residuals 28 70069 2502
I've pasted the R and SPSS code I uesd. thanks in advance. Rene
R code:
# read in data
TaskSwitch <- factor(rep(c(0:1), 72),
levels=c(0,1),
labels=c("Repetition","Switch"))
CongruenceNow <- factor(rep(c(0,0,1,1,2,2), 24),
levels=c(0,1,2),
labels=c("Congruent","Incongruent","Neutral"))
CongruenceBefore <- factor(rep(c(0,0,0,0,0,0,1,1,1,1,1,1,2,2,2,2,2,2), 8),
levels=c(0,1,2),
labels=c("Congruent","Incongruent","Neutral"))
# Subjects
Subjects <- factor(rep(c(1:8), each = 18))
# RT = Response Time
RT <-
c(648,682,798,765,707,677,676,698,712,770,702,683,635,716,748,703,737,
657,1047,1140,992,1088,925,967,1022,1105,884,1103,930,1046,1034,1032,
948,956,987,993,753,782,837,923,820,846,835,884,778,873,774,760,848,
824,788,864,969,833,662,683,848,903,731,755,778,748,792,913,707,721,
736,766,771,898,874,801,762,824,956,865,864,908,828,877,804,1096,864,
878,799,833,883,1005,863,824,691,666,698,791,712,778,731,743,749,781,
717,769,732,730,703,771,743,709,470,489,546,574,541,523,536,556,532,
510,543,557,531,554,532,573,528,514,842,785,851,932,888,920,856,840,
1010,877,784,901,845,923,798,907,903,758)
m <- data.frame(RT, TaskSwitch,CongruenceNow,CongruenceBefore,Subjects)
# defining repeated contrasts for all factors
conCN = matrix(c(1,0,
-1,1,
0,-1), nrow = 3, ncol = 2, byrow = TRUE)
contrasts(m$CongruenceNow) <- conCN
conTS = matrix(c(1,
-1), nrow = 2, ncol = 1, byrow = TRUE)
contrasts(m$TaskSwitch) <- conTS
conCB = matrix(c(1,0,
-1,1,
0,-1), nrow = 3, ncol = 2, byrow = TRUE)
contrasts(m$CongruenceBefore) <- conCB
# ANOVA
fit <- aov(RT ~ TaskSwitch*CongruenceNow*CongruenceBefore +
Error(Subjects/(TaskSwitch*CongruenceNow*CongruenceBefore)), data = m)
summary(fit)
summary(fit, split = list(CongruenceNow = list("con vs. inc" = 1,
"inc vs. neu" = 2),
CongruenceBefore= list("con vs. inc" = 1,
"inc vs. neu" = 2),
TaskSwitch = list("rep vs. se" =
1)))
# export to spss
require(foreign)
codefile<-tempfile()
write.foreign(m, paste("C:/m.sav",sep = ''),
codefile,package="SPSS")
SPSS:
###### BEGIN: SPSS code
###########################################################################
# GET DATA
# /TYPE=TXT /FILE='C:\m.sav' /DELCASE=LINE /DELIMITERS=","
/ARRANGEMENT=DELIMITED
# /FIRSTCASE=1/IMPORTCASE=ALL
# /VARIABLES # RT F4.0 TaskSwitch F1.0 CongruenceNow F1.0
CongruenceBefore
F1.0 Subjects F1.0.
# CACHE.
# EXECUTE.
# DATASET NAME DataSet1 WINDOW=FRONT.
#
# SORT CASES BY Subjects TaskSwitch CongruenceNow CongruenceBefore .
# CASESTOVARS
# /ID= Subjects
# /INDEX=TaskSwitch CongruenceNow CongruenceBefore
# /GROUPBY=VARIABLE.
#
# GLM RT.1.1.1 RT.1.1.2 RT.1.1.3 RT.1.2.1 RT.1.2.2 RT.1.2.3
RT.1.3.1 RT.1.3.2 RT.1.3.3 RT.2.1.1
# RT.2.1.2 RT.2.1.3 RT.2.2.1 RT.2.2.2 RT.2.2.3 RT.2.3.1 RT.2.3.2 RT.2.3.3
# /WSFACTOR=TaskSwitch 2 Repeated CongruenceNow 3 Repeated
CongruenceBefore 3 Repeated
# /METHOD=SSTYPE(3)
# /PRINT=DESCRIPTIVE OPOWER TEST(SSCP)
# /CRITERIA=ALPHA(.05)
# /WSDESIGN=TaskSwitch CongruenceNow CongruenceBefore
TaskSwitch*CongruenceNow
# TaskSwitch*CongruenceBefore CongruenceNow*CongruenceBefore
# TaskSwitch*CongruenceNow*CongruenceBefore.
###### END: SPSS code
###########################################################################
--
Dr. rer. nat. Dipl.-Psych. Ren? Mayer
Dresden University of Technology
Department of Psychology
Zellescher Weg 17
D-01062 Dresden
Tel.: +49-351-4633-4568
Email: mayer at psychologie.tu-dresden.de
--
Dr. rer. nat. Dipl.-Psych. Ren? Mayer
Dresden University of Technology
Department of Psychology
Zellescher Weg 17
D-01062 Dresden
Tel.: +49-351-4633-4568
Email: mayer at psychologie.tu-dresden.de
Fast question:is the design well balanced ? Cause if not, it might be because R's aov goes with SS type 1, while SPSS goes with SS type 3. For more info on this search for discussions with: "car", Anova, SS type III, and repeated measures Tal On Sun, Mar 1, 2009 at 11:13 AM, René Mayer <mayer@psychologie.tu-dresden.de> wrote:> dear all, > > i'm trying to reproduce an spss-anova in R. > It is an 2x3x3 repeated measures desingn with repeated contrasts. > In R i've coded a contrast matrix for all factors and made a > split in the aov summary - but I can't get the repeated interaction > contrasts. > > The output from SPSS looks like this: > > TaskSw * CongNow * CongBefore: SS df Mean Square F Sig. > 1 vs. 2 1 vs. 2 1 vs. 2 13944,50 1 13944,50 0.37 0.56 > 2 vs. 3 4278,12 1 4278,12 0.31 0.59 > 2 vs. 3 1 vs. 2 7140,12 1 7140,12 0.17 0.68 > 2 vs. 3 53301,131 1 53301,13 1.38 0.27 > > > The output from R looks like this: > > Error: Subj:TaskSw:CongNow:CongBefore > > Df Sum Sq Mean Sq F value Pr(>F) > 4 18823 4706 1.8804 0.1417 > rep vs. se.con vs. inc.con vs. inc 1 > inc vs. neu. 1 > con vs. inc.inc vs. neu 1 > inc vs. neu. 1 > Residuals 28 70069 2502 > > > > I've pasted the R and SPSS code I uesd. thanks in advance. Rene > > R code: > # read in data > > TaskSwitch <- factor(rep(c(0:1), 72), > levels=c(0,1), > labels=c("Repetition","Switch")) > CongruenceNow <- factor(rep(c(0,0,1,1,2,2), 24), > levels=c(0,1,2), > > labels=c("Congruent","Incongruent","Neutral")) > CongruenceBefore <- factor(rep(c(0,0,0,0,0,0,1,1,1,1,1,1,2,2,2,2,2,2), 8), > levels=c(0,1,2), > > labels=c("Congruent","Incongruent","Neutral")) > # Subjects > Subjects <- factor(rep(c(1:8), each = 18)) > # RT = Response Time > RT <- > c(648,682,798,765,707,677,676,698,712,770,702,683,635,716,748,703,737, > > 657,1047,1140,992,1088,925,967,1022,1105,884,1103,930,1046,1034,1032, > > 948,956,987,993,753,782,837,923,820,846,835,884,778,873,774,760,848, > > 824,788,864,969,833,662,683,848,903,731,755,778,748,792,913,707,721, > > 736,766,771,898,874,801,762,824,956,865,864,908,828,877,804,1096,864, > > 878,799,833,883,1005,863,824,691,666,698,791,712,778,731,743,749,781, > > 717,769,732,730,703,771,743,709,470,489,546,574,541,523,536,556,532, > > 510,543,557,531,554,532,573,528,514,842,785,851,932,888,920,856,840, > 1010,877,784,901,845,923,798,907,903,758) > > m <- data.frame(RT, TaskSwitch,CongruenceNow,CongruenceBefore,Subjects) > > > # defining repeated contrasts for all factors > conCN = matrix(c(1,0, > -1,1, > 0,-1), nrow = 3, ncol = 2, byrow = TRUE) > contrasts(m$CongruenceNow) <- conCN > > conTS = matrix(c(1, > -1), nrow = 2, ncol = 1, byrow = TRUE) > contrasts(m$TaskSwitch) <- conTS > > conCB = matrix(c(1,0, > -1,1, > 0,-1), nrow = 3, ncol = 2, byrow = TRUE) > contrasts(m$CongruenceBefore) <- conCB > > # ANOVA > > fit <- aov(RT ~ TaskSwitch*CongruenceNow*CongruenceBefore + > Error(Subjects/(TaskSwitch*CongruenceNow*CongruenceBefore)), data = m) > > summary(fit) > > summary(fit, split = list(CongruenceNow = list("con vs. inc" = 1, > "inc vs. neu" = 2), > CongruenceBefore= list("con vs. inc" = 1, > "inc vs. neu" = 2), > TaskSwitch = list("rep vs. se" = 1))) > > > # export to spss > require(foreign) > codefile<-tempfile() > write.foreign(m, paste("C:/m.sav",sep = ''), codefile,package="SPSS") > > SPSS: > ###### BEGIN: SPSS code > ########################################################################### > # GET DATA > # /TYPE=TXT /FILE='C:\m.sav' /DELCASE=LINE /DELIMITERS="," > /ARRANGEMENT=DELIMITED > # /FIRSTCASE=1/IMPORTCASE=ALL > # /VARIABLES> # RT F4.0 TaskSwitch F1.0 CongruenceNow F1.0 CongruenceBefore F1.0 > Subjects F1.0. > # CACHE. > # EXECUTE. > # DATASET NAME DataSet1 WINDOW=FRONT. > # > # SORT CASES BY Subjects TaskSwitch CongruenceNow CongruenceBefore . > # CASESTOVARS > # /ID= Subjects > # /INDEX=TaskSwitch CongruenceNow CongruenceBefore > # /GROUPBY=VARIABLE. > # > # GLM RT.1.1.1 RT.1.1.2 RT.1.1.3 RT.1.2.1 RT.1.2.2 RT.1.2.3 RT.1.3.1 > RT.1.3.2 RT.1.3.3 RT.2.1.1 > # RT.2.1.2 RT.2.1.3 RT.2.2.1 RT.2.2.2 RT.2.2.3 RT.2.3.1 RT.2.3.2 > RT.2.3.3 > # /WSFACTOR=TaskSwitch 2 Repeated CongruenceNow 3 Repeated > CongruenceBefore 3 Repeated > # /METHOD=SSTYPE(3) > # /PRINT=DESCRIPTIVE OPOWER TEST(SSCP) > # /CRITERIA=ALPHA(.05) > # /WSDESIGN=TaskSwitch CongruenceNow CongruenceBefore > TaskSwitch*CongruenceNow > # TaskSwitch*CongruenceBefore CongruenceNow*CongruenceBefore > # TaskSwitch*CongruenceNow*CongruenceBefore. > ###### END: SPSS code > ########################################################################### > > > > > -- > Dr. rer. nat. Dipl.-Psych. René Mayer > > Dresden University of Technology > Department of Psychology > Zellescher Weg 17 > D-01062 Dresden > > Tel.: +49-351-4633-4568 > > Email: mayer@psychologie.tu-dresden.de > > > > > > > -- > Dr. rer. nat. Dipl.-Psych. René Mayer > > Dresden University of Technology > Department of Psychology > Zellescher Weg 17 > D-01062 Dresden > > Tel.: +49-351-4633-4568 > > Email: mayer@psychologie.tu-dresden.de > > ______________________________________________ > R-help@r-project.org 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. >-- ---------------------------------------------- My contact information: Tal Galili Phone number: 972-50-3373767 FaceBook: Tal Galili My Blogs: www.talgalili.com www.biostatistics.co.il [[alternative HTML version deleted]]
Possibly Parallel Threads
- Different LLRs on multinomial logit models in R and SPSS
- Do any of the wine programmers know the actual structures windows uses for thread's
- predict.lm(...,type="terms") question
- how to get id of other table
- Softlinking to a dvd-drive with inconsistent mount points? => HAL-Support