[R] SPSS repeated interaction contrast in R

René Mayer mayer at psychologie.tu-dresden.de
Sun Mar 1 10:13:51 CET 2009


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




More information about the R-help mailing list